import { BinAccessor } from '../../accessor/bin.ts';
import type { FileStat, PathSpec, SetAttrFields } from '../../types.ts';
import { BaseVFS } from '../base.ts';
import { type VFSStateBase } from '../types.ts';
/**
 * Read-only view VFS backing the /usr/bin mount. Lists one executable
 * file per program, rendered from the workspace's command lookup on every
 * call; holds no storage of its own.
 */
export declare class BinViewVFS extends BaseVFS {
    readonly name: "bin";
    readonly cachesReads = false;
    readonly sizesAlwaysKnown = true;
    readonly accessor: BinAccessor;
    constructor(programs: () => string[], note: (name: string) => string | null);
    readdir(path: PathSpec): Promise<FileStat[]>;
    read(path: PathSpec): Promise<Uint8Array>;
    stat(path: PathSpec): Promise<FileStat>;
    write(path: PathSpec): Promise<void>;
    append(path: PathSpec): Promise<void>;
    pwrite(path: PathSpec): Promise<void>;
    create(path: PathSpec): Promise<void>;
    mkdir(path: PathSpec): Promise<void>;
    unlink(path: PathSpec): Promise<void>;
    rmdir(path: PathSpec): Promise<void>;
    rename(src: PathSpec): Promise<void>;
    truncate(path: PathSpec): Promise<void>;
    setattr(path: PathSpec, _fields: SetAttrFields): Promise<Record<string, number | string>>;
    /** The view owns nothing, so its type alone rebuilds it. */
    getState(): VFSStateBase;
}
//# sourceMappingURL=bin.d.ts.map