| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- declare type ThrottleFunction = (this: unknown, ...args: unknown[]) => void;
 
- export declare type ThrottleType = 'fixRate' | 'debounce';
 
- export interface ThrottleController {
 
-     clear(): void;
 
-     debounceNextCall(debounceDelay: number): void;
 
- }
 
- /**
 
-  * @public
 
-  * @param {(Function)} fn
 
-  * @param {number} [delay=0] Unit: ms.
 
-  * @param {boolean} [debounce=false]
 
-  *        true: If call interval less than `delay`, only the last call works.
 
-  *        false: If call interval less than `delay, call works on fixed rate.
 
-  * @return {(Function)} throttled fn.
 
-  */
 
- export declare function throttle<T extends ThrottleFunction>(fn: T, delay?: number, debounce?: boolean): T & ThrottleController;
 
- /**
 
-  * Create throttle method or update throttle rate.
 
-  *
 
-  * @example
 
-  * ComponentView.prototype.render = function () {
 
-  *     ...
 
-  *     throttle.createOrUpdate(
 
-  *         this,
 
-  *         '_dispatchAction',
 
-  *         this.model.get('throttle'),
 
-  *         'fixRate'
 
-  *     );
 
-  * };
 
-  * ComponentView.prototype.remove = function () {
 
-  *     throttle.clear(this, '_dispatchAction');
 
-  * };
 
-  * ComponentView.prototype.dispose = function () {
 
-  *     throttle.clear(this, '_dispatchAction');
 
-  * };
 
-  *
 
-  */
 
- export declare function createOrUpdate<T, S extends keyof T, P = T[S]>(obj: T, fnAttr: S, rate: number, throttleType: ThrottleType): P extends ThrottleFunction ? P & ThrottleController : never;
 
- /**
 
-  * Clear throttle. Example see throttle.createOrUpdate.
 
-  */
 
- export declare function clear<T, S extends keyof T>(obj: T, fnAttr: S): void;
 
- export {};
 
 
  |