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 {};