import { ICompare } from '@datastructures-js/heap'; export interface PriorityQueue extends Iterable { [Symbol.iterator](): Iterator; size(): number; isEmpty(): boolean; front(): T | null; back(): T | null; enqueue(value: T): PriorityQueue; push(value: T): PriorityQueue; dequeue(): T | null; pop(): T | null; remove(cb: (value: T) => boolean): T[]; contains(cb: (value: T) => boolean): boolean; toArray(): T[]; clear(): void; } export const PriorityQueue: { new (compare: ICompare, values?: T[]): PriorityQueue; fromArray(values: T[], compare: ICompare): PriorityQueue; };