import { Index } from './file_index.js'; import { FileSystem, type CreationOptions, type UsageInfo } from './filesystem.js'; import { Inode, type InodeLike } from './inode.js'; /** * A file system that uses an `Index` for metadata. * @category Internals * @internal */ export declare abstract class IndexFS extends FileSystem { readonly index: Index; constructor(id: number, name: string, index?: Index); usage(): UsageInfo; /** * Finds all the paths in the index that need to be moved for a rename */ private pathsForRename; rename(oldPath: string, newPath: string): Promise; renameSync(oldPath: string, newPath: string): void; stat(path: string): Promise; statSync(path: string): Inode; touch(path: string, metadata: InodeLike): Promise; touchSync(path: string, metadata: InodeLike): void; protected _remove(path: string, isUnlink: boolean): void; protected abstract remove(path: string): Promise; protected abstract removeSync(path: string): void; unlink(path: string): Promise; unlinkSync(path: string): void; rmdir(path: string): Promise; rmdirSync(path: string): void; protected create(path: string, options: CreationOptions): Inode; createFile(path: string, options: CreationOptions): Promise; createFileSync(path: string, options: CreationOptions): InodeLike; protected _mkdir?(path: string, options: CreationOptions): Promise; protected _mkdirSync?(path: string, options: CreationOptions): void; mkdir(path: string, options: CreationOptions): Promise; mkdirSync(path: string, options: CreationOptions): InodeLike; link(target: string, link: string): Promise; linkSync(target: string, link: string): void; readdir(path: string): Promise; readdirSync(path: string): string[]; sync(): Promise; syncSync(): void; }