export type Identifier = number | string | ((value: T) => unknown); export type Order = 'asc' | 'desc' | ((valueA: T, valueB: T) => number); export function orderBy(collection: T[], identifiers?: Array> | Identifier, orders?: Array> | Order): T[]; export interface CompareOptions { order?: 'asc' | 'desc' } export type CompareFn = ((valueA: unknown, valueB: unknown) => number); export function compare(options?: CompareOptions): CompareFn;