/** * Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal */ interface LinkedList { readonly count: number; readonly first: LinkedList.Node | null; readonly last: LinkedList.Node | null; addFirst(value: T): LinkedList.Node; addLast(value: T): LinkedList.Node; remove(node: LinkedList.Node): void; removeFirst(): T | undefined; removeLast(): T | undefined; find(value: T): LinkedList.Node | undefined; } declare function LinkedList(): LinkedList; declare namespace LinkedList { interface Node { previous: Node | null; next: Node | null; inList: boolean; value: T; } } export { LinkedList };