import type { Comparator } from "@rickosborne/typical"; import type { Queue } from "./queue.js"; /** * Internal implementation for a node of a skip list. * @internal */ type SkipNode = { forward: (SkipNode | undefined)[]; value: T; }; /** * Basic skip list implementation, using the given comparator * to keep values in order, low-to-high. If you want high-to-low * you will need to invert your comparator. */ export declare class SkipList implements Queue { protected readonly comparator: Comparator; protected readonly maxLevel: number; protected readonly random: () => number; private count; private level; private readonly root; constructor(comparator: Comparator, maxLevel?: number, random?: () => number); get length(): number; add(value: T): void; protected buildNode(value: T, level: number): SkipNode; private buildUpdate; peek(): T | undefined; protected randomLevel(): number; remove(value: T): void; take(): T | undefined; toArray(): T[]; values(): Generator; valuesAndIndexes(): Generator<[T, number], void, undefined>; } /** * Build a priority queue using a skip list implementation. */ export declare const skipList: (comparator: Comparator) => SkipList; export {}; //# sourceMappingURL=skip-list.d.ts.map