import { type Component, type Focusable, type KeybindingsManager, type SelectItem } from '@earendil-works/pi-tui'; import type { TuiTranscriptTreeEntry } from './tui-backend.js'; import type { TuiSettings, TreeFilterMode } from './tui-settings.js'; export declare function formatTranscriptTreeOpenedHint(keybindings: KeybindingsManager): string; export declare function formatTranscriptTreeFilterHint(keybindings: KeybindingsManager, filterMode: TuiSettings['treeFilterMode']): string; export declare function formatTranscriptTreeHelpLines(keybindings: KeybindingsManager, width: number): string[]; export declare function formatUserMessageForkOpenedHint(keybindings: KeybindingsManager): string; export declare function defaultTranscriptForkKey(currentSessionKey: string, entryId: string): string; export declare function transcriptTreeSelectItems(entries: TuiTranscriptTreeEntry[], options?: { showLabelTimestamps?: boolean; foldedIds?: ReadonlySet; foldableIds?: ReadonlySet; allEntries?: TuiTranscriptTreeEntry[]; }): SelectItem[]; export declare class TranscriptTreeSelectList implements Component, Focusable { private readonly entries; private readonly keybindings; private readonly maxVisible; private readonly list; private filterMode; private labelInput; private labelEntry; private showLabelTimestamps; private readonly foldedEntryIds; private lastSelectedEntryId; onSelect?: (item: SelectItem) => void; onCancel?: () => void; onFilterChange?: (mode: TreeFilterMode) => void; onLabelSubmit?: (entry: TuiTranscriptTreeEntry, label: string | undefined) => void; constructor(entries: TuiTranscriptTreeEntry[], initialFilterMode: TreeFilterMode, keybindings: KeybindingsManager, maxVisible: number); get focused(): boolean; set focused(value: boolean); getFilterMode(): TreeFilterMode; private initialSelectedEntryId; private filteredEntries; private visibleUnfoldedEntries; private hasVisibleChild; private isFoldableEntryId; private nearestVisibleEntryId; private visibleTreeMaps; private moveToBranchSegment; private refreshItems; private setFilterMode; private foldSelectedEntry; private unfoldSelectedEntry; private clearSearchAndFolds; private pageSelection; updateEntryLabel(entryId: string, label: string | undefined): void; private toggleFilterMode; private cycleFilter; private rememberSelectedEntry; handleInput(keyData: string): void; render(width: number): string[]; invalidate(): void; getSelectedItem(): SelectItem | null; } export declare function userMessageForkSelectItems(entries: TuiTranscriptTreeEntry[]): SelectItem[];