import SequentialContainer from './Base'; import { ContainerIterator, initContainer } from "../ContainerBase"; export declare class LinkListIterator extends ContainerIterator { pre: () => this; next: () => this; get pointer(): T; set pointer(newValue: T); equals(obj: LinkListIterator): boolean; copy(): LinkListIterator; } declare class LinkList extends SequentialContainer { constructor(container?: initContainer); clear(): void; begin(): LinkListIterator; end(): LinkListIterator; rBegin(): LinkListIterator; rEnd(): LinkListIterator; front(): T | undefined; back(): T | undefined; forEach(callback: (element: T, index: number) => void): void; getElementByPos(pos: number): T; eraseElementByPos(pos: number): void; eraseElementByValue(_value: T): void; eraseElementByIterator(iter: LinkListIterator): LinkListIterator; pushBack(element: T): void; popBack(): void; setElementByPos(pos: number, element: T): void; insert(pos: number, element: T, num?: number): void; find(element: T): LinkListIterator; reverse(): void; unique(): void; sort(cmp?: (x: T, y: T) => number): void; /** * @description Push an element to the front. * @param element The element you want to push. */ pushFront(element: T): void; /** * @description Removes the first element. */ popFront(): void; /** * @description Merges two sorted lists. * @param list The other list you want to merge (must be sorted). */ merge(list: LinkList): void; [Symbol.iterator](): Generator; } export default LinkList;