import { TextDocument } from "vscode-languageserver-textdocument";
/**
 * Track file updates and recompile the affected files after some debounce time.
 */
export declare class UpdateManger<T> {
    #private;
    constructor(updateCb: (document: TextDocument) => Promise<T>);
    scheduleUpdate(document: TextDocument): void;
}
/**
 * Debounces a function but also waits at minimum the specified number of milliseconds until
 * the next invocation. This avoids needless calls when a synchronous call (like diagnostics)
 * took too long and the whole timeout of the next call was eaten up already.
 *
 * @param fn The function
 * @param milliseconds Number of milliseconds to debounce/throttle
 */
export declare function debounceThrottle(fn: () => void, milliseconds: number): () => void;
//# sourceMappingURL=update-manager.d.ts.map