/** ******************************************************************************
 * Copyright (C) 2018 Red Hat, Inc. and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/
import { IRPCProtocol } from '@opensumi/ide-connection';
import { Event } from '@opensumi/ide-core-common';
import { IExtHostPreference, IExtHostWorkspace, PreferenceChangeExt, PreferenceData, WorkspaceConfiguration } from '../../../common/vscode';
import { Uri } from '../../../common/vscode/ext-types';
import { Configuration, ConfigurationChangeEvent } from './preferences';
export declare class ExtHostPreference implements IExtHostPreference {
    private readonly workspace;
    private proxy;
    private _preferences;
    protected readonly rpcProtocol: IRPCProtocol;
    private readonly _onDidChangeConfiguration;
    readonly onDidChangeConfiguration: Event<ConfigurationChangeEvent>;
    constructor(rpcProtocol: IRPCProtocol, workspace: IExtHostWorkspace);
    init(data: PreferenceData): void;
    $initializeConfiguration(data: any): void;
    $acceptConfigurationChanged(data: {
        [key: string]: any;
    }, eventData: PreferenceChangeExt[]): void;
    parse(data: PreferenceData): Configuration;
    private getConfigurationModel;
    private readonly OVERRIDE_PROPERTY;
    private readonly OVERRIDE_PROPERTY_PATTERN;
    private parseConfigurationData;
    private toConfigurationChangeEvent;
    getConfiguration(section?: string, resource?: Uri | null, extensionId?: string): WorkspaceConfiguration;
    private toReadonlyValue;
}
//# sourceMappingURL=ext.host.preference.d.ts.map