import { WorkspaceFolder as VWorkspaceFolder, WorkspaceFoldersChangeEvent as VWorkspaceFoldersChangeEvent } from 'vscode'; import { DynamicFeature, RegistrationData, FeatureClient, NextSignature, FeatureState } from './features'; import { ClientCapabilities, InitializeParams, ServerCapabilities, WorkspaceFoldersRequest, RegistrationType } from 'vscode-languageserver-protocol'; export declare function arrayDiff(left: ReadonlyArray, right: ReadonlyArray): T[]; export type WorkspaceFolderMiddleware = { workspaceFolders?: WorkspaceFoldersRequest.MiddlewareSignature; didChangeWorkspaceFolders?: NextSignature>; }; type WorkspaceFolderWorkspaceMiddleware = { workspace?: WorkspaceFolderMiddleware; }; export declare class WorkspaceFoldersFeature implements DynamicFeature { private readonly _client; private readonly _listeners; private _initialFolders; constructor(client: FeatureClient); getState(): FeatureState; get registrationType(): RegistrationType; fillInitializeParams(params: InitializeParams): void; protected initializeWithFolders(currentWorkspaceFolders: ReadonlyArray | undefined): void; fillClientCapabilities(capabilities: ClientCapabilities): void; initialize(capabilities: ServerCapabilities): void; protected sendInitialEvent(currentWorkspaceFolders: ReadonlyArray | undefined): void; private doSendEvent; register(data: RegistrationData): void; unregister(id: string): void; clear(): void; private asProtocol; } export {};