import { Config, InternalSchema, Options, Overwrite, PredefinedFormat, Schema, SchemaObj, ValidateOptions, ValidationMethod } from 'convict'; import EventEmitter from 'eventemitter3'; import { ConfigEvents } from '@refinitiv-data/types'; export { InternalSchema, Overwrite, ValidateOptions, ValidationMethod, PredefinedFormat, Options as ConfigOptions, SchemaObj, Schema }; export declare class BaseConfig extends EventEmitter> implements Config { private initialSchema; private config; private defaultConfigExtensions; get defaultConfig(): Config; constructor(initialSchema: T); get(name?: K): K extends null | undefined ? T : K extends keyof T ? T[K] : any; get(name: string): T[K][K2]; get(name: K): T[K][K2][K3]; get(name: string): T[K][K2][K3][K4]; set(name: K, value: K extends keyof T ? T[K] : any): Config; set(name: K, value: K2 extends keyof T[K] ? T[K][K2] : any): Config; set(name: K, value: K3 extends keyof T[K][K2] ? T[K][K2][K3] : any): Config; set(name: K, value: K4 extends keyof T[K][K2][K3] ? T[K][K2][K3][K4] : any): Config; default(name?: K | undefined): K extends keyof T ? T[K] : K extends null | undefined ? T : any; default(name?: K | undefined): T[K]; default(name: string): T[K][K2]; default(name: K): T[K][K2][K3]; default(name: string): T[K][K2][K3][K4]; has(name: K): boolean; has(name: string): boolean; has(name: K): boolean; has(name: string): boolean; load(conf: U): Config>; loadFile(files: string | string[]): Config>; validate(options?: ValidateOptions | undefined): Config; getProperties(): T; getSchema(): InternalSchema; toString(): string; getSchemaString(): string; protected registerExtendedDefault(configExtend: any): void; protected resetConfig(): Config; }