import type { Comparator, Mapper, SortDirection, SortOptions, StringMap } from '../types.js';
declare class Comparators {
    /**
     * Good for numbers.
     */
    numericAsc(this: void, a: number, b: number): number;
    numericDesc(this: void, a: number, b: number): number;
    localeAsc(this: void, a: string, b: string): number;
    localeDesc(this: void, a: string, b: string): number;
    by<T, COMPARE_TYPE extends string | number>(this: void, mapper: Mapper<T, COMPARE_TYPE>, opt?: ComparatorByOptions): Comparator<T>;
    updatedAsc(this: void, a: {
        updated: number;
    }, b: {
        updated: number;
    }): number;
    updatedDesc(this: void, a: {
        updated: number;
    }, b: {
        updated: number;
    }): number;
    createdAsc(this: void, a: {
        created: number;
    }, b: {
        created: number;
    }): number;
    createdDesc(this: void, a: {
        created: number;
    }, b: {
        created: number;
    }): number;
}
export declare const comparators: Comparators;
interface ComparatorByOptions {
    /**
     * Defaults to 'asc'.
     */
    dir?: SortDirection;
}
/**
 * _sortBy([{age: 20}, {age: 10}], 'age')
 * // => [{age: 10}, {age: 20}]
 *
 * Same:
 * _sortBy([{age: 20}, {age: 10}], o => o.age)
 */
export declare function _sortBy<T, COMPARE_TYPE extends string | number>(items: T[], mapper: Mapper<T, COMPARE_TYPE>, opt?: SortOptions): T[];
/**
 * Like _stringMapValues, but values are sorted.
 */
export declare function _stringMapValuesSorted<T>(map: StringMap<T>, mapper: Mapper<T, any>, dir?: SortDirection): T[];
export {};
