import { IThrottleUtil } from "./i-throttle-util";
/**
 * A class that helps with throttling work
 */
export declare class ThrottleUtil implements IThrottleUtil {
    /**
     * Contexts that are locked due to throttling
     * @type {WeakSet<Object>}
     */
    private readonly THROTTLE_LOCKED_CONTEXTS;
    /**
     * Current debounce timeouts
     * @type {WeakMap<Object, number>}
     */
    private readonly DEBOUNCE_TIMEOUTS;
    /**
     * Debounces execution of the given function on the given context
     * @param {T} context
     * @param {number} ms
     * @param {Function} callback
     */
    debounce<T>(context: T, ms: number, callback: Function): void;
    /**
     * Throttles calling the given callback function by the given amount of milliseconds
     * @param {T} context
     * @param {number} ms
     * @param {Function} callback
     */
    throttle<T>(context: T, ms: number, callback: Function): void;
}
