/*---------------------------------------------------------------------------------------------
 *  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 '@sussudio/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;
}
