export declare class DoublyLinkedListNode { private element; private prev; private next; /** * Creates new DoublyLinkedListNode * @param {T} element * @param {DoublyLinkedListNode} prev * @param {DoublyLinkedListNode} next */ constructor(element: T, prev: DoublyLinkedListNode, next: DoublyLinkedListNode); /** * Returns node value * @returns {T} node value */ getElement(): T; /** * Returns next node * @returns {DoublyLinkedListNode} node */ getNext(): DoublyLinkedListNode | null; /** * Sets next node to given node * @param {DoublyLinkedListNode} next */ setNext(next: DoublyLinkedListNode): void; /** * Returns previous node * @returns {DoublyLinkedListNode} previous node */ getPrev(): DoublyLinkedListNode | null; /** * Sets previous node to given node * @param {DoublyLinkedListNode} prev */ setPrev(prev: DoublyLinkedListNode): void; } export declare class DoublyLinkedList { private header; private trailer; private size; /** * Initializes header and trailer of the list */ constructor(); /** * Adds element to the head of the list * @param {T} element */ addFirst(element: T): void; /** * Adds element to the tail of the list * @param {T} element */ addLast(element: T): void; /** * Removes element from the head and returns it * @returns {T} removed node value */ removeFirst(): T; /** * Removes element from the tail and returns it * @returns {T} removed node value */ removeLast(): T; /** * Inserts new node between two nodes * @param {T} element * @param {DoublyLinkedListNode} predecessor * @param {DoublyLinkedListNode} successor */ private addBetween; /** * Removes given node and returns its value * @param {DoublyLinkedListNode} node * @returns {T} */ private remove; /** * Returns value of the head * @returns {T} value of first node */ first(): T; /** * Returns value of the tail * @returns {T} value of last node */ last(): T; /** * Returns size of the list * @returns {number} size of list */ getSize(): number; /** * Returns true if the list is empty, fasle otherwise * @returns {boolean} true if the list is empty */ isEmpty(): boolean; }