/**
 * readdirp shim - Recursive directory reader
 * Used by some build tools for file discovery
 */
import type { VirtualFS, Stats } from '../virtual-fs';
export declare function setVFS(vfs: VirtualFS): void;
export interface ReaddirpOptions {
    root?: string;
    fileFilter?: string | string[] | ((entry: EntryInfo) => boolean);
    directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean);
    depth?: number;
    type?: 'files' | 'directories' | 'files_directories' | 'all';
    lstat?: boolean;
    alwaysStat?: boolean;
    /**
     * VFS to walk (internal). Per-runtime modules from
     * {@link createReaddirpModule} inject it; without it the walk falls back
     * to the module-level setVFS() instance, which is last-write-wins when
     * several containers are live.
     */
    vfs?: VirtualFS;
}
export interface EntryInfo {
    path: string;
    fullPath: string;
    basename: string;
    stats?: Stats;
    dirent?: {
        isFile(): boolean;
        isDirectory(): boolean;
        name: string;
    };
}
declare class ReaddirpStream {
    private options;
    private root;
    private entries;
    private index;
    private collected;
    private vfs;
    constructor(root: string, options?: ReaddirpOptions);
    private matchFilter;
    private matchGlob;
    private collect;
    [Symbol.asyncIterator](): AsyncIterableIterator<EntryInfo>;
    toArray(): Promise<EntryInfo[]>;
    on(event: string, callback: (...args: unknown[]) => void): this;
    private listeners;
    private emit;
    once(event: string, callback: (...args: unknown[]) => void): this;
    off(event: string, callback: (...args: unknown[]) => void): this;
}
/**
 * Read directory recursively
 */
export declare function readdirp(root: string, options?: ReaddirpOptions): ReaddirpStream;
export declare function readdirpPromise(root: string, options?: ReaddirpOptions): Promise<EntryInfo[]>;
export default readdirp;
export { ReaddirpStream };
/**
 * Per-runtime readdirp module bound to one VFS (see createChokidarModule
 * for the rationale — the module-level setVFS() binding is last-write-wins
 * across containers).
 */
export declare function createReaddirpModule(vfs: VirtualFS): Record<string, unknown>;
//# sourceMappingURL=readdirp.d.ts.map