import { CachedDirectory, LowLevelFatFilesystem, FatType } from "./low-level";
import { Chain } from "./chained-structures";
import { Driver, FatFSDirectoryEntry } from "./types";
import { ClusterChainLink } from "./cluster-chain";
export declare class FatFilesystem {
    private fat;
    private constructor();
    static create(driver: Driver, bypassCoherencyCheck?: boolean, forceFSType?: FatType): Promise<FatFilesystem>;
    open(path: string, writable?: boolean): Promise<FatFSFileHandle | null>;
    create(path: string): Promise<FatFSFileHandle | null>;
    listDir(path: string): Promise<string[] | null>;
    getSizeOf(path: string): Promise<null | number>;
    getStats(): {
        totalClusters: number;
        totalBytes: number;
        freeClusters: number;
        freeBytes: number;
    };
    delete(path: string): Promise<null | undefined>;
    rename(path: string, newPath: string): Promise<void>;
    mkdir(path: string): Promise<void>;
    flushMetadataChanges(): Promise<void>;
    getUnderlying(): LowLevelFatFilesystem;
}
export declare class FatFSFileHandle {
    private fat;
    private chain;
    private writable;
    private underlying;
    private parent;
    get length(): number;
    constructor(fat: LowLevelFatFilesystem, chain: Chain<ClusterChainLink>, writable: boolean, underlying: FatFSDirectoryEntry, parent: CachedDirectory);
    seek(to: number): Promise<void>;
    read(bytes: number): Promise<Uint8Array>;
    readAll(): Promise<Uint8Array>;
    close(): Promise<void>;
    write(data: Uint8Array): Promise<void>;
}
//# sourceMappingURL=high-level.d.ts.map