/**
 * Native implementation of debounce function
 * Delays function execution until after a specified wait period has elapsed
 * since the last time it was invoked.
 *
 * @param func - The function to debounce
 * @param wait - The number of milliseconds to delay
 * @returns Debounced function with cancel method
 */
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): T & {
    cancel: () => void;
};
/**
 * Native implementation of groupBy function
 * Groups array elements by the result of a key function
 *
 * @param array - The array to group
 * @param keyFn - Function that returns the grouping key for each element
 * @returns Object with keys as group identifiers and values as arrays of grouped elements
 */
export declare function groupBy<T>(array: T[], keyFn: (item: T) => string): Record<string, T[]>;
export declare function truncateText(text: string, maxLength: number): string;
