import { RetryConfig } from './timeout-manager.js'; export type ConfigFactory = () => T; export interface TimeoutDependentConfig { readonly [key: string]: unknown; } export declare class LazyConfigContainer { private config; private configFactory; private readonly configName; constructor(configName: string, factory: ConfigFactory); getConfig(): T; isInitialized(): boolean; reset(): void; } export declare function createLazyTimeoutConfig(configName: string, baseConfig: Omit, timeoutMappings: Record, userOverrides?: Partial): LazyConfigContainer; export declare function createLazyRetryConfig(configName: string, baseConfig: Omit, retryMappings: Record, userOverrides?: Partial): LazyConfigContainer; export declare function memoizeConfig(configName: string, factory: ConfigFactory): () => T; export declare class EnvironmentAwareConfig { private static readonly isTestEnv; private static readonly isDevEnv; private static readonly isProdEnv; static getTimeoutForEnv(baseTimeout: number, testTimeout?: number): number; static getConfigForEnv(prodConfig: T, devConfig?: Partial, testConfig?: Partial): T; static allowsFallbacks(): boolean; } export declare class ConfigValidator { static validateRequired>(config: T, requiredProps: (keyof T)[], configName: string): void; static validateTimeouts>(config: T, timeoutProps: (keyof T)[], configName: string): void; } //# sourceMappingURL=lazy-config-loader.d.ts.map