import type { MaybePromise } from '.';
export declare enum Priority {
    PRIOR = 1000,
    DEFAULT = 100,
    IDLE = -1
}
export declare namespace Priority {
    type PriorityObject<T> = {
        readonly priority: number;
        readonly value: T;
    };
    type GetPriority<T> = (value: T) => MaybePromise<number>;
    type GetPrioritySync<T> = (value: T) => number;
    function isValid<T>(p: PriorityObject<T>): boolean;
    function compare<T>(p: PriorityObject<T>, p2: PriorityObject<T>): number;
    function toPriorityObject<T>(rawValue: T, getPriority: GetPriority<T>): Promise<PriorityObject<T>>;
    function toPriorityObject<T>(rawValue: T[], getPriority: GetPriority<T>): Promise<PriorityObject<T>[]>;
    function sort<T>(values: T[], getPriority: GetPriority<T>): Promise<PriorityObject<T>[]>;
    function toPriorityObjectSync<T>(rawValue: T, getPriority: GetPrioritySync<T>): PriorityObject<T>;
    function toPriorityObjectSync<T>(rawValue: T[], getPriority: GetPrioritySync<T>): PriorityObject<T>[];
    function sortSync<T>(values: T[], getPriority: GetPrioritySync<T>): PriorityObject<T>[];
}
//# sourceMappingURL=priority.d.ts.map