/**
 * Provides a debounce function used to debounce calls to a user-provided function.
 *
 * @template {function(?): void} T args
 * @typedef {function(T, number, boolean): T} miscDebounce
 */
/**
 * @template {function(?): void} T args
 * @param {T} func The function to debounce.
 * @param {number} wait The wait time in ms.
 * @param {boolean} invokeApply Whether the call to `func` is wrapped into an `$apply` call.
 * @param {angular.ITimeoutService} $timeout Angular timeout service.
 * @returns {T} The wrapper function.
 * @private
 * @hidden
 */
export function debounce<T extends (arg0: unknown) => void>(func: T, wait: number, invokeApply: boolean, $timeout: angular.ITimeoutService): T;
export default myModule;
/**
 * Provides a debounce function used to debounce calls to a user-provided function.
 */
export type miscDebounce<T extends (arg0: unknown) => void> = (arg0: T, arg1: number, arg2: boolean) => T;
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
