import { z } from 'zod';
import { type APIClient } from '../api.ts';
import { type StorageListResponse, type StorageDeleteResponse, type StoragePresignResponse, type StorageStatsResponse, type StorageAnalyticsResponse } from './types.ts';
export declare const StorageListAPIResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    success: z.ZodLiteral<false>;
    message: z.ZodString;
    code: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    success: z.ZodLiteral<true>;
    data: z.ZodObject<{
        objects: z.ZodArray<z.ZodObject<{
            bucket_name: z.ZodString;
            key: z.ZodString;
            size: z.ZodNumber;
            etag: z.ZodOptional<z.ZodString>;
            content_type: z.ZodOptional<z.ZodString>;
            last_modified: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        total: z.ZodNumber;
        prefix: z.ZodString;
        limit: z.ZodNumber;
        offset: z.ZodNumber;
    }, z.core.$strip>;
}, z.core.$strip>], "success">;
export declare const StorageDeleteAPIResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    success: z.ZodLiteral<false>;
    message: z.ZodString;
    code: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    success: z.ZodLiteral<true>;
    data: z.ZodObject<{
        deleted_count: z.ZodNumber;
    }, z.core.$strip>;
}, z.core.$strip>], "success">;
export declare const StoragePresignAPIResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    success: z.ZodLiteral<false>;
    message: z.ZodString;
    code: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    success: z.ZodLiteral<true>;
    data: z.ZodObject<{
        presigned_url: z.ZodString;
        expiry_seconds: z.ZodNumber;
    }, z.core.$strip>;
}, z.core.$strip>], "success">;
export declare const StorageStatsAPIResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    success: z.ZodLiteral<false>;
    message: z.ZodString;
    code: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    success: z.ZodLiteral<true>;
    data: z.ZodObject<{
        bucket_name: z.ZodString;
        object_count: z.ZodNumber;
        total_size: z.ZodNumber;
        last_event_at: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
}, z.core.$strip>], "success">;
export declare const StorageAnalyticsAPIResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    success: z.ZodLiteral<false>;
    message: z.ZodString;
    code: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    success: z.ZodLiteral<true>;
    data: z.ZodObject<{
        summary: z.ZodObject<{
            total_object_count: z.ZodNumber;
            total_size: z.ZodNumber;
            estimated_monthly_cost: z.ZodNumber;
            cost_per_gb_month: z.ZodNumber;
        }, z.core.$strip>;
        buckets: z.ZodArray<z.ZodObject<{
            bucket_name: z.ZodString;
            object_count: z.ZodNumber;
            total_size: z.ZodNumber;
            last_event_at: z.ZodOptional<z.ZodString>;
            estimated_monthly_cost: z.ZodNumber;
        }, z.core.$strip>>;
        daily: z.ZodArray<z.ZodObject<{
            date: z.ZodString;
            total_object_count: z.ZodNumber;
            total_size: z.ZodNumber;
            estimated_cost: z.ZodNumber;
        }, z.core.$strip>>;
        days: z.ZodNumber;
    }, z.core.$strip>;
}, z.core.$strip>], "success">;
export declare const ListStorageObjectsOptionsSchema: z.ZodObject<{
    prefix: z.ZodOptional<z.ZodString>;
    limit: z.ZodOptional<z.ZodNumber>;
    offset: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type ListStorageObjectsOptions = z.infer<typeof ListStorageObjectsOptionsSchema>;
/**
 * List objects in a storage bucket with optional prefix filtering and pagination.
 *
 * @param client - The API client to use for the request
 * @param bucketName - Name of the bucket to list objects from
 * @param options - Optional filtering/pagination options
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @returns Paginated list of objects with total count
 * @throws {StorageObjectsResponseError} If the request fails
 */
export declare function listStorageObjects(client: APIClient, bucketName: string, options?: ListStorageObjectsOptions, extraHeaders?: Record<string, string>): Promise<StorageListResponse>;
export declare const DeleteStorageObjectsOptionsSchema: z.ZodObject<{
    key: z.ZodOptional<z.ZodString>;
    prefix: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type DeleteStorageObjectsOptions = z.infer<typeof DeleteStorageObjectsOptionsSchema>;
/**
 * Delete objects from a storage bucket.
 * Provide either `key` (single object) or `prefix` (all matching objects), but not both.
 *
 * @param client - The API client to use for the request
 * @param bucketName - Name of the bucket to delete from
 * @param options - Must include either key or prefix (mutually exclusive)
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @returns The count of deleted objects
 * @throws {StorageObjectsResponseError} If the request fails
 */
export declare function deleteStorageObjects(client: APIClient, bucketName: string, options: DeleteStorageObjectsOptions, extraHeaders?: Record<string, string>): Promise<StorageDeleteResponse>;
/**
 * Generate a presigned URL for downloading or uploading an object.
 *
 * @param client - The API client to use for the request
 * @param bucketName - Name of the bucket
 * @param key - Object key
 * @param operation - 'download' (default) or 'upload'
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @returns Presigned URL and expiry info
 * @throws {StorageObjectsResponseError} If the request fails
 */
export declare function presignStorageObject(client: APIClient, bucketName: string, key: string, operation?: 'download' | 'upload', extraHeaders?: Record<string, string>): Promise<StoragePresignResponse>;
/**
 * Get aggregate stats for a storage bucket (object count, total size).
 *
 * @param client - The API client to use for the request
 * @param bucketName - Name of the bucket
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @returns Bucket statistics
 * @throws {StorageObjectsResponseError} If the request fails
 */
export declare function getStorageStats(client: APIClient, bucketName: string, extraHeaders?: Record<string, string>): Promise<StorageStatsResponse>;
export declare const GetStorageAnalyticsOptionsSchema: z.ZodObject<{
    days: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type GetStorageAnalyticsOptions = z.infer<typeof GetStorageAnalyticsOptionsSchema>;
/**
 * Get storage analytics for the org: summary totals, per-bucket breakdown, and daily snapshots.
 *
 * @param client - The API client to use for the request
 * @param options - Optional options (days for sparkline history, default 180)
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @returns Analytics data with summary, buckets, and daily snapshots
 * @throws {StorageObjectsResponseError} If the request fails
 */
export declare function getStorageAnalytics(client: APIClient, options?: GetStorageAnalyticsOptions, extraHeaders?: Record<string, string>): Promise<StorageAnalyticsResponse>;
//# sourceMappingURL=objects.d.ts.map