import { z } from 'zod';
import { type APIClient } from '../api.ts';
import { type BucketConfig, type BucketConfigUpdate } from './types.ts';
export declare const BucketConfigGetResponseSchema: 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;
        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>;
}, z.core.$strip>], "success">;
export declare const BucketConfigUpdateResponseSchema: 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;
        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>;
}, z.core.$strip>], "success">;
export declare const BucketConfigDeleteResponseSchema: 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>;
}, z.core.$strip>], "success">;
/**
 * Get the configuration for a bucket.
 * Returns the current config with null for any fields using system defaults.
 *
 * @param client - The API client to use for the request
 * @param bucketName - Name of the bucket to get config for
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @returns The bucket configuration
 * @throws {BucketConfigResponseError} If the request fails
 */
export declare function getBucketConfig(client: APIClient, bucketName: string, extraHeaders?: Record<string, string>): Promise<BucketConfig>;
/**
 * Update (upsert) bucket configuration.
 * Partial update: only fields present in the request are changed.
 * Send null for a field to reset it to system default.
 * Omit a field to leave it unchanged.
 *
 * @param client - The API client to use for the request
 * @param bucketName - Name of the bucket to update config for
 * @param config - Partial config update (fields to set, null to unset, omit to leave)
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @returns The updated bucket configuration
 * @throws {BucketConfigResponseError} If the request fails
 */
export declare function updateBucketConfig(client: APIClient, bucketName: string, config: BucketConfigUpdate, extraHeaders?: Record<string, string>): Promise<BucketConfig>;
/**
 * Delete all custom configuration for a bucket (reset to system defaults).
 *
 * @param client - The API client to use for the request
 * @param bucketName - Name of the bucket to reset config for
 * @param extraHeaders - Optional extra headers (e.g. x-agentuity-orgid for CLI auth)
 * @throws {BucketConfigResponseError} If the request fails
 */
export declare function deleteBucketConfig(client: APIClient, bucketName: string, extraHeaders?: Record<string, string>): Promise<void>;
//# sourceMappingURL=config.d.ts.map