import { IRPCProtocol } from '@opensumi/ide-connection';
import { FileChange, FileSystemProviderCapabilities } from '@opensumi/ide-file-service';
import { FileType } from '@opensumi/ide-file-service/lib/common';
import { UriComponents } from '../../../common/vscode/ext-types';
import { FileDeleteOptions, FileOverwriteOptions, FileStat, IMainThreadFileSystemShape } from '../../../common/vscode/file-system';
export declare class MainThreadFileSystem implements IMainThreadFileSystemShape {
    private readonly rpcProtocol;
    private readonly disposable;
    private readonly _proxy;
    private readonly _fileProvider;
    private readonly _fileService;
    private schemeRegistry;
    constructor(rpcProtocol: IRPCProtocol);
    dispose(): void;
    $registerFileSystemProvider(handle: number, scheme: string, capabilities: FileSystemProviderCapabilities): void;
    $unregisterProvider(handle: number): void;
    $onFileSystemChange(handle: number, changes: FileChange[]): void;
    $stat(uri: UriComponents): Promise<FileStat>;
    $readdir(uri: UriComponents): Promise<[string, FileType][]>;
    private static _asFileType;
    $readFile(uri: UriComponents): Promise<Uint8Array>;
    $writeFile(uri: UriComponents, content: Uint8Array): Promise<void>;
    $rename(source: UriComponents, target: UriComponents, opts: FileOverwriteOptions): Promise<void>;
    $copy(source: UriComponents, target: UriComponents, opts: FileOverwriteOptions): Promise<void>;
    $mkdir(uri: UriComponents): Promise<void>;
    $delete(uri: UriComponents, opts: FileDeleteOptions): Promise<void>;
    private static _handleError;
}
//# sourceMappingURL=main.thread.file-system.d.ts.map