declare class LinkedList { private _tail; private _head; private _length; constructor(source?: Iterable); get head(): LinkedListNode | undefined; get tail(): LinkedListNode | undefined; /** * Add a value to the start of the list * @param value the value to add to the list */ unshift(value: T): number; /** * Remove and Return the value from the start of the list */ shift(): T | undefined; /** * Add a value to the end of the list * @param value the value to add to the list */ push(value: T): number; /** * Remove and return a value from the end of the list */ pop(): T | undefined; get length(): number; isEmpty(): boolean; [Symbol.iterator](): Generator, void, void>; } export declare class LinkedListNode { value: T; prev: LinkedListNode | undefined; next: LinkedListNode | undefined; constructor(value: T, prev: LinkedListNode | undefined, next: LinkedListNode | undefined); } export default LinkedList;