import { BaseNodeLinkedList } from "../base-node-linked-list";
import { IComparator } from "../comparator.interface";
import { DoublyLinkedList } from "../doubly-linked-list/doubly-linked-list";
import { ICircularDoublyLinkedList } from "./circular-doubly-linked-list.interface";
export declare class CircularDoublyLinkedList<T> extends DoublyLinkedList<T> implements ICircularDoublyLinkedList<T> {
    protected comparator: IComparator<T>;
    constructor(comparator?: IComparator<T>);
    insertInBegin(data: T): BaseNodeLinkedList<T>;
    deleteNode(data: T): BaseNodeLinkedList<T> | null;
    deleteFirstNode(): BaseNodeLinkedList<T> | null;
    deleteLastNode(): BaseNodeLinkedList<T> | null;
    traverse(): T[];
    print(referenceProperty: string): string;
    search(data: T): any | null;
}
