/** * Type-safe dotted path builder for nested object access * Examples: 'vm.preset', 'embedding.strategy', 'directCalls.enabled' */ export type DottedPath = T extends object ? { [K in keyof T & string]: T[K] extends object ? `${Prefix}${K}` | DottedPath : `${Prefix}${K}`; }[keyof T & string] : never; /** * Get the type at a dotted path */ export type PathValue = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? PathValue : never : P extends keyof T ? T[P] : never; /** * Base configuration provider with type-safe path lookup and convict-like API */ export declare abstract class BaseConfig { protected readonly config: TConfig; constructor(config: TConfig); /** * Get the complete configuration object */ getAll(): TConfig; /** * Get a value using dotted path notation (convict-like) * @example * config.get('vm.preset') // returns 'secure' * config.get('embedding.strategy') // returns 'tfidf' * config.get('directCalls.enabled') // returns true * config.get('vm.timeout', 5000) // returns value or 5000 if undefined */ get

>(path: P): PathValue; get

>(path: P, defaultValue: PathValue): PathValue; /** * Check if a path exists in the configuration * @example * config.has('vm.preset') // returns true * config.has('nonexistent.path') // returns false */ has(path: string): boolean; /** * Get a value with a default fallback * @example * config.getOrDefault('vm.timeout', 5000) */ getOrDefault

>(path: P, defaultValue: PathValue): PathValue; /** * Get a required value (throws if undefined) * @example * config.getRequired('vm.preset') * config.getOrThrow('vm.preset') */ getRequired

>(path: P): PathValue; /** * Alias for getRequired - Get a required value (throws if undefined) * @example * config.getOrThrow('vm.preset') */ getOrThrow

>(path: P): PathValue; /** * Get a nested object at a path * @example * config.getSection('vm') // returns entire vm config */ getSection(section: K): TConfig[K]; /** * Check if the configuration matches a specific value at a path * @example * config.matches('vm.preset', 'secure') // returns true/false */ matches

>(path: P, value: PathValue): boolean; /** * Get multiple values at once * @example * config.getMany(['vm.preset', 'embedding.strategy', 'topK']) */ getMany

>(paths: P[]): Record>; /** * Convert configuration to JSON */ toJSON(): TConfig; /** * Convert configuration to string */ toString(): string; } //# sourceMappingURL=base-config.provider.d.ts.map