import type { PrimitivesValues } from '@coveo/bueno';
import { deepEqual } from 'fast-equals';
export { deepEqual };
export declare function arrayEqual<T>(firstArray: T[], secondArray: T[], isEqual?: (first: T, second: T) => boolean): boolean;
/**
 * Checks if two arrays of primitive values have the same elements, in different order.
 * This function is specifically designed for primitive values to ensure fast performance with O(n) complexity.
 *
 * @param firstArray The first array of primitive values to compare.
 * @param secondArray The second array of primitive values to compare.
 * @returns `true` if the arrays have the same elements in different orders, `false` otherwise. Unless the two arrays have only one identical element each, this function will return `false` if the two arrays have the same elements in the same order.
 */
export declare const arrayEqualStrictlyDifferentOrder: <T extends Exclude<PrimitivesValues, object>>(firstArray: T[], secondArray: T[]) => boolean;
export declare const deepEqualAnyOrder: <T>(a: T, b: T) => boolean;
