/*---------------------------------------------------------------------------------------------
 *  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 } from "../../../base/common/lifecycle.mjs";
import { URI, UriDto } from "../../../base/common/uri.mjs";
import { IEnvironmentService } from "../../environment/common/environment.mjs";
import { IMainProcessService } from "../../ipc/electron-sandbox/services.mjs";
import { DidChangeProfilesEvent, IUserDataProfile, IUserDataProfileOptions, IUserDataProfilesService, IUserDataProfileUpdateOptions } from "../common/userDataProfile.mjs";
import { IAnyWorkspaceIdentifier } from "../../workspace/common/workspace.mjs";
export declare class UserDataProfilesNativeService extends Disposable implements IUserDataProfilesService {
    readonly _serviceBrand: undefined;
    private readonly channel;
    readonly profilesHome: URI;
    get defaultProfile(): IUserDataProfile;
    private _profiles;
    get profiles(): IUserDataProfile[];
    private readonly _onDidChangeProfiles;
    readonly onDidChangeProfiles: Event<DidChangeProfilesEvent>;
    readonly onDidResetWorkspaces: Event<void>;
    private enabled;
    constructor(profiles: readonly UriDto<IUserDataProfile>[], mainProcessService: IMainProcessService, environmentService: IEnvironmentService);
    setEnablement(enabled: boolean): void;
    isEnabled(): boolean;
    createNamedProfile(name: string, options?: IUserDataProfileOptions, workspaceIdentifier?: IAnyWorkspaceIdentifier): Promise<IUserDataProfile>;
    createProfile(id: string, name: string, options?: IUserDataProfileOptions, workspaceIdentifier?: IAnyWorkspaceIdentifier): Promise<IUserDataProfile>;
    createTransientProfile(workspaceIdentifier?: IAnyWorkspaceIdentifier): Promise<IUserDataProfile>;
    setProfileForWorkspace(workspaceIdentifier: IAnyWorkspaceIdentifier, profile: IUserDataProfile): Promise<void>;
    removeProfile(profile: IUserDataProfile): Promise<void>;
    updateProfile(profile: IUserDataProfile, updateOptions: IUserDataProfileUpdateOptions): Promise<IUserDataProfile>;
    resetWorkspaces(): Promise<void>;
    cleanUp(): Promise<void>;
    cleanUpTransientProfiles(): Promise<void>;
}
