import type { Constructor } from '@rsdk/common'; import type { ConfigContext } from '../context/config.context'; import type { ConfigSource } from '../sources'; /** * Содержит логику инициализации дополнительных источников конфигурации */ export declare class AdditionalSourceInitializer { private context; private options; /** * Промис, состояние которого отражает состояние инициализации дополнительных источников конфигурации * @private */ private initializePromise; private logger; constructor(context: ConfigContext, options: Constructor[]); /** * Инициализирует дополнительные источники конфигурации * ATTENTION: Можно вызывать сколько угодно раз, однако результат будет идентичным в буквальном смысле, * * AdditionalSourceModuleInitializer.initialize() === AdditionalSourceModuleInitializer.initialize() // true * * Это сделано намеренно из-за того как nestjs работает с разрешением зависимостей, а именно `Promise.all`. * Соответственно провайдеров конфигурации может быть много и всем им необходимо инициализировать * источники, проверка на `isInitialized` очевидно создаёт неразрешимые проблемы из-за асинхронности. */ initialize(): Promise; /** * Initializing additional configuration sources. * Loading values and merging them into the storage. * NOTE: standalone properties from env can be used to * configure additional sources */ private initializeAdditionalSources; /** * Returns the arguments for creating the `ConfigSource` instance * @param ctor * @private */ private getConfigSourceArguments; }