import { type Component } from "@earendil-works/pi-tui";
import type { SessionTreeNode } from "../../../core/session-manager.ts";
import type { FilterMode } from "./tree-selector-types.ts";
/** Tree list component with selection and ASCII art visualization */
export declare class TreeList implements Component {
    private readonly state;
    onSelect?: (entryId: string) => void;
    onCancel?: () => void;
    onLabelEdit?: (entryId: string, currentLabel: string | undefined) => void;
    constructor(tree: SessionTreeNode[], currentLeafId: string | null, maxVisibleLines: number, initialSelectedId?: string, initialFilterMode?: FilterMode);
    invalidate(): void;
    getSearchQuery(): string;
    getSelectedNode(): SessionTreeNode | undefined;
    updateNodeLabel(entryId: string, label: string | undefined, labelTimestamp?: string): void;
    private getStatusLabels;
    render(width: number): string[];
    handleInput(keyData: string): void;
    /**
     * Whether a node can be folded. A node is foldable if it has visible children
     * and is either a root (no visible parent) or a segment start (visible parent
     * has multiple visible children).
     */
    private isFoldable;
    /**
     * Find the index of the next branch segment start in the given direction.
     * A segment start is the first child of a branch point.
     *
     * "up" walks the visible parent chain; "down" walks visible children
     * (always following the first child).
     */
    private findBranchSegmentStart;
}
//# sourceMappingURL=tree-selector-list.d.ts.map