export declare type ExtendedFunction0 = (...args: any[]) => T; export declare type ExtendedFunction1 = (arg0: T) => U; export declare type ExtendedFunction2 = (arg0: T, arg1: U) => V; export declare type ExtendedFunction3 = (arg0: T, arg1: U, arg2: V) => W; export declare type ExtendedFunction4 = (arg0: T, arg1: U, arg2: V, arg3: W) => X; export declare type ExtendedPromise0 = () => Promise; export declare type ExtendedPromise1 = (arg0: T) => Promise; export declare type ExtendedPromise2 = (arg0: T, arg1: U) => Promise; export declare type ExtendedPromise3 = (arg0: T, arg1: U, arg2: V) => Promise; export declare type ExtendedPromise4 = (arg0: T, arg1: U, arg2: V, arg3: W) => Promise; export declare function debounce(func: ExtendedFunction0, wait: number, immediate?: boolean): () => void; export declare function debounce(func: ExtendedFunction1, wait: number, immediate?: boolean): (arg0: T) => void; export declare function debounce(func: ExtendedFunction2, wait: number, immediate?: boolean): (arg0: T, arg1: U) => void; export declare function debounce(func: ExtendedFunction3, wait: number, immediate?: boolean): (arg0: T, arg1: U, arg2: V) => void; export declare function debounce(func: ExtendedFunction4, wait: number, immediate?: boolean): (arg0: T, arg1: U, arg2: V, arg3: W) => void; export declare function debouncePromise(func: ExtendedFunction0, wait: number, thisArg?: any): ExtendedPromise0; export declare function debouncePromise(func: ExtendedFunction1, wait: number, thisArg?: any): ExtendedPromise1; export declare function debouncePromise(func: ExtendedFunction2, wait: number, thisArg?: any): ExtendedPromise2; export declare function debouncePromise(func: ExtendedFunction3, wait: number, thisArg?: any): ExtendedPromise3; export declare function debouncePromise(func: ExtendedFunction4, wait: number, thisArg?: any): ExtendedPromise4; export declare function branchIn(value: Array, key: string, step?: number): any; export declare function search(dataSource: Array, term: string, keys: Array, fn?: (dataSource?: Array, term?: string, keys?: Array) => void): void | Object[]; export declare function isType(value: any): any; export declare function getType(value: Array): string; export declare function arraysEqual(arr1: Array, arr2: Array): boolean;