export type SortComparer<Item> = (a: Item, b: Item) => number;
/**
 * 排序队列
 * @remarks
 * 优先队列的极简实现；即优化了排序的性能，又保持代码精简；
 */
export declare class SortQueue<Item = any> {
    comparer: SortComparer<Item>;
    constructor(comparer: SortComparer<Item>, items?: Item[]);
    /**
     * 队列
     * @remarks
     * 保存所有的元素
     */
    get queue(): Item[];
    set queue(value: Item[]);
    protected _queue: Item[];
    /**
     * 第一个元素
     */
    get first(): Item;
    /**
     * 最后一个元素
     */
    get last(): NonNullable<Item>;
    /**
     * 添加元素
     * @param items
     * @returns 返回item最终的索引
     */
    add(item: Item): number;
    /**
     * 添加元素
     * @param items
     */
    addItems(items: Iterable<Item>): void;
    /**
     * 删除元素
     * @param items
     * @returns 返回item删除前所在的索引
     */
    delete(item: Item): number;
    /**
     * 删除元素
     * @param items
     */
    deleteItems(items: Iterable<Item>): void;
    /**
     * 对队列中的所有元素重新排序
     */
    sort(): void;
    /**
     * 排序 item
     * @param item
     * @returns 如果item 不在队列中，返回 false；否则返回 true
     */
    sortItem(item: Item): number;
    /**
     * 前向排序
     * @param item
     * @returns 返回item最终的索引
     */
    forwardSort(item: Item): number;
    /**
     * 后向排序
     * @param item
     * @returns 返回item最终的索引
     */
    backwardSort(item: Item): number;
    /**
     * 排序 item
     * @param index
     * @returns 返回item最终的索引
     */
    sortItemForIndex(index: number): number;
    /**
     * 前向排序
     * @param index
      * @returns 返回item最终的索引
     */
    forwardSortForIndex(index: number): number;
    /**
     * 后向排序
     * @param index
     * @returns 返回item最终的索引
     */
    backwardSortForIndex(index: number): number;
}
//# sourceMappingURL=SortQueue.d.ts.map