/**
* Class implements bidirectional non-circular linked list.
* LinkedListElement - object of any type that has properties next and prev.
*/
declare class LinkedList {
first: T;
last: T;
constructor(first?: T, last?: T);
[Symbol.iterator](): {
next: () => {
value: any;
done: boolean;
};
};
/**
* Return number of elements in the list
* @returns {number}
*/
get size(): number;
/**
* Return array of elements from start to end,
* If start or end not defined, take first as start, last as end
* @returns {Array}
*/
toArray(start?: any, end?: any): any[];
/**
* Append new element to the end of the list
* @param {LinkedListElement} element
* @returns {LinkedList}
*/
append(element: any): this;
/**
* Insert new element to the list after elementBefore
* @param {LinkedListElement} newElement
* @param {LinkedListElement} elementBefore
* @returns {LinkedList}
*/
insert(newElement: any, elementBefore: any): this;
/**
* Remove element from the list
* @param {LinkedListElement} element
* @returns {LinkedList}
*/
remove(element: any): this;
/**
* Return true if list is empty
* @returns {boolean}
*/
isEmpty(): boolean;
/**
* Throw an error if circular loop detected in the linked list
* @param {LinkedListElement} first element to start iteration
* @throws {Errors.INFINITE_LOOP}
*/
static testInfiniteLoop(first: any): void;
}
export default LinkedList;
//# sourceMappingURL=linked_list.d.ts.map