import { TargetEvent } from './enums';
import type Watcher from './watcher';
import type { Path, LocksAdd, LocksUnlink, LocksPair, LockConfig } from './types';
declare class WatcherLocker {
    _locksAdd: LocksAdd;
    _locksAddDir: LocksAdd;
    _locksUnlink: LocksUnlink;
    _locksUnlinkDir: LocksUnlink;
    _locksDir: LocksPair;
    _locksFile: LocksPair;
    _watcher: Watcher;
    static DIR_EVENTS: {
        readonly add: TargetEvent.ADD_DIR;
        readonly rename: TargetEvent.RENAME_DIR;
        readonly unlink: TargetEvent.UNLINK_DIR;
    };
    static FILE_EVENTS: {
        readonly add: TargetEvent.ADD;
        readonly change: TargetEvent.CHANGE;
        readonly rename: TargetEvent.RENAME;
        readonly unlink: TargetEvent.UNLINK;
    };
    constructor(watcher: Watcher);
    getLockAdd(config: LockConfig, timeout?: number): void;
    getLockUnlink(config: LockConfig, timeout?: number): void;
    getLockTargetAdd(targetPath: Path, timeout?: number): void;
    getLockTargetAddDir(targetPath: Path, timeout?: number): void;
    getLockTargetUnlink(targetPath: Path, timeout?: number): void;
    getLockTargetUnlinkDir(targetPath: Path, timeout?: number): void;
    reset(): void;
}
export default WatcherLocker;
