/** A saved session, projected for the selector. */ export interface SessionListItem { id: string; /** Searchable display text — first user message, truncated. */ preview: string; /** Epoch ms of the last update. */ updatedAt: number; /** role:"user" count — a proxy for "turns". */ userMessageCount: number; /** role:"tool" count — how many tool calls executed. */ toolCallCount: number; /** role:"assistant" count — model responses (≈ turns). */ assistantMessageCount: number; /** Optional user-set title (metadata.title); takes precedence over preview. */ title?: string; provider?: string; model?: string; } interface SessionSelectorProps { sessions: SessionListItem[]; currentSessionId: string; onSelect: (id: string) => void; onDelete: (id: string) => void; onExport: (id: string) => void; onTranscript: (id: string) => void; onRename: (id: string, title: string) => Promise; onClose: () => void; } /** * `/sessions` overlay: fuzzy search to filter, ↑/↓ navigate, Enter resumes, * `d` deletes, `e` exports JSON, `t` writes transcript, `r` renames, * Esc closes. Rename mode shows a TextInput inline; Enter commits, Esc cancels. */ export declare function SessionSelector({ sessions, currentSessionId, onSelect, onDelete, onExport, onTranscript, onRename, onClose }: SessionSelectorProps): import("react").JSX.Element; export {};