import { z } from 'zod';
export declare const bootstrapConfigSchema: z.ZodObject<{
    configFileName: z.ZodDefault<z.ZodString>;
    configDir: z.ZodOptional<z.ZodString>;
    database: z.ZodObject<{
        host: z.ZodDefault<z.ZodString>;
        port: z.ZodDefault<z.ZodNumber>;
        database: z.ZodDefault<z.ZodString>;
        dialect: z.ZodDefault<z.ZodString>;
        username: z.ZodDefault<z.ZodString>;
        password: z.ZodDefault<z.ZodString>;
        sync: z.ZodDefault<z.ZodBoolean>;
        alter: z.ZodDefault<z.ZodBoolean>;
        maxRetries: z.ZodDefault<z.ZodNumber>;
        retryDelay: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        password: string;
        host: string;
        port: number;
        username: string;
        database: string;
        dialect: string;
        sync: boolean;
        alter: boolean;
        maxRetries: number;
        retryDelay: number;
    }, {
        password?: string | undefined;
        host?: string | undefined;
        port?: number | undefined;
        username?: string | undefined;
        database?: string | undefined;
        dialect?: string | undefined;
        sync?: boolean | undefined;
        alter?: boolean | undefined;
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    }>;
    fileAccess: z.ZodEffects<z.ZodObject<{
        type: z.ZodEnum<["local", "s3", "directus"]>;
        local: z.ZodOptional<z.ZodObject<{
            defaultFilePath: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            defaultFilePath: string;
        }, {
            defaultFilePath?: string | undefined;
        }>>;
        s3: z.ZodOptional<z.ZodObject<{
            region: z.ZodOptional<z.ZodString>;
            endpoint: z.ZodOptional<z.ZodString>;
            defaultBucketName: z.ZodDefault<z.ZodString>;
            s3ForcePathStyle: z.ZodDefault<z.ZodBoolean>;
            accessKeyId: z.ZodOptional<z.ZodString>;
            secretAccessKey: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            defaultBucketName: string;
            s3ForcePathStyle: boolean;
            region?: string | undefined;
            endpoint?: string | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        }, {
            region?: string | undefined;
            endpoint?: string | undefined;
            defaultBucketName?: string | undefined;
            s3ForcePathStyle?: boolean | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        }>>;
        directus: z.ZodOptional<z.ZodObject<{
            host: z.ZodDefault<z.ZodString>;
            port: z.ZodDefault<z.ZodNumber>;
            token: z.ZodOptional<z.ZodString>;
            username: z.ZodOptional<z.ZodString>;
            password: z.ZodOptional<z.ZodString>;
            generateFlows: z.ZodDefault<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            host: string;
            port: number;
            generateFlows: boolean;
            password?: string | undefined;
            username?: string | undefined;
            token?: string | undefined;
        }, {
            password?: string | undefined;
            host?: string | undefined;
            port?: number | undefined;
            username?: string | undefined;
            token?: string | undefined;
            generateFlows?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: "local" | "s3" | "directus";
        local?: {
            defaultFilePath: string;
        } | undefined;
        s3?: {
            defaultBucketName: string;
            s3ForcePathStyle: boolean;
            region?: string | undefined;
            endpoint?: string | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        } | undefined;
        directus?: {
            host: string;
            port: number;
            generateFlows: boolean;
            password?: string | undefined;
            username?: string | undefined;
            token?: string | undefined;
        } | undefined;
    }, {
        type: "local" | "s3" | "directus";
        local?: {
            defaultFilePath?: string | undefined;
        } | undefined;
        s3?: {
            region?: string | undefined;
            endpoint?: string | undefined;
            defaultBucketName?: string | undefined;
            s3ForcePathStyle?: boolean | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        } | undefined;
        directus?: {
            password?: string | undefined;
            host?: string | undefined;
            port?: number | undefined;
            username?: string | undefined;
            token?: string | undefined;
            generateFlows?: boolean | undefined;
        } | undefined;
    }>, {
        type: "local" | "s3" | "directus";
        local?: {
            defaultFilePath: string;
        } | undefined;
        s3?: {
            defaultBucketName: string;
            s3ForcePathStyle: boolean;
            region?: string | undefined;
            endpoint?: string | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        } | undefined;
        directus?: {
            host: string;
            port: number;
            generateFlows: boolean;
            password?: string | undefined;
            username?: string | undefined;
            token?: string | undefined;
        } | undefined;
    }, {
        type: "local" | "s3" | "directus";
        local?: {
            defaultFilePath?: string | undefined;
        } | undefined;
        s3?: {
            region?: string | undefined;
            endpoint?: string | undefined;
            defaultBucketName?: string | undefined;
            s3ForcePathStyle?: boolean | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        } | undefined;
        directus?: {
            password?: string | undefined;
            host?: string | undefined;
            port?: number | undefined;
            username?: string | undefined;
            token?: string | undefined;
            generateFlows?: boolean | undefined;
        } | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    configFileName: string;
    database: {
        password: string;
        host: string;
        port: number;
        username: string;
        database: string;
        dialect: string;
        sync: boolean;
        alter: boolean;
        maxRetries: number;
        retryDelay: number;
    };
    fileAccess: {
        type: "local" | "s3" | "directus";
        local?: {
            defaultFilePath: string;
        } | undefined;
        s3?: {
            defaultBucketName: string;
            s3ForcePathStyle: boolean;
            region?: string | undefined;
            endpoint?: string | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        } | undefined;
        directus?: {
            host: string;
            port: number;
            generateFlows: boolean;
            password?: string | undefined;
            username?: string | undefined;
            token?: string | undefined;
        } | undefined;
    };
    configDir?: string | undefined;
}, {
    database: {
        password?: string | undefined;
        host?: string | undefined;
        port?: number | undefined;
        username?: string | undefined;
        database?: string | undefined;
        dialect?: string | undefined;
        sync?: boolean | undefined;
        alter?: boolean | undefined;
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    };
    fileAccess: {
        type: "local" | "s3" | "directus";
        local?: {
            defaultFilePath?: string | undefined;
        } | undefined;
        s3?: {
            region?: string | undefined;
            endpoint?: string | undefined;
            defaultBucketName?: string | undefined;
            s3ForcePathStyle?: boolean | undefined;
            accessKeyId?: string | undefined;
            secretAccessKey?: string | undefined;
        } | undefined;
        directus?: {
            password?: string | undefined;
            host?: string | undefined;
            port?: number | undefined;
            username?: string | undefined;
            token?: string | undefined;
            generateFlows?: boolean | undefined;
        } | undefined;
    };
    configFileName?: string | undefined;
    configDir?: string | undefined;
}>;
export type BootstrapConfig = z.infer<typeof bootstrapConfigSchema>;
/**
 * Load bootstrap configuration from environment variables
 */
export declare function loadBootstrapConfig(): BootstrapConfig;
