export interface DebouncedFunction<T extends (...args: any[]) => any> {
    (...args: Parameters<T>): void;
    cancel(): void;
}
interface DebounceOptions {
    leading?: boolean;
}
/**
 * Creates a debounced function that delays invoking `func` until after `wait` milliseconds
 * have elapsed since the last invocation.
 *
 * When `leading` is true, the function fires immediately on the first call (leading edge),
 * and also fires on the trailing edge if there were subsequent calls during the wait period
 * (matching lodash behavior with leading:true, trailing:true).
 */
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number, options?: DebounceOptions): DebouncedFunction<T>;
export {};
//# sourceMappingURL=debounce.d.ts.map