/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { Event } from "../../../base/common/event.mjs";
import { Disposable, IDisposable } from "../../../base/common/lifecycle.mjs";
import { URI } from "../../../base/common/uri.mjs";
import { ConfigurationTarget, IConfigurationChangeEvent, IConfigurationData, IConfigurationOverrides, IConfigurationService, IConfigurationValue } from "./configuration.mjs";
import { IFileService } from "../../files/common/files.mjs";
import { ILogService } from "../../log/common/log.mjs";
import { IPolicyService } from "../../policy/common/policy.mjs";
export declare class ConfigurationService extends Disposable implements IConfigurationService, IDisposable {
    private readonly settingsResource;
    readonly _serviceBrand: undefined;
    private configuration;
    private readonly defaultConfiguration;
    private readonly policyConfiguration;
    private readonly userConfiguration;
    private readonly reloadConfigurationScheduler;
    private readonly _onDidChangeConfiguration;
    readonly onDidChangeConfiguration: Event<IConfigurationChangeEvent>;
    constructor(settingsResource: URI, fileService: IFileService, policyService: IPolicyService, logService: ILogService);
    initialize(): Promise<void>;
    getConfigurationData(): IConfigurationData;
    getValue<T>(): T;
    getValue<T>(section: string): T;
    getValue<T>(overrides: IConfigurationOverrides): T;
    getValue<T>(section: string, overrides: IConfigurationOverrides): T;
    updateValue(key: string, value: any): Promise<void>;
    updateValue(key: string, value: any, overrides: IConfigurationOverrides): Promise<void>;
    updateValue(key: string, value: any, target: ConfigurationTarget): Promise<void>;
    updateValue(key: string, value: any, overrides: IConfigurationOverrides, target: ConfigurationTarget): Promise<void>;
    inspect<T>(key: string): IConfigurationValue<T>;
    keys(): {
        default: string[];
        user: string[];
        workspace: string[];
        workspaceFolder: string[];
    };
    reloadConfiguration(): Promise<void>;
    private onDidChangeUserConfiguration;
    private onDidDefaultConfigurationChange;
    private onDidPolicyConfigurationChange;
    private trigger;
    private getTargetConfiguration;
}
