/**
 * Represents a binary search tree.
 * @template T The type of elements in the tree.
 */
export declare class BinarySearchTree<T> {
    private root;
    /**
     * Inserts a value into the tree.
     * @param {T} value - The value to insert.
     */
    insert(value: T): void;
    /**
     * Searches for a value in the tree.
     * @param {T} value - The value to search for.
     * @returns {boolean} True if found, false otherwise.
     */
    search(value: T): boolean;
    delete(value: T): boolean;
    height(): number;
    countNodes(): number;
}
