import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; import { Event } from '@vscode-alt/monaco-editor/esm/vs/base/common/event'; import { IDisposable } from '@vscode-alt/monaco-editor/esm/vs/base/common/lifecycle'; import { IFiles_Stat as IStat, IFileOpenOptions as FileOpenOptions, IFileChange } from './generated-models'; import { FileDeleteOptions, FileOverwriteOptions, FileWriteOptions, IWatchOptions } from './type-redirects'; export declare enum FileType { Unknown = 0, File = 1, Directory = 2, SymbolicLink = 64 } export declare enum FileKind { FILE = 0, FOLDER = 1, ROOT_FOLDER = 2 } export interface IEncodingOverride { resource: URI; encoding: string; } /** * Possible changes that can occur to a file. */ export declare enum FileChangeType { UPDATED = "UPDATED", ADDED = "ADDED", DELETED = "DELETED" } export declare enum HotExitConfiguration { OFF = "off", ON_EXIT = "onExit", ON_EXIT_AND_WINDOW_CLOSE = "onExitAndWindowClose" } export interface IProgress { report(item: T): void; } export declare const enum FileSystemProviderCapabilities { FileReadWrite = 2, FileOpenReadWriteClose = 4, FileFolderCopy = 8, PathCaseSensitive = 1024, Readonly = 2048, Trash = 4096 } export declare enum FileSystemProviderErrorCode { FileExists = "EntryExists", FileNotFound = "EntryNotFound", FileNotADirectory = "EntryNotADirectory", FileIsADirectory = "EntryIsADirectory", NoPermissions = "NoPermissions", Unavailable = "Unavailable", Unknown = "Unknown" } export interface IFileSystemProviderActivationEvent { scheme: string; join(promise: Promise): void; } export interface IFileSystemProviderRegistrationEvent { added: boolean; scheme: string; provider?: IFileSystemProvider; } export interface IFileSystemProvider { readonly capabilities: FileSystemProviderCapabilities; readonly onDidChangeCapabilities: Event; readonly onDidErrorOccur?: Event; readonly onDidChangeFile: Event; watch(resource: URI, opts: IWatchOptions): IDisposable; stat(resource: URI): Promise; mkdir(resource: URI): Promise; readdir(resource: URI): Promise<[string, FileType][]>; delete(resource: URI, opts: FileDeleteOptions): Promise; rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise; copy?(from: URI, to: URI, opts: FileOverwriteOptions): Promise; readFile?(resource: URI): Promise; writeFile?(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise; open?(resource: URI, opts: FileOpenOptions): Promise; close?(fd: number): Promise; read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise; write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise; } export interface IFileSystemProviderWithFileReadWriteCapability extends IFileSystemProvider { readFile(resource: URI): Promise; writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise; } export interface IFileSystemProviderWithOpenReadWriteCloseCapability extends IFileSystemProvider { open(resource: URI, opts: FileOpenOptions): Promise; close(fd: number): Promise; read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise; write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise; } export interface IFileSystemProviderWithFileFolderCopyCapability extends IFileSystemProvider { copy(from: URI, to: URI, opts: FileOverwriteOptions): Promise; }