export class QueueNode { /** * @type {QueueNode|null} */ next: QueueNode | null; } /** * @template V */ export class QueueValue extends QueueNode { /** * @param {V} v */ constructor(v: V); v: V; } /** * @template {QueueNode} N */ export class Queue { /** * @type {N | null} */ start: N | null; /** * @type {N | null} */ end: N | null; } export function create(): Queue; export function isEmpty(queue: Queue): boolean; export function enqueue>(queue: Q, n: Q extends Queue ? N : never): void; export function dequeue(queue: Queue): N | null; //# sourceMappingURL=queue.d.ts.map