import { CancellationToken } from "../../../base/common/cancellation.js"; import { Event } from "../../../base/common/event.js"; import { URI, UriComponents } from "../../../base/common/uri.js"; import { ExtensionIdentifier, IExtensionDescription } from "../../../platform/extensions/common/extensions.js"; import { ILogService } from "../../../platform/log/common/log.service.js"; import { EditSessionIdentityMatch } from "../../../platform/workspace/common/editSessions.js"; import { Workspace } from "../../../platform/workspace/common/workspace.js"; import { IExtHostFileSystemInfo } from "./extHostFileSystemInfo.js"; import { IExtHostInitDataService } from "./extHostInitDataService.js"; import { IExtHostRpcService } from "./extHostRpcService.js"; import { IURITransformerService } from "./extHostUriTransformerService.js"; import { ITextQueryBuilderOptions } from "../../services/search/common/queryBuilder.js"; import { IRawFileMatch2, ITextSearchResult } from "../../services/search/common/search.js"; import type * as vscode from "vscode"; import { ExtHostWorkspaceShape, IWorkspaceData } from "./extHost.protocol.js"; import { AuthInfo, Credentials } from "../../../platform/request/common/request.js"; export interface IExtHostWorkspaceProvider { getWorkspaceFolder2(uri: vscode.Uri, resolveParent?: boolean): Promise; resolveWorkspaceFolder(uri: vscode.Uri): Promise; getWorkspaceFolders2(): Promise; resolveProxy(url: string): Promise; lookupAuthorization(authInfo: AuthInfo): Promise; lookupKerberosAuthorization(url: string): Promise; loadCertificates(): Promise; } interface QueryOptions { options: T; folder: URI | undefined; } export declare class ExtHostWorkspace implements ExtHostWorkspaceShape, IExtHostWorkspaceProvider { readonly _serviceBrand: undefined; private readonly _onDidChangeWorkspace; readonly onDidChangeWorkspace: Event; private readonly _onDidGrantWorkspaceTrust; readonly onDidGrantWorkspaceTrust: Event; private readonly _onDidChangeWorkspaceTrustedFolders; readonly onDidChangeWorkspaceTrustedFolders: Event; private readonly _logService; private readonly _requestIdProvider; private readonly _barrier; private _confirmedWorkspace?; private _unconfirmedWorkspace?; private readonly _proxy; private readonly _messageService; private readonly _extHostFileSystemInfo; private readonly _uriTransformerService; private readonly _activeSearchCallbacks; private _trusted; private readonly _editSessionIdentityProviders; constructor(extHostRpc: IExtHostRpcService, initData: IExtHostInitDataService, extHostFileSystemInfo: IExtHostFileSystemInfo, logService: ILogService, uriTransformerService: IURITransformerService); $initializeWorkspace(data: IWorkspaceData | null, trusted: boolean): void; waitForInitializeCall(): Promise; get workspace(): Workspace | undefined; get name(): string | undefined; get workspaceFile(): vscode.Uri | undefined; private get _actualWorkspace(); getWorkspaceFolders(): vscode.WorkspaceFolder[] | undefined; getWorkspaceFolders2(): Promise; updateWorkspaceFolders(extension: IExtensionDescription, index: number, deleteCount: number, ...workspaceFoldersToAdd: { uri: vscode.Uri; name?: string; }[]): boolean; getWorkspaceFolder(uri: vscode.Uri, resolveParent?: boolean): vscode.WorkspaceFolder | undefined; getWorkspaceFolder2(uri: vscode.Uri, resolveParent?: boolean): Promise; resolveWorkspaceFolder(uri: vscode.Uri): Promise; getPath(): string | undefined; getRelativePath(pathOrUri: string | vscode.Uri, includeWorkspace?: boolean): string; private trySetWorkspaceFolders; $acceptWorkspaceData(data: IWorkspaceData | null): void; /** * Note, null/undefined have different and important meanings for "exclude" */ findFiles(include: vscode.GlobPattern | undefined, exclude: vscode.GlobPattern | null | undefined, maxResults: number | undefined, extensionId: ExtensionIdentifier, token?: vscode.CancellationToken): Promise; findFiles2(filePatterns: readonly vscode.GlobPattern[], options: vscode.FindFiles2Options | undefined, extensionId: ExtensionIdentifier, token?: vscode.CancellationToken): Promise; private _findFilesImpl; private _findFilesBase; findTextInFiles2(query: vscode.TextSearchQuery2, options: vscode.FindTextInFilesOptions2 | undefined, extensionId: ExtensionIdentifier, token?: vscode.CancellationToken): vscode.FindTextInFilesResponse; findTextInFilesBase(query: vscode.TextSearchQuery, queryOptions: QueryOptions[] | undefined, callback: (result: ITextSearchResult, uri: URI) => void, token?: vscode.CancellationToken): Promise; findTextInFiles(query: vscode.TextSearchQuery, options: vscode.FindTextInFilesOptions & { useSearchExclude?: boolean; }, callback: (result: vscode.TextSearchResult) => void, extensionId: ExtensionIdentifier, token?: vscode.CancellationToken): Promise; $handleTextSearchResult(result: IRawFileMatch2, requestId: number): void; save(uri: URI): Promise; saveAs(uri: URI): Promise; saveAll(includeUntitled?: boolean): Promise; resolveProxy(url: string): Promise; lookupAuthorization(authInfo: AuthInfo): Promise; lookupKerberosAuthorization(url: string): Promise; loadCertificates(): Promise; get trusted(): boolean; requestResourceTrust(options: vscode.ResourceTrustRequestOptions): Promise; requestWorkspaceTrust(options?: vscode.WorkspaceTrustRequestOptions): Promise; $onDidGrantWorkspaceTrust(): void; $onDidChangeWorkspaceTrustedFolders(): void; isResourceTrusted(resource: vscode.Uri): Promise; private _providerHandlePool; registerEditSessionIdentityProvider(scheme: string, provider: vscode.EditSessionIdentityProvider): import("../../../base/common/lifecycle.js").IDisposable; $getEditSessionIdentifier(workspaceFolder: UriComponents, cancellationToken: CancellationToken): Promise; $provideEditSessionIdentityMatch(workspaceFolder: UriComponents, identity1: string, identity2: string, cancellationToken: CancellationToken): Promise; private readonly _onWillCreateEditSessionIdentityEvent; getOnWillCreateEditSessionIdentityEvent(extension: IExtensionDescription): Event; $onWillCreateEditSessionIdentity(workspaceFolder: UriComponents, token: CancellationToken, timeout: number): Promise; private readonly _canonicalUriProviders; registerCanonicalUriProvider(scheme: string, provider: vscode.CanonicalUriProvider): import("../../../base/common/lifecycle.js").IDisposable; provideCanonicalUri(uri: URI, options: vscode.CanonicalUriRequestOptions, cancellationToken: CancellationToken): Promise; $provideCanonicalUri(uri: UriComponents, targetScheme: string, cancellationToken: CancellationToken): Promise; decode(content: Uint8Array, args?: { uri?: vscode.Uri; encoding?: string; }): Promise; encode(content: string, args?: { uri?: vscode.Uri; encoding?: string; }): Promise; private toEncodeDecodeParameters; } export declare const IExtHostWorkspace: import("../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface IExtHostWorkspace extends ExtHostWorkspace, ExtHostWorkspaceShape, IExtHostWorkspaceProvider { } export {};