import { z } from 'zod';
/** Valid storage tier values */
export declare const StorageTierValues: readonly ["STANDARD", "INFREQUENT_ACCESS", "ARCHIVE"];
/** Storage tier enum schema */
export declare const StorageTierSchema: z.ZodEnum<{
    STANDARD: "STANDARD";
    INFREQUENT_ACCESS: "INFREQUENT_ACCESS";
    ARCHIVE: "ARCHIVE";
}>;
/** Storage tier type */
export type StorageTier = z.infer<typeof StorageTierSchema>;
/** CORS configuration for a bucket */
export declare const CORSConfigSchema: z.ZodObject<{
    allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
    allowed_methods: z.ZodOptional<z.ZodArray<z.ZodString>>;
    allowed_headers: z.ZodOptional<z.ZodArray<z.ZodString>>;
    expose_headers: z.ZodOptional<z.ZodArray<z.ZodString>>;
    max_age_seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
}, z.core.$strip>;
/** Full bucket config (response from GET/PUT) */
export declare const BucketConfigSchema: z.ZodObject<{
    bucket_name: z.ZodString;
    storage_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
        STANDARD: "STANDARD";
        INFREQUENT_ACCESS: "INFREQUENT_ACCESS";
        ARCHIVE: "ARCHIVE";
    }>>>;
    ttl: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    public: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    cache_control: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    cors: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowed_methods: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowed_headers: z.ZodOptional<z.ZodArray<z.ZodString>>;
        expose_headers: z.ZodOptional<z.ZodArray<z.ZodString>>;
        max_age_seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>>>;
    additional_headers: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
    bucket_location: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$strip>;
/**
 * Update request body (all fields optional — partial update).
 * Send a field with a value to set it, send null to unset it, omit to leave unchanged.
 */
export declare const BucketConfigUpdateSchema: z.ZodObject<{
    storage_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
        STANDARD: "STANDARD";
        INFREQUENT_ACCESS: "INFREQUENT_ACCESS";
        ARCHIVE: "ARCHIVE";
    }>>>;
    ttl: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    public: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    cache_control: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    cors: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowed_methods: z.ZodOptional<z.ZodArray<z.ZodString>>;
        allowed_headers: z.ZodOptional<z.ZodArray<z.ZodString>>;
        expose_headers: z.ZodOptional<z.ZodArray<z.ZodString>>;
        max_age_seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>>>;
    additional_headers: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
}, z.core.$strip>;
/** TypeScript types derived from Zod schemas */
export type CORSConfig = z.infer<typeof CORSConfigSchema>;
export type BucketConfig = z.infer<typeof BucketConfigSchema>;
export type BucketConfigUpdate = z.infer<typeof BucketConfigUpdateSchema>;
/** A storage object in a bucket */
export declare const StorageObjectSchema: 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>;
/** Paginated list of storage objects */
export declare const StorageListResponseSchema: 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>;
/** Delete response */
export declare const StorageDeleteResponseSchema: z.ZodObject<{
    deleted_count: z.ZodNumber;
}, z.core.$strip>;
/** Presigned URL response */
export declare const StoragePresignResponseSchema: z.ZodObject<{
    presigned_url: z.ZodString;
    expiry_seconds: z.ZodNumber;
}, z.core.$strip>;
/** Bucket stats response */
export declare const StorageStatsResponseSchema: z.ZodObject<{
    bucket_name: z.ZodString;
    object_count: z.ZodNumber;
    total_size: z.ZodNumber;
    last_event_at: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/** Summary totals across all buckets */
export declare const StorageAnalyticsSummarySchema: 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>;
/** Per-bucket breakdown */
export declare const StorageAnalyticsBucketSchema: 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 snapshot for sparklines */
export declare const StorageAnalyticsDailySnapshotSchema: z.ZodObject<{
    date: z.ZodString;
    total_object_count: z.ZodNumber;
    total_size: z.ZodNumber;
    estimated_cost: z.ZodNumber;
}, z.core.$strip>;
/** Full analytics response */
export declare const StorageAnalyticsResponseSchema: 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>;
export type StorageObject = z.infer<typeof StorageObjectSchema>;
export type StorageListResponse = z.infer<typeof StorageListResponseSchema>;
export type StorageDeleteResponse = z.infer<typeof StorageDeleteResponseSchema>;
export type StoragePresignResponse = z.infer<typeof StoragePresignResponseSchema>;
export type StorageStatsResponse = z.infer<typeof StorageStatsResponseSchema>;
export type StorageAnalyticsSummary = z.infer<typeof StorageAnalyticsSummarySchema>;
export type StorageAnalyticsBucket = z.infer<typeof StorageAnalyticsBucketSchema>;
export type StorageAnalyticsDailySnapshot = z.infer<typeof StorageAnalyticsDailySnapshotSchema>;
export type StorageAnalyticsResponse = z.infer<typeof StorageAnalyticsResponseSchema>;
//# sourceMappingURL=types.d.ts.map