/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { AddFirstParameterToFunctions } from "../../../base/common/types.mjs";
import { URI } from "../../../base/common/uri.mjs";
import { IBackupMainService } from "../../backup/electron-main/backup.mjs";
import { IWindowsMainService } from "../../windows/electron-main/windows.mjs";
import { IEnterWorkspaceResult, IRecent, IRecentlyOpened, IWorkspaceFolderCreationData, IWorkspacesService } from "../common/workspaces.mjs";
import { IWorkspaceIdentifier } from "../../workspace/common/workspace.mjs";
import { IWorkspacesHistoryMainService } from "./workspacesHistoryMainService.mjs";
import { IWorkspacesManagementMainService } from "./workspacesManagementMainService.mjs";
import { IWorkspaceBackupInfo, IFolderBackupInfo } from "../../backup/common/backup.mjs";
export declare class WorkspacesMainService implements AddFirstParameterToFunctions<IWorkspacesService, Promise<unknown>, number> {
    private readonly workspacesManagementMainService;
    private readonly windowsMainService;
    private readonly workspacesHistoryMainService;
    private readonly backupMainService;
    readonly _serviceBrand: undefined;
    constructor(workspacesManagementMainService: IWorkspacesManagementMainService, windowsMainService: IWindowsMainService, workspacesHistoryMainService: IWorkspacesHistoryMainService, backupMainService: IBackupMainService);
    enterWorkspace(windowId: number, path: URI): Promise<IEnterWorkspaceResult | undefined>;
    createUntitledWorkspace(windowId: number, folders?: IWorkspaceFolderCreationData[], remoteAuthority?: string): Promise<IWorkspaceIdentifier>;
    deleteUntitledWorkspace(windowId: number, workspace: IWorkspaceIdentifier): Promise<void>;
    getWorkspaceIdentifier(windowId: number, workspacePath: URI): Promise<IWorkspaceIdentifier>;
    readonly onDidChangeRecentlyOpened: import("../../../base/common/event").Event<void>;
    getRecentlyOpened(windowId: number): Promise<IRecentlyOpened>;
    addRecentlyOpened(windowId: number, recents: IRecent[]): Promise<void>;
    removeRecentlyOpened(windowId: number, paths: URI[]): Promise<void>;
    clearRecentlyOpened(windowId: number): Promise<void>;
    getDirtyWorkspaces(): Promise<Array<IWorkspaceBackupInfo | IFolderBackupInfo>>;
}
