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