import { PakArchive } from './pak.js'; export interface VirtualFileHandle { readonly path: string; readonly size: number; readonly sourcePak: string; } export interface FileMetadata extends VirtualFileHandle { readonly offset: number; } export interface FileInfo extends VirtualFileHandle { } export interface DirectoryNode { readonly name: string; readonly path: string; readonly files: FileInfo[]; readonly directories: DirectoryNode[]; } export interface PakInfo { readonly filename: string; readonly entryCount: number; readonly totalSize: number; readonly priority?: number; } export interface DirectoryListing { readonly files: VirtualFileHandle[]; readonly directories: string[]; } interface MountedPak { pak: PakArchive; priority: number; } export declare class VirtualFileSystem { private readonly mounts; private readonly files; constructor(archives?: PakArchive[]); mountPak(archive: PakArchive, priority?: number): PakArchive; setPriority(archive: PakArchive, priority: number): void; getPaks(): MountedPak[]; get mountedPaks(): readonly PakArchive[]; hasFile(path: string): boolean; private getSource; stat(path: string): VirtualFileHandle | undefined; getFileMetadata(path: string): FileMetadata | undefined; readFile(path: string): Promise; readBinaryFile(path: string): Promise; streamFile(path: string, chunkSize?: number): ReadableStream; readTextFile(path: string): Promise; list(directory?: string): DirectoryListing; listDirectory(path: string): Promise; findByExtension(extension: string | string[] | RegExp): VirtualFileHandle[]; listByExtension(extensions: string[]): FileInfo[]; searchFiles(pattern: RegExp): FileInfo[]; getPakInfo(): PakInfo[]; getDirectoryTree(): DirectoryNode; } export {}; //# sourceMappingURL=vfs.d.ts.map