import { z } from "zod";
export declare const configSchema: z.ZodObject<{
    logger: z.ZodDefault<z.ZodObject<{
        debug: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>], z.ZodUnknown>, z.ZodVoid>;
        info: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>], z.ZodUnknown>, z.ZodVoid>;
        warn: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>], z.ZodUnknown>, z.ZodVoid>;
        error: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>], z.ZodUnknown>, z.ZodVoid>;
        securityEvent: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>], z.ZodUnknown>, z.ZodVoid>;
    }, "strip", z.ZodTypeAny, {
        debug: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        info: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        warn: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        error: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        securityEvent: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
    }, {
        debug: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        info: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        warn: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        error: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        securityEvent: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
    }>>;
    session: z.ZodObject<{
        cookieName: z.ZodDefault<z.ZodString>;
        maxAgeSeconds: z.ZodDefault<z.ZodNumber>;
        tokenLengthBytes: z.ZodDefault<z.ZodNumber>;
        tokenSecret: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
        cookieSecure: z.ZodDefault<z.ZodBoolean>;
        cookieSameSite: z.ZodDefault<z.ZodEnum<["strict", "lax", "none"]>>;
        cookieHttpOnly: z.ZodDefault<z.ZodBoolean>;
        maxSessionsPerUser: z.ZodDefault<z.ZodNumber>;
        rollingIntervalSeconds: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        cookieName: string;
        maxAgeSeconds: number;
        tokenLengthBytes: number;
        tokenSecret: string;
        cookieSecure: boolean;
        cookieSameSite: "none" | "strict" | "lax";
        cookieHttpOnly: boolean;
        maxSessionsPerUser: number;
        rollingIntervalSeconds: number;
    }, {
        cookieName?: string | undefined;
        maxAgeSeconds?: number | undefined;
        tokenLengthBytes?: number | undefined;
        tokenSecret?: string | undefined;
        cookieSecure?: boolean | undefined;
        cookieSameSite?: "none" | "strict" | "lax" | undefined;
        cookieHttpOnly?: boolean | undefined;
        maxSessionsPerUser?: number | undefined;
        rollingIntervalSeconds?: number | undefined;
    }>;
    csrf: z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        cookieName: z.ZodDefault<z.ZodString>;
        maxAgeSeconds: z.ZodDefault<z.ZodNumber>;
        tokenLengthBytes: z.ZodDefault<z.ZodNumber>;
        tokenSecret: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
        cookieSecure: z.ZodDefault<z.ZodBoolean>;
        cookieSameSite: z.ZodDefault<z.ZodEnum<["strict", "lax", "none"]>>;
        cookieHttpOnly: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        cookieName: string;
        maxAgeSeconds: number;
        tokenLengthBytes: number;
        tokenSecret: string;
        cookieSecure: boolean;
        cookieSameSite: "none" | "strict" | "lax";
        cookieHttpOnly: boolean;
        enabled: boolean;
    }, {
        cookieName?: string | undefined;
        maxAgeSeconds?: number | undefined;
        tokenLengthBytes?: number | undefined;
        tokenSecret?: string | undefined;
        cookieSecure?: boolean | undefined;
        cookieSameSite?: "none" | "strict" | "lax" | undefined;
        cookieHttpOnly?: boolean | undefined;
        enabled?: boolean | undefined;
    }>;
    verification: z.ZodObject<{
        tokenLengthBytes: z.ZodDefault<z.ZodNumber>;
        tokenExpirySeconds: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        tokenLengthBytes: number;
        tokenExpirySeconds: number;
    }, {
        tokenLengthBytes?: number | undefined;
        tokenExpirySeconds?: number | undefined;
    }>;
    rateLimiting: z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        kvRestApiUrl: z.ZodOptional<z.ZodString>;
        kvRestApiToken: z.ZodOptional<z.ZodString>;
        login: z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRequests: z.ZodDefault<z.ZodNumber>;
            windowSeconds: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        }, {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        }>;
        register: z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRequests: z.ZodDefault<z.ZodNumber>;
            windowSeconds: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        }, {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        }>;
        verifyEmail: z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRequests: z.ZodDefault<z.ZodNumber>;
            windowSeconds: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        }, {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        }>;
        initiatePasswordReset: z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRequests: z.ZodDefault<z.ZodNumber>;
            windowSeconds: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        }, {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        }>;
        completePasswordReset: z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRequests: z.ZodDefault<z.ZodNumber>;
            windowSeconds: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        }, {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        }>;
        initiateEmailChange: z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRequests: z.ZodDefault<z.ZodNumber>;
            windowSeconds: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        }, {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        }>;
        completeEmailChange: z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            maxRequests: z.ZodDefault<z.ZodNumber>;
            windowSeconds: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        }, {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        enabled: boolean;
        login: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        register: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        verifyEmail: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        initiatePasswordReset: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        completePasswordReset: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        initiateEmailChange: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        completeEmailChange: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        kvRestApiUrl?: string | undefined;
        kvRestApiToken?: string | undefined;
    }, {
        login: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        register: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        verifyEmail: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        initiatePasswordReset: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        completePasswordReset: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        initiateEmailChange: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        completeEmailChange: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        enabled?: boolean | undefined;
        kvRestApiUrl?: string | undefined;
        kvRestApiToken?: string | undefined;
    }>;
    accountSecurity: z.ZodObject<{
        requireEmailVerification: z.ZodDefault<z.ZodBoolean>;
        maxFailedLogins: z.ZodDefault<z.ZodNumber>;
        lockoutDurationSeconds: z.ZodDefault<z.ZodNumber>;
        passwordHashing: z.ZodObject<{
            costFactor: z.ZodDefault<z.ZodNumber>;
            blockSize: z.ZodDefault<z.ZodNumber>;
            parallelization: z.ZodDefault<z.ZodNumber>;
            derivedKeyLength: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            costFactor: number;
            blockSize: number;
            parallelization: number;
            derivedKeyLength: number;
        }, {
            costFactor?: number | undefined;
            blockSize?: number | undefined;
            parallelization?: number | undefined;
            derivedKeyLength?: number | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        requireEmailVerification: boolean;
        maxFailedLogins: number;
        lockoutDurationSeconds: number;
        passwordHashing: {
            costFactor: number;
            blockSize: number;
            parallelization: number;
            derivedKeyLength: number;
        };
    }, {
        passwordHashing: {
            costFactor?: number | undefined;
            blockSize?: number | undefined;
            parallelization?: number | undefined;
            derivedKeyLength?: number | undefined;
        };
        requireEmailVerification?: boolean | undefined;
        maxFailedLogins?: number | undefined;
        lockoutDurationSeconds?: number | undefined;
    }>;
    email: z.ZodOptional<z.ZodObject<{
        resendApiKey: z.ZodOptional<z.ZodString>;
        from: z.ZodDefault<z.ZodString>;
        baseUrl: z.ZodDefault<z.ZodString>;
        templates: z.ZodOptional<z.ZodObject<{
            verification: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodObject<{
                token: z.ZodString;
                toEmail: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                token: string;
                toEmail: string;
            }, {
                token: string;
                toEmail: string;
            }>], z.ZodUnknown>, z.ZodString>>;
            passwordReset: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodObject<{
                token: z.ZodString;
                toEmail: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                token: string;
                toEmail: string;
            }, {
                token: string;
                toEmail: string;
            }>], z.ZodUnknown>, z.ZodString>>;
        }, "strip", z.ZodTypeAny, {
            verification?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
            passwordReset?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
        }, {
            verification?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
            passwordReset?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        from: string;
        baseUrl: string;
        resendApiKey?: string | undefined;
        templates?: {
            verification?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
            passwordReset?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
        } | undefined;
    }, {
        resendApiKey?: string | undefined;
        from?: string | undefined;
        baseUrl?: string | undefined;
        templates?: {
            verification?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
            passwordReset?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    logger: {
        debug: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        info: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        warn: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        error: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        securityEvent: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
    };
    session: {
        cookieName: string;
        maxAgeSeconds: number;
        tokenLengthBytes: number;
        tokenSecret: string;
        cookieSecure: boolean;
        cookieSameSite: "none" | "strict" | "lax";
        cookieHttpOnly: boolean;
        maxSessionsPerUser: number;
        rollingIntervalSeconds: number;
    };
    csrf: {
        cookieName: string;
        maxAgeSeconds: number;
        tokenLengthBytes: number;
        tokenSecret: string;
        cookieSecure: boolean;
        cookieSameSite: "none" | "strict" | "lax";
        cookieHttpOnly: boolean;
        enabled: boolean;
    };
    verification: {
        tokenLengthBytes: number;
        tokenExpirySeconds: number;
    };
    rateLimiting: {
        enabled: boolean;
        login: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        register: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        verifyEmail: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        initiatePasswordReset: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        completePasswordReset: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        initiateEmailChange: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        completeEmailChange: {
            enabled: boolean;
            maxRequests: number;
            windowSeconds: number;
        };
        kvRestApiUrl?: string | undefined;
        kvRestApiToken?: string | undefined;
    };
    accountSecurity: {
        requireEmailVerification: boolean;
        maxFailedLogins: number;
        lockoutDurationSeconds: number;
        passwordHashing: {
            costFactor: number;
            blockSize: number;
            parallelization: number;
            derivedKeyLength: number;
        };
    };
    email?: {
        from: string;
        baseUrl: string;
        resendApiKey?: string | undefined;
        templates?: {
            verification?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
            passwordReset?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
        } | undefined;
    } | undefined;
}, {
    session: {
        cookieName?: string | undefined;
        maxAgeSeconds?: number | undefined;
        tokenLengthBytes?: number | undefined;
        tokenSecret?: string | undefined;
        cookieSecure?: boolean | undefined;
        cookieSameSite?: "none" | "strict" | "lax" | undefined;
        cookieHttpOnly?: boolean | undefined;
        maxSessionsPerUser?: number | undefined;
        rollingIntervalSeconds?: number | undefined;
    };
    csrf: {
        cookieName?: string | undefined;
        maxAgeSeconds?: number | undefined;
        tokenLengthBytes?: number | undefined;
        tokenSecret?: string | undefined;
        cookieSecure?: boolean | undefined;
        cookieSameSite?: "none" | "strict" | "lax" | undefined;
        cookieHttpOnly?: boolean | undefined;
        enabled?: boolean | undefined;
    };
    verification: {
        tokenLengthBytes?: number | undefined;
        tokenExpirySeconds?: number | undefined;
    };
    rateLimiting: {
        login: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        register: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        verifyEmail: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        initiatePasswordReset: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        completePasswordReset: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        initiateEmailChange: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        completeEmailChange: {
            enabled?: boolean | undefined;
            maxRequests?: number | undefined;
            windowSeconds?: number | undefined;
        };
        enabled?: boolean | undefined;
        kvRestApiUrl?: string | undefined;
        kvRestApiToken?: string | undefined;
    };
    accountSecurity: {
        passwordHashing: {
            costFactor?: number | undefined;
            blockSize?: number | undefined;
            parallelization?: number | undefined;
            derivedKeyLength?: number | undefined;
        };
        requireEmailVerification?: boolean | undefined;
        maxFailedLogins?: number | undefined;
        lockoutDurationSeconds?: number | undefined;
    };
    email?: {
        resendApiKey?: string | undefined;
        from?: string | undefined;
        baseUrl?: string | undefined;
        templates?: {
            verification?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
            passwordReset?: ((args_0: {
                token: string;
                toEmail: string;
            }, ...args: unknown[]) => string) | undefined;
        } | undefined;
    } | undefined;
    logger?: {
        debug: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        info: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        warn: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        error: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
        securityEvent: (args_0: string, args_1: Record<string, unknown> | undefined, ...args: unknown[]) => void;
    } | undefined;
}>;
export type AegisAuthConfig = z.infer<typeof configSchema>;
//# sourceMappingURL=schema.d.ts.map