import { ChatSessionMetadata } from '@theia/ai-chat'; import * as React from '@theia/core/shared/react'; export interface SectionedSessions { active: ChatSessionMetadata[]; restored: ChatSessionMetadata[]; } /** A session row with its optional child sessions. */ export interface SessionRow { session: ChatSessionMetadata; isRestored: boolean; childSessions: SessionRow[]; } /** * The id of a session's immediate parent for tree building. Falls back to the root session id for * sessions persisted before immediate-parent tracking existed, so their hierarchy still renders * (flat under the root, as before). */ export declare function parentIdOf(session: ChatSessionMetadata): string | undefined; export interface VisibleSessionSlots { activeCount: number; restoredCount: number; } /** * Allocates the capped number of visible items between the Active and Restored sections of the * overview. When both sections are non-empty, up to {@link RESTORED_MIN_RESERVATION} slots are * reserved for Restored so active sessions cannot crowd it out entirely. A cap of 0 hides the * inline list (every session stays reachable via the "Browse all chats..." link). */ export declare function computeVisibleSessionSlots(activeTotal: number, restoredTotal: number, maxSessions: number): VisibleSessionSlots; export interface SessionsListProps { rows: SessionRow[]; /** Total cap on items shown; overflow surfaces via the Browse all link. Defaults to no cap. */ maxSessions?: number; renderRow: (row: SessionRow) => React.ReactNode; onBrowseAll?: () => void; } export declare function SessionsList({ rows, maxSessions, renderRow, onBrowseAll }: SessionsListProps): React.ReactElement; //# sourceMappingURL=chat-session-list-components.d.ts.map