import LinkedNode from './linked.node'; import { StepIterator } from '../../interface/step'; export default class DoublyLinkedList { private readonly queue; private firstKey; private lastKey; constructor(); isEmpty(): boolean; isLast(key: string): boolean; getLastKey(): string; isFirst(key: string): boolean; getFirstKey(): string; isExist(key: string): boolean; addLastItem(key: string, value: T): boolean; addFirstItem(key: string, value: T): boolean; addItemAfterKey(key: string, itemKey: string, itemValue: T): boolean; addItemBeforeKey(key: string, itemKey: string, itemValue: T): boolean; removeItemByKey(key: string): boolean; updateItemByKey(key: string, value: T): boolean; getValueByKey(key: string): T; _getLinkedNodeByKey(key: string): LinkedNode; getSize(): number; getFisrtItem(): T; getLastItem(): T; getKeys(): string[]; createIterator(key?: string): StepIterator; addLastItemByList(key: string, queueObject: any): void; toJSON(): string; clone(): DoublyLinkedList; moveupByKey(key: string): void; movedownByKey(key: string): void; exchangeItemByKey(sourceKey: string, targetKey: string): void; }