type FlatObject = Record; /** * Compares two flat objects (whose values are only primitives, no arrays or objects) * * @returns Whether all values match, ignoring in which order they appear */ export declare const areObjectsFlatEqual: (obj1: FlatObject, obj2: FlatObject) => boolean; export declare const groupByKey: (objects: TValue[], key: TKey) => Record; export declare const transformGroupedData: (data: Record, firstGroup?: string) => { name: string; items: TValue[]; }[]; /** * Works like `Object.entries`, but considers all own keys of an object (including symbols). * * @example * ```ts * allObjectEntries({ [Symbol()]: "a", someKey: "b" }); // => [[Symbol(), "a"], ["someKey", "b"]] * ```; */ export declare const allObjectEntries: >(target: TValue) => [keyof TValue, TValue[keyof TValue]][]; /** * Wraps a value as an array, if it's not already an array. * * @param value - The value to convert * @param keepNullish - If true, nullish values (undefined & null) will be preserved in the * resulting array */ export declare const asArray: (value: T | T[], keepNullish?: boolean) => T[]; export {};