import type { ProviderStatus, WorkspaceFilesystem, FileContent, FileStat, FileEntry, AbortableOptions, AppendOptions, ReadOptions, WriteOptions, ListOptions, RemoveOptions, CopyOptions, MkdirOptions } from '../types'; export type FilesystemLifecycleHook = (args: { filesystem: WorkspaceFilesystem; }) => void | Promise; export interface BaseFilesystemOptions { onInit?: FilesystemLifecycleHook; onDestroy?: FilesystemLifecycleHook; } export declare abstract class BaseFilesystem implements WorkspaceFilesystem { abstract readonly id: string; abstract readonly name: string; abstract readonly provider: string; abstract status: ProviderStatus; error?: string; private initPromise?; private destroyPromise?; private readonly onInitHook?; private readonly onDestroyHook?; constructor(options?: BaseFilesystemOptions); _init(): Promise; private executeInit; init(): Promise; protected ensureReady(): Promise; _destroy(): Promise; private executeDestroy; destroy(): Promise; abstract readFile(path: string, options?: ReadOptions): Promise; abstract writeFile(path: string, content: FileContent, options?: WriteOptions): Promise; abstract appendFile(path: string, content: FileContent, options?: AppendOptions): Promise; abstract deleteFile(path: string, options?: RemoveOptions): Promise; abstract copyFile(src: string, dest: string, options?: CopyOptions): Promise; abstract moveFile(src: string, dest: string, options?: CopyOptions): Promise; abstract mkdir(path: string, options?: MkdirOptions): Promise; abstract rmdir(path: string, options?: RemoveOptions): Promise; abstract readdir(path: string, options?: ListOptions): Promise; abstract exists(path: string, options?: AbortableOptions): Promise; abstract stat(path: string, options?: AbortableOptions): Promise; }