import type { AuthKitConfig } from './interfaces.js'; type ValueSource = Record | ((key: string) => any); /** * Configuration class for AuthKit. * This class is used to manage configuration values and provide defaults. * It also provides a way to get configuration values from environment variables. * @internal */ export declare class Configuration { private config; private valueSource; private readonly requiredKeys; /** * Convert a camelCase string to an uppercase, underscore-separated environment variable name. * @param str The string to convert * @returns The environment variable name */ protected getEnvironmentVariableName(str: string): string; private updateConfig; setValueSource(source: ValueSource): void; configure(configOrSource: Partial | ValueSource, source?: ValueSource): void; getValue(key: K): AuthKitConfig[K]; } /** * Configure AuthKit with a custom value source. * @param source The source of configuration values * * @example * configure(key => Deno.env.get(key)); */ export declare function configure(source: ValueSource): void; /** * Configure AuthKit with custom values. * @param config The configuration values * * @example * configure({ * clientId: 'your-client-id', * redirectUri: 'https://your-app.com/auth/callback', * apiKey: 'your-api-key', * cookiePassword: 'your-cookie-password', * }); */ export declare function configure(config: Partial): void; /** * Configure AuthKit with custom values and a custom value source. * @param config The configuration values * @param source The source of configuration values * * @example * configure({ * clientId: 'your-client-id', * }, env); */ export declare function configure(config: Partial, source: ValueSource): void; /** * Get a configuration value by key. * This function will first check environment variables, then programmatically provided config, * and finally fall back to defaults for optional settings. * If a required setting is missing, an error will be thrown. * @param key The configuration key * @returns The configuration value */ export declare function getConfig(key: K): AuthKitConfig[K]; export {};