import { Event } from "../../../../base/common/event.js"; import { URI } from "../../../../base/common/uri.js"; import { IWorkspaceIdentifier } from "../../../../platform/workspace/common/workspace.js"; import { IWorkspaceFolderCreationData } from "../../../../platform/workspaces/common/workspaces.js"; import { IDidEnterWorkspaceEvent } from "./workspaceEditing.js"; export declare const IWorkspaceEditingService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IWorkspaceEditingService { readonly _serviceBrand: undefined; /** * Fired after the workspace is entered. Allows listeners to join the * entering with a promise to migrate data into this new workspace. */ readonly onDidEnterWorkspace: Event; /** * Add folders to the existing workspace. * When `donotNotifyError` is `true`, error will be bubbled up otherwise, the service handles the error with proper message and action */ addFolders(folders: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Promise; /** * Remove folders from the existing workspace * When `donotNotifyError` is `true`, error will be bubbled up otherwise, the service handles the error with proper message and action */ removeFolders(folders: URI[], donotNotifyError?: boolean): Promise; /** * Allows to add and remove folders to the existing workspace at once. * When `donotNotifyError` is `true`, error will be bubbled up otherwise, the service handles the error with proper message and action */ updateFolders(index: number, deleteCount?: number, foldersToAdd?: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Promise; /** * Enters the workspace with the provided path. */ enterWorkspace(path: URI): Promise; /** * Creates a new workspace with the provided folders and opens it. if path is provided * the workspace will be saved into that location. */ createAndEnterWorkspace(folders: IWorkspaceFolderCreationData[], path?: URI): Promise; /** * Saves the current workspace to the provided path and opens it. requires a workspace to be opened. */ saveAndEnterWorkspace(path: URI): Promise; /** * Copies current workspace settings to the target workspace. */ copyWorkspaceSettings(toWorkspace: IWorkspaceIdentifier): Promise; /** * Picks a new workspace path */ pickNewWorkspacePath(): Promise; }