export interface ILinkedListItem { readonly value: T; readonly next?: ILinkedListItem | undefined; readonly prev?: ILinkedListItem | undefined; readonly position: number; readonly list: LinkedList; } export interface ILinkedList extends Iterable> { readonly root: ILinkedListItem | undefined; readonly last: ILinkedListItem | undefined; readonly length: number; add(value: T): ILinkedListItem; remove(item: ILinkedListItem): void; removeLast(): void; removeFirst(): void; clear(): void; } interface LinkedListItem extends ILinkedListItem { next?: LinkedListItem; prev?: LinkedListItem; position: number; list: LinkedList; } export declare class LinkedList implements ILinkedList { private _root; private _last; private _length; get root(): ILinkedListItem | undefined; get last(): ILinkedListItem | undefined; get length(): number; [Symbol.iterator](): Generator, void, unknown>; add(value: T): ILinkedListItem; remove(item: ILinkedListItem | null | undefined): void; removeLast(): void; removeFirst(): void; clear(): void; } export {};