import type { Path, PathValue } from './type';
export declare class ConfigService<Config extends Record<string, unknown>> {
    #private;
    private readonly defaultConfig?;
    constructor(defaultConfig?: Config | undefined);
    init(config: Config): void;
    initAsync(loader: () => Promise<Config>): Promise<void>;
    get config(): Config;
    toJSON(): string;
    set config(config: Config);
    get<P extends Path<Config>>(key: P): PathValue<Config, P>;
}
