export interface AgentConfigurationKey { required: boolean; type: 'number' | 'string' | 'boolean'; } export interface AgentConfigurationProvider { getAllKeyValues(callback: (err: Error, keysAndValues: { [key: string]: string; }) => void): void; getName(): string; } export declare class JsonObjectConfigurationProvider implements AgentConfigurationProvider { protected configObject: Record; constructor(configObject: Record); getAllKeyValues(callback: (err: Error, keysAndValues: { [key: string]: string; }) => void): void; getName(): string; } export declare class EnvVariableConfigurationProvider implements AgentConfigurationProvider { private prefix?; constructor(prefix?: string); getAllKeyValues(callback: (err: Error, keysAndValues: { [key: string]: string; }) => void): void; getName(): string; } export declare class ConfigProviderAggregator implements AgentConfigurationProvider { private providers; constructor(providers: AgentConfigurationProvider[]); getAllKeyValues(callback: (err: Error, keysAndValues: { [key: string]: string; }) => void): void; getName(): string; } export declare class JsonConfigFileConfigurationProvider implements AgentConfigurationProvider { private filename; constructor(filename: string); getAllKeyValues(callback: (err: Error, keysAndValues: { [key: string]: string; }) => void): void; getName(): string; } export declare abstract class AgentConfigKey { metadata: AgentConfigurationKey; abstract loadFromRawData(s: string): any; hasValue: boolean; isConfigKey: true; value: T; } export declare class StringConfigKey implements AgentConfigKey { private required; constructor(required: boolean, defaultValue?: string); isConfigKey: true; readonly metadata: AgentConfigurationKey; private _value; get value(): string; set value(value: string); hasValue: boolean; loadFromRawData(s: string): void; } export declare class NumberConfigKey implements AgentConfigKey { private required; constructor(required: boolean, defaultValue?: number); isConfigKey: true; readonly metadata: AgentConfigurationKey; private _value; get value(): number; set value(value: number); hasValue: boolean; loadFromRawData(s: string): void; } export declare class BooleanConfigKey implements AgentConfigKey { private required; constructor(required: boolean, defaultValue?: boolean); isConfigKey: true; readonly metadata: AgentConfigurationKey; private _value; get value(): boolean; set value(value: boolean); hasValue: boolean; loadFromRawData(s: string): void; } export declare class BaseConfiguration { loadConfigurationFromMultipleProviders(configProviders: AgentConfigurationProvider[], callback: (err: Error) => void): void; loadConfiguration(configProvider: AgentConfigurationProvider, callback?: (err: Error) => void, dbg?: boolean): void; toJsonObject(): Record; getLowerCaseToKeyMap(): {}; }