import { Env } from "@tsed/core/types/Env.js"; import type { DILoggerOptions } from "../interfaces/DILoggerOptions.js"; import type { ImportTokenProviderOpts } from "../interfaces/ImportTokenProviderOpts.js"; import type { TokenProvider } from "../interfaces/TokenProvider.js"; import type { TokenRoute } from "../interfaces/TokenRoute.js"; /** * Configuration management service for the DI system. * * Stores and manages application configuration settings including imports, routes, logger options, * and custom properties. Provides type-safe accessors for common configuration keys and supports * nested property access via `get()` and `set()`. * * ### Usage * * ```typescript * import {DIConfiguration} from "@tsed/di"; * * const config = new DIConfiguration({ * rootDir: __dirname, * env: Env.PROD, * logger: {level: "info"} * }); * * config.set("custom.nested.key", "value"); * const value = config.get("custom.nested.key"); * ``` * * @public */ export declare class DIConfiguration { readonly default: Map; protected map: Map; constructor(initialProps?: {}); get version(): string; set version(v: string); get rootDir(): string; set rootDir(value: string); get env(): Env; set env(value: Env); get imports(): (TokenProvider | ImportTokenProviderOpts)[]; set imports(imports: (TokenProvider | ImportTokenProviderOpts)[]); get routes(): TokenRoute[]; set routes(routes: TokenRoute[]); get logger(): Partial; set logger(value: Partial); get debug(): boolean; set debug(debug: boolean); get mount(): Record; set mount(value: Record); /** * * @param callbackfn * @param thisArg */ forEach(callbackfn: (value: any, index: string, map: Map) => void, thisArg?: any): void; set(obj: Partial): this; set(propertyKey: string, value?: unknown): this; setRaw(propertyKey: string, value: any): this; /** * * @param propertyKey * @param defaultValue * @returns {undefined|any} */ get(propertyKey: string, defaultValue?: T): T; decorate(key: string, value: ((...args: unknown[]) => unknown) | PropertyDescriptor): this | undefined; protected getRaw(propertyKey: string, defaultValue?: any): any; }