import { type Component, type Focusable } from "@earendil-works/pi-tui"; import type { KeybindingsManager } from "../../../core/keybindings.ts"; import type { SessionInfo } from "../../../core/session-manager.ts"; import { type NameFilter, type SortMode } from "./session-selector-search.ts"; /** * Custom session list component with multi-line items and search */ export declare class SessionList implements Component, Focusable { getSelectedSessionId(): string | undefined; private allSessions; private filteredSessions; private selectedIndex; private searchInput; private showCwd; private sortMode; private nameFilter; private keybindings; private showPath; private confirmingDeleteSession; private currentSession?; onSelect?: (session: SessionInfo) => void; onCancel?: () => void; onExit: () => void; onToggleScope?: () => void; onToggleSort?: () => void; onToggleNameFilter?: () => void; onTogglePath?: (showPath: boolean) => void; onDeleteConfirmationChange?: (path: string | null) => void; onDeleteSession?: (sessionPath: string, session: SessionInfo) => Promise; onRenameSession?: (session: SessionInfo) => void; onError?: (message: string) => void; private maxVisible; private _focused; get focused(): boolean; set focused(value: boolean); constructor(sessions: SessionInfo[], showCwd: boolean, sortMode: SortMode, nameFilter: NameFilter, keybindings: KeybindingsManager, currentSession?: { id: string; directory?: string; }); setSortMode(sortMode: SortMode): void; setNameFilter(nameFilter: NameFilter): void; setSessions(sessions: SessionInfo[], showCwd: boolean): void; private filterSessions; private setConfirmingDeleteSession; private startDeleteConfirmationForSelectedSession; private isCurrentSession; invalidate(): void; render(width: number): string[]; private buildTreePrefix; handleInput(keyData: string): boolean; } //# sourceMappingURL=session-selector-list.d.ts.map