export default class Watcher extends EventEmitter<any> {
    constructor(options: NormalizedOptions);
    baseDir: string;
    dereference: boolean;
    includeEmptyDirs: boolean;
    initialCopy: boolean;
    matcher: Minimatch;
    ignore: ReturnType<typeof ignore>;
    outputDir: string;
    force: boolean;
    preserve: boolean;
    source: string;
    toDestination: (sourcePath: string) => string;
    transform: NormalizedOptions["transform"];
    update: boolean;
    initialCopyCount: number;
    onDoneInitialCopy: () => void;
    pending: boolean;
    queue: Map<string, "add" | "change" | "remove">;
    ready: boolean;
    retries: Map<string, number>;
    trigger: ReturnType<typeof debounce> | null;
    watchers: Map<string, {
        watcher: fs.FSWatcher;
        files: Map<string, fs.Stats>;
    }>;
    open(): void;
    close(): void;
    private addDirectory;
    private removeDirectory;
    private classifyFileChange;
    private onReady;
    private onAdded;
    private onRemoved;
    private onChanged;
    private onError;
    private onTrigger;
    private shouldRetry;
    private emitReadyEventIfReady;
    private enqueueAdd;
    private enqueueRemove;
    private enqueueChange;
    private copy;
    private remove;
    override emit(type: string | symbol, ...args: unknown[]): boolean;
}
import { EventEmitter } from 'node:events';
import { Minimatch } from 'minimatch';
import ignore from 'ignore';
import type { NormalizedOptions } from './normalize-options.js';
import debounce from 'debounce';
import fs from 'node:fs';
//# sourceMappingURL=watcher.d.ts.map