import type { Action, Middleware } from '@reduxjs/toolkit'; export declare const randomID: (prepend?: string, length?: number) => string; export declare function isArray(value: T | T[]): value is T[]; export declare function isEmptyString(str: string): boolean; export declare function removeDuplicates(arr: T[], predicate: (value: T) => string): any[]; export declare function omit(key: keyof T, obj: T): Omit; export declare function getObjectHash(obj: T): string; /** * Logic copied from coveo.analytics. * * @deprecated V4 - Starting with Event Protocol, Coveo will no longer respect the DNT standard. * Instead, we will provide implementers with documentation on privacy best-practices, letting * them decide which standards to respect. * For more context behind the decision, see: https://coveord.atlassian.net/browse/LENS-1502 */ export declare function doNotTrack(): boolean; export declare function fromEntries(values: [K, V][]): Record; export declare function resetTimeout(callback: (...args: any[]) => void, timeoutId?: ReturnType, ms?: number | undefined): NodeJS.Timeout; export declare function mapObject(obj: Record, predicate: (value: TInitialValue, key: TKey) => TNewValue): Record; export declare function filterObject(obj: Record, predicate: (value: TValue, key: TKey) => boolean): Record; export declare function clone(value: T): T; export declare function createWaitForActionMiddleware(isDesiredAction: (action: unknown) => action is TAction): { promise: Promise; middleware: Middleware; }; export declare function createWaitForActionMiddlewareForRecommendation(isDesiredAction: (action: unknown) => action is TAction, memo: Set): { promise: Promise; middleware: Middleware; }; export declare function debounce unknown>(func: T, wait: number, options?: { isImmediate?: boolean; }): T;