import { Uri } from '@opensumi/ide-core-common';
import { IExtHostWorkspace } from '../../../../common/vscode';
export declare class Configuration {
    private defaultConfiguration;
    private userConfiguration;
    private workspaceConfiguration;
    private folderConfigurations;
    private combinedConfig;
    private folderCombinedConfigs;
    constructor(defaultConfiguration: ConfigurationModel, userConfiguration: ConfigurationModel, workspaceConfiguration?: ConfigurationModel, folderConfigurations?: {
        [resource: string]: ConfigurationModel;
    });
    getValue(section: string | undefined, workspace: IExtHostWorkspace, resource?: Uri): any;
    inspect<C>(key: string, workspace: IExtHostWorkspace, resource?: Uri): {
        default: C;
        user: C;
        workspace: C | undefined;
        workspaceFolder: C | undefined;
        value: C;
    };
    private getCombinedResourceConfig;
    private getCombinedConfig;
    private getFolderCombinedConfig;
    private getFolderResourceConfig;
}
export declare class ConfigurationModel {
    private contents;
    private keys;
    constructor(contents?: any, keys?: string[]);
    getValue(section?: string): any;
    merge(...others: ConfigurationModel[]): ConfigurationModel;
    private mergeContents;
    private mergeKeys;
}
export interface ConfigurationChangeEvent {
    /**
     * @param section 配置名称，支持用`.`隔开的配置.
     * @param resource 资源路径
     * @return 当给定的资源文件修改了，返回true
     */
    affectsConfiguration(section: string, resource?: Uri): boolean;
}
//# sourceMappingURL=configuration.d.ts.map