import { Hooks } from '../core/hooks.js'; export declare class List extends Hooks { comparator?: ((a: T, b: T) => number) | undefined; head?: ListNode; tail?: ListNode; length: number; constructor(comparator?: ((a: T, b: T) => number) | undefined, source?: Array); prepend(data: T): ListNode; append(data: T | ListNode): ListNode; removeFirst(hook?: boolean): T | undefined; removeLast(): T | undefined; addAfter(data: T, node: ListNode): ListNode; addBefore(data: T, node: ListNode): ListNode; delete(node: ListNode): void; searchHead(callback: (node: ListNode) => boolean): ListNode | undefined; searchTail(callback: (node: ListNode) => boolean): ListNode | undefined; get(index: number): T | undefined; forEach(callback: (node: ListNode) => void): void; map(callback: (node: ListNode) => any): any[]; toArray(): T[]; toString(): string; } export declare class ListNode { prev?: ListNode; next?: ListNode; data?: T; constructor(data?: T); }