export declare class DoublyLinkedListNode { val: T; next: DoublyLinkedListNode; prev: DoublyLinkedListNode; constructor(val: T); } export declare class DoublyLinkedList { head: DoublyLinkedListNode; tail: DoublyLinkedListNode; length: number; constructor(...args: T[]); get(pos: number): DoublyLinkedListNode; indexOf(val: T): number; includes(cb: (val: T) => boolean): boolean; find(cb: (val: T) => boolean): DoublyLinkedListNode; findIndex(cb: (val: T) => boolean): number; set(pos: number, val: T): this; push(val: T): this; pop(): T; unshift(val: T): this; shift(): T; insert(pos: number, val: T): this; remove(pos: number): T; forEach(cb: (val: T, pos?: number) => void): void; filter(cb: (val: T, pos?: number) => boolean): DoublyLinkedList; map(cb: (val: T, pos?: number) => U): DoublyLinkedList; reduce(cb: (prev: any, curr: T) => any, start: any): any; slice(start?: number, end?: number): DoublyLinkedList; splice(start?: number, deleteCount?: number, ...replace: T[]): void; toArray(): T[]; reverse(): this; toString(): string; }