import { LinkedList } from "../../interfaces/linked-list"; import { ListNode } from "../../classes/list-node"; export declare class DoublyLinkedList implements LinkedList { private head; private tail; private _size; /** * The size of the list */ get size(): number; /** * The head of the list */ get first(): ListNode; /** * The tail of the list */ get last(): ListNode; /** * Adds a node to the end of the list * @param val the value of the new node * @returns {number} the new size of the list */ push(val: any): number; /** * Removes the tail (last) node of the list. * @returns {ListNode} the node that was removed */ pop(): ListNode; /** * Removes the head (first) node of the list * @returns {ListNode} the node that was removed */ shift(): ListNode; /** * returns the node at the specified index. * @param index the index of the node */ getNodeAt(index: number): ListNode; /** * adds a new node to the beginning of the list * @param val the value of the new node * @returns {number} the new size of the list. */ unshift(val: any): number; /** * adds a node to the specified index in the list. * @param val the value of the new node * @param index the position of the new node * @returns {number} the new size of the list */ insert(val: any, index: number): number; }