interface LinkedListType { head: LinkedNode | null; tail: LinkedNode | null; size: number; append(value: T): void; push(value: T): void; insertAt(index: number, value: T): void; get(index: number): LinkedNode | null; getIndex(matchFn: (node: LinkedNode) => boolean): number; deleteAt(index: number): void; moveNode(fromIndex: number, toIndex: number): void; getNodeInfo(matchFn: (node: LinkedNode) => boolean): { node: LinkedNode | null; index: number; }; } declare class LinkedNode { value: T; next: LinkedNode | null; prev: LinkedNode | null; constructor(value: T); } declare class LinkedList implements LinkedListType { head: LinkedNode | null; tail: LinkedNode | null; size: number; append(value: T): void; push(value: T): void; insertAt(index: number, value: T): void; get(index: number): LinkedNode | null; each(fn: (node: T, index: number) => void): void; getNodeInfo(matchFn: (node: LinkedNode) => boolean): { node: LinkedNode | null; index: number; }; getIndex(matchFn: (node: LinkedNode) => boolean): number; deleteAt(index: number): void; moveNode(fromIndex: number, toIndex: number): void; toArray(): Array; } export { LinkedList, LinkedNode }; export type { LinkedListType };