/*---------------------------------------------------------------------------------------------
 *  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 { INativeEnvironmentService } from "../../environment/common/environment.mjs";
import { IFileService } from "../../files/common/files.mjs";
import { ILogService } from "../../log/common/log.mjs";
import { IStateMainService } from "../../state/electron-main/state.mjs";
import { IUriIdentityService } from "../../uriIdentity/common/uriIdentity.mjs";
import { IUserDataProfilesService, StoredUserDataProfile, StoredProfileAssociations, WillCreateProfileEvent, WillRemoveProfileEvent, IUserDataProfile } from "../common/userDataProfile.mjs";
import { UserDataProfilesService } from "../node/userDataProfile.mjs";
import { IAnyWorkspaceIdentifier, IEmptyWorkspaceIdentifier } from "../../workspace/common/workspace.mjs";
export declare const IUserDataProfilesMainService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IUserDataProfilesMainService>;
export interface IUserDataProfilesMainService extends IUserDataProfilesService {
    getProfileForWorkspace(workspaceIdentifier: IAnyWorkspaceIdentifier): IUserDataProfile | undefined;
    unsetWorkspace(workspaceIdentifier: IAnyWorkspaceIdentifier, transient?: boolean): void;
    getAssociatedEmptyWindows(): IEmptyWorkspaceIdentifier[];
    readonly onWillCreateProfile: Event<WillCreateProfileEvent>;
    readonly onWillRemoveProfile: Event<WillRemoveProfileEvent>;
}
export declare class UserDataProfilesMainService extends UserDataProfilesService implements IUserDataProfilesMainService {
    private readonly stateMainService;
    constructor(stateMainService: IStateMainService, uriIdentityService: IUriIdentityService, environmentService: INativeEnvironmentService, fileService: IFileService, logService: ILogService);
    setEnablement(enabled: boolean): void;
    getAssociatedEmptyWindows(): IEmptyWorkspaceIdentifier[];
    protected saveStoredProfiles(storedProfiles: StoredUserDataProfile[]): void;
    protected saveStoredProfileAssociations(storedProfileAssociations: StoredProfileAssociations): void;
    protected getStoredProfileAssociations(): StoredProfileAssociations;
}
