UNPKG

@thermopylae/lib.cache

Version:
39 lines (38 loc) 1.11 kB
import { Nullable } from '@thermopylae/core.declarations'; import { LinkedList } from './interface'; /** * @private */ declare const NEXT_SYM: unique symbol; /** * @private */ interface SingleLinkedListNode<Node> { [NEXT_SYM]: Nullable<Node>; } /** * @private */ declare class SingleLinkedListIterator<Node extends SingleLinkedListNode<Node>> implements Iterator<Node, Node> { private node; constructor(node: Nullable<Node>); next(): IteratorResult<Node, Node>; } /** * @private */ declare class SingleLinkedList<Node extends SingleLinkedListNode<Node>> implements LinkedList<SingleLinkedListNode<Node>> { head: Nullable<Node>; tail: Nullable<Node>; size: number; constructor(startNode?: Nullable<Node>); unshift(node: Node): void; push(node: Node): void; insertAfter(prevNode: Node, newNode: Node): void; remove(node: Node): void; toFront(node: Node): void; [Symbol.iterator](): Iterator<SingleLinkedListNode<Node>>; empty(): boolean; clear(): void; } export { SingleLinkedList, SingleLinkedListNode, SingleLinkedListIterator, NEXT_SYM };