///
import * as events from "events";
declare class Config extends events.EventEmitter {
// Constructor
constructor(configFilePath: string, options?: Config.Options);
// Properties
public configFile: string;
public schemaFile: string;
public createOnNoEntry: boolean;
public writeOnSet: boolean;
public autoReload: boolean;
public autoReloadActivated: boolean;
public reloadDelay: number;
public configHasBeenRead: boolean;
public subscriptionObservers: Array<[string, ZenObservable.SubscriptionObserver]>;
public payload: T;
public defaultSchema: object;
// Static properties
static DEFAULTSchema: object;
static STRINGIFY_SPACE: number;
static SUPPORTED_EXT: Set;
static DEFAULT_EXTENSION: ".json" | ".toml";
// Methods
public read(defaultPayload?: T): Promise;
public setupAutoReload(): boolean;
public get(fieldPath: string, depth?: number): H;
public set(fieldPath: string, fieldValue: H): void;
public observableOf(fieldPath: string, depth?: number): ZenObservable.ObservableLike;
public writeOnDisk(): Promise;
public lazyWriteOnDisk(): void;
public close(): Promise;
}
declare namespace Config {
interface Options {
createOnNoEntry?: boolean;
writeOnSet?: boolean;
autoReload?: boolean;
reloadDelay?: number;
defaultSchema?: object;
}
}
export as namespace Config;
export = Config;