export type Comparable = number | string;
/**
 * inclusive
 * */
export declare function isBetween<A extends Comparable>(lowerBound: A, value: A, upperBound: A): boolean;
export declare enum CompareResult {
    Smaller = -1,
    Equal = 0,
    Larger = 1
}
export declare function compare<A extends Comparable>(a: A, b: A): CompareResult;
export type SortKey<K> = {
    key: K;
    order: 'asc' | 'desc';
};
export declare function compare_by_keys<T extends object, K extends keyof T = keyof T>(_keys: Array<SortKey<K> | K>): <R extends Record<K, Comparable>>(a: R, b: R) => CompareResult;
export declare function sort_by_keys<T extends object, K extends keyof T = keyof T>(array: T[], keys: Array<SortKey<K> | K>): T[];
