import { z } from "zod";
export declare const configMetaSchema: z.ZodObject<{
    version: z.ZodLiteral<1>;
    updatedAt: z.ZodString;
    source: z.ZodEnum<["onboard", "configure", "doctor"]>;
}, "strip", z.ZodTypeAny, {
    version: 1;
    updatedAt: string;
    source: "onboard" | "configure" | "doctor";
}, {
    version: 1;
    updatedAt: string;
    source: "onboard" | "configure" | "doctor";
}>;
export declare const llmConfigSchema: z.ZodObject<{
    provider: z.ZodEnum<["claude", "openai"]>;
    apiKey: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    provider: "claude" | "openai";
    apiKey?: string | undefined;
}, {
    provider: "claude" | "openai";
    apiKey?: string | undefined;
}>;
export declare const databaseBackupConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    intervalMinutes: z.ZodDefault<z.ZodNumber>;
    retentionDays: z.ZodDefault<z.ZodNumber>;
    dir: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
    intervalMinutes: number;
    retentionDays: number;
    dir: string;
}, {
    enabled?: boolean | undefined;
    intervalMinutes?: number | undefined;
    retentionDays?: number | undefined;
    dir?: string | undefined;
}>;
export declare const databaseConfigSchema: z.ZodObject<{
    mode: z.ZodDefault<z.ZodEnum<["embedded-postgres", "postgres"]>>;
    connectionString: z.ZodOptional<z.ZodString>;
    embeddedPostgresDataDir: z.ZodDefault<z.ZodString>;
    embeddedPostgresPort: z.ZodDefault<z.ZodNumber>;
    backup: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        intervalMinutes: z.ZodDefault<z.ZodNumber>;
        retentionDays: z.ZodDefault<z.ZodNumber>;
        dir: z.ZodDefault<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        enabled: boolean;
        intervalMinutes: number;
        retentionDays: number;
        dir: string;
    }, {
        enabled?: boolean | undefined;
        intervalMinutes?: number | undefined;
        retentionDays?: number | undefined;
        dir?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    mode: "embedded-postgres" | "postgres";
    embeddedPostgresDataDir: string;
    embeddedPostgresPort: number;
    backup: {
        enabled: boolean;
        intervalMinutes: number;
        retentionDays: number;
        dir: string;
    };
    connectionString?: string | undefined;
}, {
    mode?: "embedded-postgres" | "postgres" | undefined;
    connectionString?: string | undefined;
    embeddedPostgresDataDir?: string | undefined;
    embeddedPostgresPort?: number | undefined;
    backup?: {
        enabled?: boolean | undefined;
        intervalMinutes?: number | undefined;
        retentionDays?: number | undefined;
        dir?: string | undefined;
    } | undefined;
}>;
export declare const loggingConfigSchema: z.ZodObject<{
    mode: z.ZodEnum<["file", "cloud"]>;
    logDir: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    mode: "file" | "cloud";
    logDir: string;
}, {
    mode: "file" | "cloud";
    logDir?: string | undefined;
}>;
export declare const serverConfigSchema: z.ZodObject<{
    deploymentMode: z.ZodDefault<z.ZodEnum<["local_trusted", "authenticated"]>>;
    exposure: z.ZodDefault<z.ZodEnum<["private", "public"]>>;
    host: z.ZodDefault<z.ZodString>;
    port: z.ZodDefault<z.ZodNumber>;
    allowedHostnames: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    serveUi: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    deploymentMode: "local_trusted" | "authenticated";
    exposure: "private" | "public";
    host: string;
    port: number;
    allowedHostnames: string[];
    serveUi: boolean;
}, {
    deploymentMode?: "local_trusted" | "authenticated" | undefined;
    exposure?: "private" | "public" | undefined;
    host?: string | undefined;
    port?: number | undefined;
    allowedHostnames?: string[] | undefined;
    serveUi?: boolean | undefined;
}>;
export declare const authConfigSchema: z.ZodObject<{
    baseUrlMode: z.ZodDefault<z.ZodEnum<["auto", "explicit"]>>;
    publicBaseUrl: z.ZodOptional<z.ZodString>;
    disableSignUp: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    baseUrlMode: "auto" | "explicit";
    disableSignUp: boolean;
    publicBaseUrl?: string | undefined;
}, {
    baseUrlMode?: "auto" | "explicit" | undefined;
    publicBaseUrl?: string | undefined;
    disableSignUp?: boolean | undefined;
}>;
export declare const storageLocalDiskConfigSchema: z.ZodObject<{
    baseDir: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    baseDir: string;
}, {
    baseDir?: string | undefined;
}>;
export declare const storageS3ConfigSchema: z.ZodObject<{
    bucket: z.ZodDefault<z.ZodString>;
    region: z.ZodDefault<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
    prefix: z.ZodDefault<z.ZodString>;
    forcePathStyle: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    bucket: string;
    region: string;
    prefix: string;
    forcePathStyle: boolean;
    endpoint?: string | undefined;
}, {
    bucket?: string | undefined;
    region?: string | undefined;
    endpoint?: string | undefined;
    prefix?: string | undefined;
    forcePathStyle?: boolean | undefined;
}>;
export declare const storageConfigSchema: z.ZodObject<{
    provider: z.ZodDefault<z.ZodEnum<["local_disk", "s3"]>>;
    localDisk: z.ZodDefault<z.ZodObject<{
        baseDir: z.ZodDefault<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        baseDir: string;
    }, {
        baseDir?: string | undefined;
    }>>;
    s3: z.ZodDefault<z.ZodObject<{
        bucket: z.ZodDefault<z.ZodString>;
        region: z.ZodDefault<z.ZodString>;
        endpoint: z.ZodOptional<z.ZodString>;
        prefix: z.ZodDefault<z.ZodString>;
        forcePathStyle: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        bucket: string;
        region: string;
        prefix: string;
        forcePathStyle: boolean;
        endpoint?: string | undefined;
    }, {
        bucket?: string | undefined;
        region?: string | undefined;
        endpoint?: string | undefined;
        prefix?: string | undefined;
        forcePathStyle?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    s3: {
        bucket: string;
        region: string;
        prefix: string;
        forcePathStyle: boolean;
        endpoint?: string | undefined;
    };
    provider: "local_disk" | "s3";
    localDisk: {
        baseDir: string;
    };
}, {
    s3?: {
        bucket?: string | undefined;
        region?: string | undefined;
        endpoint?: string | undefined;
        prefix?: string | undefined;
        forcePathStyle?: boolean | undefined;
    } | undefined;
    provider?: "local_disk" | "s3" | undefined;
    localDisk?: {
        baseDir?: string | undefined;
    } | undefined;
}>;
export declare const secretsLocalEncryptedConfigSchema: z.ZodObject<{
    keyFilePath: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    keyFilePath: string;
}, {
    keyFilePath?: string | undefined;
}>;
export declare const secretsConfigSchema: z.ZodObject<{
    provider: z.ZodDefault<z.ZodEnum<["local_encrypted", "aws_secrets_manager", "gcp_secret_manager", "vault"]>>;
    strictMode: z.ZodDefault<z.ZodBoolean>;
    localEncrypted: z.ZodDefault<z.ZodObject<{
        keyFilePath: z.ZodDefault<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        keyFilePath: string;
    }, {
        keyFilePath?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    provider: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault";
    strictMode: boolean;
    localEncrypted: {
        keyFilePath: string;
    };
}, {
    provider?: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault" | undefined;
    strictMode?: boolean | undefined;
    localEncrypted?: {
        keyFilePath?: string | undefined;
    } | undefined;
}>;
export declare const paperclipConfigSchema: z.ZodEffects<z.ZodObject<{
    $meta: z.ZodObject<{
        version: z.ZodLiteral<1>;
        updatedAt: z.ZodString;
        source: z.ZodEnum<["onboard", "configure", "doctor"]>;
    }, "strip", z.ZodTypeAny, {
        version: 1;
        updatedAt: string;
        source: "onboard" | "configure" | "doctor";
    }, {
        version: 1;
        updatedAt: string;
        source: "onboard" | "configure" | "doctor";
    }>;
    llm: z.ZodOptional<z.ZodObject<{
        provider: z.ZodEnum<["claude", "openai"]>;
        apiKey: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        provider: "claude" | "openai";
        apiKey?: string | undefined;
    }, {
        provider: "claude" | "openai";
        apiKey?: string | undefined;
    }>>;
    database: z.ZodObject<{
        mode: z.ZodDefault<z.ZodEnum<["embedded-postgres", "postgres"]>>;
        connectionString: z.ZodOptional<z.ZodString>;
        embeddedPostgresDataDir: z.ZodDefault<z.ZodString>;
        embeddedPostgresPort: z.ZodDefault<z.ZodNumber>;
        backup: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            intervalMinutes: z.ZodDefault<z.ZodNumber>;
            retentionDays: z.ZodDefault<z.ZodNumber>;
            dir: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            intervalMinutes: number;
            retentionDays: number;
            dir: string;
        }, {
            enabled?: boolean | undefined;
            intervalMinutes?: number | undefined;
            retentionDays?: number | undefined;
            dir?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        mode: "embedded-postgres" | "postgres";
        embeddedPostgresDataDir: string;
        embeddedPostgresPort: number;
        backup: {
            enabled: boolean;
            intervalMinutes: number;
            retentionDays: number;
            dir: string;
        };
        connectionString?: string | undefined;
    }, {
        mode?: "embedded-postgres" | "postgres" | undefined;
        connectionString?: string | undefined;
        embeddedPostgresDataDir?: string | undefined;
        embeddedPostgresPort?: number | undefined;
        backup?: {
            enabled?: boolean | undefined;
            intervalMinutes?: number | undefined;
            retentionDays?: number | undefined;
            dir?: string | undefined;
        } | undefined;
    }>;
    logging: z.ZodObject<{
        mode: z.ZodEnum<["file", "cloud"]>;
        logDir: z.ZodDefault<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        mode: "file" | "cloud";
        logDir: string;
    }, {
        mode: "file" | "cloud";
        logDir?: string | undefined;
    }>;
    server: z.ZodObject<{
        deploymentMode: z.ZodDefault<z.ZodEnum<["local_trusted", "authenticated"]>>;
        exposure: z.ZodDefault<z.ZodEnum<["private", "public"]>>;
        host: z.ZodDefault<z.ZodString>;
        port: z.ZodDefault<z.ZodNumber>;
        allowedHostnames: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        serveUi: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        deploymentMode: "local_trusted" | "authenticated";
        exposure: "private" | "public";
        host: string;
        port: number;
        allowedHostnames: string[];
        serveUi: boolean;
    }, {
        deploymentMode?: "local_trusted" | "authenticated" | undefined;
        exposure?: "private" | "public" | undefined;
        host?: string | undefined;
        port?: number | undefined;
        allowedHostnames?: string[] | undefined;
        serveUi?: boolean | undefined;
    }>;
    auth: z.ZodDefault<z.ZodObject<{
        baseUrlMode: z.ZodDefault<z.ZodEnum<["auto", "explicit"]>>;
        publicBaseUrl: z.ZodOptional<z.ZodString>;
        disableSignUp: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        baseUrlMode: "auto" | "explicit";
        disableSignUp: boolean;
        publicBaseUrl?: string | undefined;
    }, {
        baseUrlMode?: "auto" | "explicit" | undefined;
        publicBaseUrl?: string | undefined;
        disableSignUp?: boolean | undefined;
    }>>;
    storage: z.ZodDefault<z.ZodObject<{
        provider: z.ZodDefault<z.ZodEnum<["local_disk", "s3"]>>;
        localDisk: z.ZodDefault<z.ZodObject<{
            baseDir: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            baseDir: string;
        }, {
            baseDir?: string | undefined;
        }>>;
        s3: z.ZodDefault<z.ZodObject<{
            bucket: z.ZodDefault<z.ZodString>;
            region: z.ZodDefault<z.ZodString>;
            endpoint: z.ZodOptional<z.ZodString>;
            prefix: z.ZodDefault<z.ZodString>;
            forcePathStyle: z.ZodDefault<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            bucket: string;
            region: string;
            prefix: string;
            forcePathStyle: boolean;
            endpoint?: string | undefined;
        }, {
            bucket?: string | undefined;
            region?: string | undefined;
            endpoint?: string | undefined;
            prefix?: string | undefined;
            forcePathStyle?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        s3: {
            bucket: string;
            region: string;
            prefix: string;
            forcePathStyle: boolean;
            endpoint?: string | undefined;
        };
        provider: "local_disk" | "s3";
        localDisk: {
            baseDir: string;
        };
    }, {
        s3?: {
            bucket?: string | undefined;
            region?: string | undefined;
            endpoint?: string | undefined;
            prefix?: string | undefined;
            forcePathStyle?: boolean | undefined;
        } | undefined;
        provider?: "local_disk" | "s3" | undefined;
        localDisk?: {
            baseDir?: string | undefined;
        } | undefined;
    }>>;
    secrets: z.ZodDefault<z.ZodObject<{
        provider: z.ZodDefault<z.ZodEnum<["local_encrypted", "aws_secrets_manager", "gcp_secret_manager", "vault"]>>;
        strictMode: z.ZodDefault<z.ZodBoolean>;
        localEncrypted: z.ZodDefault<z.ZodObject<{
            keyFilePath: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            keyFilePath: string;
        }, {
            keyFilePath?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        provider: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault";
        strictMode: boolean;
        localEncrypted: {
            keyFilePath: string;
        };
    }, {
        provider?: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault" | undefined;
        strictMode?: boolean | undefined;
        localEncrypted?: {
            keyFilePath?: string | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    database: {
        mode: "embedded-postgres" | "postgres";
        embeddedPostgresDataDir: string;
        embeddedPostgresPort: number;
        backup: {
            enabled: boolean;
            intervalMinutes: number;
            retentionDays: number;
            dir: string;
        };
        connectionString?: string | undefined;
    };
    $meta: {
        version: 1;
        updatedAt: string;
        source: "onboard" | "configure" | "doctor";
    };
    logging: {
        mode: "file" | "cloud";
        logDir: string;
    };
    server: {
        deploymentMode: "local_trusted" | "authenticated";
        exposure: "private" | "public";
        host: string;
        port: number;
        allowedHostnames: string[];
        serveUi: boolean;
    };
    auth: {
        baseUrlMode: "auto" | "explicit";
        disableSignUp: boolean;
        publicBaseUrl?: string | undefined;
    };
    storage: {
        s3: {
            bucket: string;
            region: string;
            prefix: string;
            forcePathStyle: boolean;
            endpoint?: string | undefined;
        };
        provider: "local_disk" | "s3";
        localDisk: {
            baseDir: string;
        };
    };
    secrets: {
        provider: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault";
        strictMode: boolean;
        localEncrypted: {
            keyFilePath: string;
        };
    };
    llm?: {
        provider: "claude" | "openai";
        apiKey?: string | undefined;
    } | undefined;
}, {
    database: {
        mode?: "embedded-postgres" | "postgres" | undefined;
        connectionString?: string | undefined;
        embeddedPostgresDataDir?: string | undefined;
        embeddedPostgresPort?: number | undefined;
        backup?: {
            enabled?: boolean | undefined;
            intervalMinutes?: number | undefined;
            retentionDays?: number | undefined;
            dir?: string | undefined;
        } | undefined;
    };
    $meta: {
        version: 1;
        updatedAt: string;
        source: "onboard" | "configure" | "doctor";
    };
    logging: {
        mode: "file" | "cloud";
        logDir?: string | undefined;
    };
    server: {
        deploymentMode?: "local_trusted" | "authenticated" | undefined;
        exposure?: "private" | "public" | undefined;
        host?: string | undefined;
        port?: number | undefined;
        allowedHostnames?: string[] | undefined;
        serveUi?: boolean | undefined;
    };
    llm?: {
        provider: "claude" | "openai";
        apiKey?: string | undefined;
    } | undefined;
    auth?: {
        baseUrlMode?: "auto" | "explicit" | undefined;
        publicBaseUrl?: string | undefined;
        disableSignUp?: boolean | undefined;
    } | undefined;
    storage?: {
        s3?: {
            bucket?: string | undefined;
            region?: string | undefined;
            endpoint?: string | undefined;
            prefix?: string | undefined;
            forcePathStyle?: boolean | undefined;
        } | undefined;
        provider?: "local_disk" | "s3" | undefined;
        localDisk?: {
            baseDir?: string | undefined;
        } | undefined;
    } | undefined;
    secrets?: {
        provider?: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault" | undefined;
        strictMode?: boolean | undefined;
        localEncrypted?: {
            keyFilePath?: string | undefined;
        } | undefined;
    } | undefined;
}>, {
    database: {
        mode: "embedded-postgres" | "postgres";
        embeddedPostgresDataDir: string;
        embeddedPostgresPort: number;
        backup: {
            enabled: boolean;
            intervalMinutes: number;
            retentionDays: number;
            dir: string;
        };
        connectionString?: string | undefined;
    };
    $meta: {
        version: 1;
        updatedAt: string;
        source: "onboard" | "configure" | "doctor";
    };
    logging: {
        mode: "file" | "cloud";
        logDir: string;
    };
    server: {
        deploymentMode: "local_trusted" | "authenticated";
        exposure: "private" | "public";
        host: string;
        port: number;
        allowedHostnames: string[];
        serveUi: boolean;
    };
    auth: {
        baseUrlMode: "auto" | "explicit";
        disableSignUp: boolean;
        publicBaseUrl?: string | undefined;
    };
    storage: {
        s3: {
            bucket: string;
            region: string;
            prefix: string;
            forcePathStyle: boolean;
            endpoint?: string | undefined;
        };
        provider: "local_disk" | "s3";
        localDisk: {
            baseDir: string;
        };
    };
    secrets: {
        provider: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault";
        strictMode: boolean;
        localEncrypted: {
            keyFilePath: string;
        };
    };
    llm?: {
        provider: "claude" | "openai";
        apiKey?: string | undefined;
    } | undefined;
}, {
    database: {
        mode?: "embedded-postgres" | "postgres" | undefined;
        connectionString?: string | undefined;
        embeddedPostgresDataDir?: string | undefined;
        embeddedPostgresPort?: number | undefined;
        backup?: {
            enabled?: boolean | undefined;
            intervalMinutes?: number | undefined;
            retentionDays?: number | undefined;
            dir?: string | undefined;
        } | undefined;
    };
    $meta: {
        version: 1;
        updatedAt: string;
        source: "onboard" | "configure" | "doctor";
    };
    logging: {
        mode: "file" | "cloud";
        logDir?: string | undefined;
    };
    server: {
        deploymentMode?: "local_trusted" | "authenticated" | undefined;
        exposure?: "private" | "public" | undefined;
        host?: string | undefined;
        port?: number | undefined;
        allowedHostnames?: string[] | undefined;
        serveUi?: boolean | undefined;
    };
    llm?: {
        provider: "claude" | "openai";
        apiKey?: string | undefined;
    } | undefined;
    auth?: {
        baseUrlMode?: "auto" | "explicit" | undefined;
        publicBaseUrl?: string | undefined;
        disableSignUp?: boolean | undefined;
    } | undefined;
    storage?: {
        s3?: {
            bucket?: string | undefined;
            region?: string | undefined;
            endpoint?: string | undefined;
            prefix?: string | undefined;
            forcePathStyle?: boolean | undefined;
        } | undefined;
        provider?: "local_disk" | "s3" | undefined;
        localDisk?: {
            baseDir?: string | undefined;
        } | undefined;
    } | undefined;
    secrets?: {
        provider?: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault" | undefined;
        strictMode?: boolean | undefined;
        localEncrypted?: {
            keyFilePath?: string | undefined;
        } | undefined;
    } | undefined;
}>;
export type PaperclipConfig = z.infer<typeof paperclipConfigSchema>;
export type LlmConfig = z.infer<typeof llmConfigSchema>;
export type DatabaseConfig = z.infer<typeof databaseConfigSchema>;
export type LoggingConfig = z.infer<typeof loggingConfigSchema>;
export type ServerConfig = z.infer<typeof serverConfigSchema>;
export type StorageConfig = z.infer<typeof storageConfigSchema>;
export type StorageLocalDiskConfig = z.infer<typeof storageLocalDiskConfigSchema>;
export type StorageS3Config = z.infer<typeof storageS3ConfigSchema>;
export type SecretsConfig = z.infer<typeof secretsConfigSchema>;
export type SecretsLocalEncryptedConfig = z.infer<typeof secretsLocalEncryptedConfigSchema>;
export type AuthConfig = z.infer<typeof authConfigSchema>;
export type ConfigMeta = z.infer<typeof configMetaSchema>;
export type DatabaseBackupConfig = z.infer<typeof databaseBackupConfigSchema>;
//# sourceMappingURL=config-schema.d.ts.map