UNPKG

781 BTypeScriptView Raw
1export class QueueNode {
2 /**
3 * @type {QueueNode|null}
4 */
5 next: QueueNode | null;
6}
7/**
8 * @template V
9 */
10export class QueueValue<V> extends QueueNode {
11 /**
12 * @param {V} v
13 */
14 constructor(v: V);
15 v: V;
16}
17/**
18 * @template {QueueNode} N
19 */
20export class Queue<N extends QueueNode> {
21 /**
22 * @type {N | null}
23 */
24 start: N | null;
25 /**
26 * @type {N | null}
27 */
28 end: N | null;
29}
30export function create<N extends QueueNode>(): Queue<N>;
31export function isEmpty(queue: Queue<any>): boolean;
32export function enqueue<Q extends Queue<any>>(queue: Q, n: Q extends Queue<infer N extends QueueNode> ? N : never): void;
33export function dequeue<N extends QueueNode>(queue: Queue<N>): N | null;
34//# sourceMappingURL=queue.d.ts.map
\No newline at end of file