import { DeepReadonly } from '../utils'; import { ClassConstructor } from '../utils/class-constructor'; import { ConfigValidationError } from '../validator'; import { ConfigManagerRegisterSyncOptions, ConfigManagerRegisterOptions } from './options'; import { ConfigContainer } from './container'; export interface ConfigManager { register(...configs: ConfigManagerRegisterOptions[]): Promise; registerSync(...configs: ConfigManagerRegisterSyncOptions[]): ConfigValidationError | undefined; registerOrReject(...configs: ConfigManagerRegisterOptions[]): Promise; /** * Retrieves readonly template values. * @param {Type} template * @returns {TTemplate} value */ getValues>(template: ClassConstructor): DeepReadonly; /** * Retrieves container to manage configuration. * @param {Type} template * @returns {ConfigContainer} */ getContainer>(template: ClassConstructor): ConfigContainer; }