/**
 * Function utilities
 * Generic utilities for debouncing, throttling, and function composition
 */
/**
 * Debounce function execution
 * Delays function execution until after a specified wait period has passed
 * since the last time it was invoked.
 *
 * Useful for: search inputs, form validation, resize events
 *
 * @param func - Function to debounce
 * @param wait - Wait time in milliseconds
 * @returns Debounced function
 *
 * @example
 * // In Vue component
 * const debouncedSearch = debounce((query: string) => {
 *   searchApi(query)
 * }, 300)
 *
 * // In Web Component
 * const debouncedResize = debounce(() => {
 *   this.handleResize()
 * }, 100)
 */
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void;
/**
 * Throttle function execution
 * Ensures function is called at most once per specified time period.
 *
 * Useful for: scroll events, mouse move, window resize
 *
 * @param func - Function to throttle
 * @param limit - Time limit in milliseconds
 * @returns Throttled function
 *
 * @example
 * // In Vue component
 * const throttledScroll = throttle(() => {
 *   updateScrollPosition()
 * }, 100)
 *
 * // In Web Component
 * const throttledMouseMove = throttle((e: MouseEvent) => {
 *   this.updatePosition(e.clientX, e.clientY)
 * }, 50)
 */
export declare function throttle<T extends (...args: any[]) => any>(func: T, limit: number): (...args: Parameters<T>) => void;
