import { z } from 'zod';
import { CredentialType } from '@bubblelab/shared-schemas';
export declare const S3ParamsSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodLiteral<"getUploadUrl">;
    bucketName: z.ZodString;
    fileName: z.ZodString;
    region: z.ZodOptional<z.ZodString>;
    expirationMinutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    contentType: z.ZodOptional<z.ZodString>;
    userId: z.ZodOptional<z.ZodString>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "getUploadUrl";
    bucketName: string;
    fileName: string;
    expirationMinutes: number;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    contentType?: string | undefined;
    region?: string | undefined;
    userId?: string | undefined;
}, {
    operation: "getUploadUrl";
    bucketName: string;
    fileName: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    contentType?: string | undefined;
    region?: string | undefined;
    expirationMinutes?: number | undefined;
    userId?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"getFile">;
    bucketName: z.ZodString;
    fileName: z.ZodString;
    region: z.ZodOptional<z.ZodString>;
    expirationMinutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    userId: z.ZodOptional<z.ZodString>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "getFile";
    bucketName: string;
    fileName: string;
    expirationMinutes: number;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    region?: string | undefined;
    userId?: string | undefined;
}, {
    operation: "getFile";
    bucketName: string;
    fileName: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    region?: string | undefined;
    expirationMinutes?: number | undefined;
    userId?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"deleteFile">;
    bucketName: z.ZodString;
    fileName: z.ZodString;
    region: z.ZodOptional<z.ZodString>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "deleteFile";
    bucketName: string;
    fileName: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    region?: string | undefined;
}, {
    operation: "deleteFile";
    bucketName: string;
    fileName: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    region?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"updateFile">;
    bucketName: z.ZodDefault<z.ZodString>;
    fileName: z.ZodString;
    region: z.ZodOptional<z.ZodString>;
    expirationMinutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    contentType: z.ZodOptional<z.ZodString>;
    fileContent: z.ZodString;
    userId: z.ZodOptional<z.ZodString>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "updateFile";
    bucketName: string;
    fileName: string;
    expirationMinutes: number;
    fileContent: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    contentType?: string | undefined;
    region?: string | undefined;
    userId?: string | undefined;
}, {
    operation: "updateFile";
    fileName: string;
    fileContent: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    contentType?: string | undefined;
    bucketName?: string | undefined;
    region?: string | undefined;
    expirationMinutes?: number | undefined;
    userId?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"getMultipleUploadUrls">;
    bucketName: z.ZodString;
    pdfFileName: z.ZodString;
    pageCount: z.ZodNumber;
    region: z.ZodOptional<z.ZodString>;
    expirationMinutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    userId: z.ZodOptional<z.ZodString>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "getMultipleUploadUrls";
    bucketName: string;
    expirationMinutes: number;
    pdfFileName: string;
    pageCount: number;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    region?: string | undefined;
    userId?: string | undefined;
}, {
    operation: "getMultipleUploadUrls";
    bucketName: string;
    pdfFileName: string;
    pageCount: number;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    region?: string | undefined;
    expirationMinutes?: number | undefined;
    userId?: string | undefined;
}>]>;
export declare const S3ResultSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodLiteral<"getUploadUrl">;
    success: z.ZodBoolean;
    uploadUrl: z.ZodOptional<z.ZodString>;
    fileName: z.ZodOptional<z.ZodString>;
    contentType: z.ZodOptional<z.ZodString>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "getUploadUrl";
    contentType?: string | undefined;
    fileName?: string | undefined;
    uploadUrl?: string | undefined;
}, {
    error: string;
    success: boolean;
    operation: "getUploadUrl";
    contentType?: string | undefined;
    fileName?: string | undefined;
    uploadUrl?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"getFile">;
    success: z.ZodBoolean;
    downloadUrl: z.ZodOptional<z.ZodString>;
    fileUrl: z.ZodOptional<z.ZodString>;
    fileName: z.ZodOptional<z.ZodString>;
    fileSize: z.ZodOptional<z.ZodNumber>;
    contentType: z.ZodOptional<z.ZodString>;
    lastModified: z.ZodOptional<z.ZodString>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "getFile";
    contentType?: string | undefined;
    fileName?: string | undefined;
    downloadUrl?: string | undefined;
    fileUrl?: string | undefined;
    fileSize?: number | undefined;
    lastModified?: string | undefined;
}, {
    error: string;
    success: boolean;
    operation: "getFile";
    contentType?: string | undefined;
    fileName?: string | undefined;
    downloadUrl?: string | undefined;
    fileUrl?: string | undefined;
    fileSize?: number | undefined;
    lastModified?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"deleteFile">;
    success: z.ZodBoolean;
    fileName: z.ZodOptional<z.ZodString>;
    deleted: z.ZodOptional<z.ZodBoolean>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "deleteFile";
    deleted?: boolean | undefined;
    fileName?: string | undefined;
}, {
    error: string;
    success: boolean;
    operation: "deleteFile";
    deleted?: boolean | undefined;
    fileName?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"updateFile">;
    success: z.ZodBoolean;
    fileName: z.ZodOptional<z.ZodString>;
    fileUrl: z.ZodOptional<z.ZodString>;
    updated: z.ZodOptional<z.ZodBoolean>;
    contentType: z.ZodOptional<z.ZodString>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "updateFile";
    updated?: boolean | undefined;
    contentType?: string | undefined;
    fileName?: string | undefined;
    fileUrl?: string | undefined;
}, {
    error: string;
    success: boolean;
    operation: "updateFile";
    updated?: boolean | undefined;
    contentType?: string | undefined;
    fileName?: string | undefined;
    fileUrl?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"getMultipleUploadUrls">;
    success: z.ZodBoolean;
    pdfUploadUrl: z.ZodOptional<z.ZodString>;
    pdfFileName: z.ZodOptional<z.ZodString>;
    pageUploadUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
        pageNumber: z.ZodNumber;
        uploadUrl: z.ZodString;
        fileName: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        fileName: string;
        uploadUrl: string;
        pageNumber: number;
    }, {
        fileName: string;
        uploadUrl: string;
        pageNumber: number;
    }>, "many">>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "getMultipleUploadUrls";
    pdfFileName?: string | undefined;
    pdfUploadUrl?: string | undefined;
    pageUploadUrls?: {
        fileName: string;
        uploadUrl: string;
        pageNumber: number;
    }[] | undefined;
}, {
    error: string;
    success: boolean;
    operation: "getMultipleUploadUrls";
    pdfFileName?: string | undefined;
    pdfUploadUrl?: string | undefined;
    pageUploadUrls?: {
        fileName: string;
        uploadUrl: string;
        pageNumber: number;
    }[] | undefined;
}>]>;
export type S3Result = z.output<typeof S3ResultSchema>;
export type S3Params = z.output<typeof S3ParamsSchema>;
export type S3ParamsInput = z.input<typeof S3ParamsSchema>;
export type S3OperationResult<T extends S3Params['operation']> = Extract<S3Result, {
    operation: T;
}>;
//# sourceMappingURL=s3.schema.d.ts.map