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) => number;
    function toPriorityObject<T>(rawValue: T, getPriority: GetPriority<T>): PriorityObject<T>;
    function toPriorityObject<T>(rawValue: T[], getPriority: GetPriority<T>): PriorityObject<T>[];
    function sort<T>(values: T[], getPriority: GetPriority<T>): PriorityObject<T>[];
    function isValid<T>(p: PriorityObject<T>): boolean;
    function compare<T>(p: PriorityObject<T>, p2: PriorityObject<T>): number;
}
