import { IComparator } from "../comparator.interface";
import { BaseNodeLinkedList } from "../base-node-linked-list";
import { ISinglyLinkedList } from "./singly-linked-list.interface";
export declare class SinglyLinkedList<T> implements ISinglyLinkedList<T> {
    protected comparator: IComparator<T>;
    protected head: BaseNodeLinkedList<T> | null;
    protected tail: BaseNodeLinkedList<T> | null;
    protected listSize: number;
    constructor(comparator?: IComparator<T>);
    firstNode(): BaseNodeLinkedList<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;
    size(): number;
    isEmpty(): boolean;
    search(data: T): any | null;
}
