import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation"; import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"; import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { ReadableStreamEvents } from "@codingame/monaco-vscode-api/vscode/vs/base/common/stream"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { FileSystemProviderCapabilities, FileType, IFileChange, IFileDeleteOptions, IFileOverwriteOptions, IFileReadStreamOptions, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileReadWriteCapability, IFileWriteOptions, IStat, IWatchOptions } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files"; import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service"; import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { IWebContentExtractorService } from "@codingame/monaco-vscode-api/vscode/vs/platform/webContentExtractor/common/webContentExtractor.service"; import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions"; export declare class McpResourceFilesystem extends Disposable implements IWorkbenchContribution, IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileReadStreamCapability { private readonly _instantiationService; private readonly _fileService; private readonly _webContentExtractorService; /** Defer getting the MCP service since this is a BlockRestore and no need to make it unnecessarily. */ private readonly _mcpServiceLazy; /** * For many file operations we re-read the resources quickly (e.g. stat * before reading the file) and would prefer to avoid spamming the MCP * with multiple reads. This is a very short-duration cache * to solve that. */ private readonly _momentaryCache; private get _mcpService(); readonly onDidChangeCapabilities: Event; private readonly _onDidChangeFile; readonly onDidChangeFile: Event; readonly capabilities: FileSystemProviderCapabilities; constructor(_instantiationService: IInstantiationService, _fileService: IFileService, _webContentExtractorService: IWebContentExtractorService); readFile(resource: URI): Promise; readFileStream(resource: URI, opts: IFileReadStreamOptions, token: CancellationToken): ReadableStreamEvents; watch(uri: URI, _opts: IWatchOptions): IDisposable; stat(resource: URI): Promise; readdir(resource: URI): Promise<[ string, FileType ][]>; mkdir(resource: URI): Promise; writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise; delete(resource: URI, opts: IFileDeleteOptions): Promise; rename(from: URI, to: URI, opts: IFileOverwriteOptions): Promise; private _readFile; private _decodeURI; private _readURI; private _readURIInner; }