export interface DebouncedFunction any> { (...args: Parameters): void; cancel(): void; flush(): void; pending(): boolean; } export declare function debounce any>(fn: T, delay: number): DebouncedFunction; export declare class Mutex { private _rawValue; constructor(_rawValue: T); private lock; acquire(): Promise>; runExclusive(fn: (v: T) => U): Promise; } export declare class Guard { value: T; release: () => void; constructor(value: T, release: () => void); } //# sourceMappingURL=async.d.ts.map