import { AnyArray } from 'typestar' declare module 'timsort2' { /** * Type representing a comparator function used for sorting an array. */ export type Comparator = (a: T, b: T) => number /** * Default alphabetical comparison of items. * * @param a - First element to compare. * @param b - Second element to compare. * @return - A positive number if a.toString() > b.toString(), a * negative number if .toString() < b.toString(), 0 otherwise. */ export function alphabeticalCompare(a: any, b: any): number /** * Sort an array in the range [lo, hi) using TimSort. * * @param array - The array to sort. * @param compare - Item comparison function. Default is `alphabeticalCompare` * @param lo - First element in the range (inclusive). * @param hi - Last element in the range. */ export function sort(array: T[], compare?: Comparator, lo?: number, hi?: number): T[] export function sort(array: Int8Array, compare?: Comparator, lo?: number, hi?: number): Int8Array export function sort(array: Int32Array, compare?: Comparator, lo?: number, hi?: number): Int32Array export function sort(array: Uint8Array, compare?: Comparator, lo?: number, hi?: number): Uint8Array export function sort(array: Uint16Array, compare?: Comparator, lo?: number, hi?: number): Uint16Array export function sort(array: Uint32Array, compare?: Comparator, lo?: number, hi?: number): Uint32Array export function sort(array: Float32Array, compare?: Comparator, lo?: number, hi?: number): Float32Array export function sort(array: Float64Array, compare?: Comparator, lo?: number, hi?: number): Float64Array export function sort(array: Uint8ClampedArray, compare?: Comparator, lo?: number, hi?: number): Uint8ClampedArray export function sort(array: Uint8ClampedArray, compare?: Comparator, lo?: number, hi?: number): Uint8ClampedArray export function sort(array: BigInt64Array, compare?: Comparator, lo?: number, hi?: number): BigInt64Array export function sort(array: BigUint64Array, compare?: Comparator, lo?: number, hi?: number): BigUint64Array }