import { File as IFile, Fs } from '../type';
import { FileMeta } from './filemeta';
import { FileInfo } from './fileinfo';
import { File } from './file';
export type DirOpener = () => Promise<FileInfo[]>;
export type DirFilter = (entries: FileInfo[]) => Promise<FileInfo[]>;
export declare class DirFile extends File {
    private virtualOpener;
    private filter;
    constructor(file: File, virtualOpener?: DirOpener | null, filter?: DirFilter | null);
    readDir(count: number): Promise<FileInfo[]>;
    private readVirtualDir;
    setFilter(filter: DirFilter): void;
    setVirtualOpener(opener: DirOpener): void;
    getFilter(): DirFilter | null;
    getVirtualOpener(): DirOpener | null;
}
export declare function newDirFileWithVirtualOpener(file: File, opener: DirOpener): DirFile;
export declare function newDirFile(file: IFile, meta: FileMeta, fs: Fs): DirFile;
export declare function newDirFileWithFilter(file: File, filter: DirFilter): DirFile;
export declare function newDirFileWithOpenerAndFilter(file: File, opener: DirOpener, filter: DirFilter): DirFile;
