import { IWorkspaceFolder, IWorkspaceData, WorkbenchState, IConfigurationChangeEvent, IWorkspaceFoldersChangeEvent, IWorkspaceFolderCreationData, ISingleFolderWorkspaceIdentifier, IWorkspaceIdentifier, IClientWorkspaceContextService } from '../../interfaces'; import { Workspace } from '../../core'; import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; import { Event, Emitter } from '@vscode-alt/monaco-editor/esm/vs/base/common/event'; import { Disposable } from '@vscode-alt/monaco-editor/esm/vs/base/common/lifecycle'; import { Barrier } from '@vscode-alt/monaco-editor/esm/vs/base/common/async'; import { CdmLogger } from '@cdm-logger/core'; type ILogger = CdmLogger.ILogger; export declare abstract class AbstractWorkspaceContextService extends Disposable implements IClientWorkspaceContextService { protected workspace: Workspace; protected completeWorkspaceBarrier: Barrier; protected updateWorkspaceBarrier: Barrier; private _configuration; protected logger: ILogger; protected readonly _onDidChangeConfiguration: Emitter; readonly onDidChangeConfiguration: Event; protected readonly _onDidChangeWorkspaceFolders: Emitter; readonly onDidChangeWorkspaceFolders: Event; protected readonly _onDidChangeWorkspaceName: Emitter; readonly onDidChangeWorkspaceName: Event; protected readonly _onDidChangeWorkbenchState: Emitter; readonly onDidChangeWorkbenchState: Event; constructor(logger: ILogger); abstract extInitialize(): any; abstract initialize(args: any): any; getCompleteWorkspace(): Promise; getWorkspace(): Workspace; getWorkbenchState(): WorkbenchState; getWorkspaceFolder(resource: URI): IWorkspaceFolder | null; abstract addFolders(foldersToAdd: IWorkspaceFolderCreationData[], index?: number): Promise; abstract removeFolders(foldersToRemove: URI[]): Promise; abstract updateFolders(foldersToAdd: IWorkspaceFolderCreationData[], foldersToRemove: URI[], index?: number): Promise; isInsideWorkspace(resource: URI): boolean; isCurrentWorkspace(workspaceIdentifier: ISingleFolderWorkspaceIdentifier | IWorkspaceIdentifier): boolean; extAcceptChangedWorkbenchState(workspace: IWorkspaceData, event: WorkbenchState): void; extAcceptChangedWorkspaceFolders(workspace: IWorkspaceData, event: IWorkspaceFoldersChangeEvent): void; extAcceptChangedWorkspaceName(workspace: IWorkspaceData): void; protected releaseWorkspaceBarrier(): void; protected releaseUpdateWorkspaceBarrier(): void; protected reviveWorkspaceUris(workspaceData: IWorkspaceData): Workspace; } export {};