/** * A chat's status as the sidebar row shows it (working, needs you, waiting, * failed, unread, scheduled, who started it), for the command menu and the * Control+Tab switcher. A remembered row only counts while it is known to be * current: the sidebar keeps its own workspace's rows live, and other rows * are read again when a list opens. */ import { type SessionListRow } from "../../../session-list-model.js"; import { type CreatorRef } from "../creator-initials.js"; import { type RailAggregateStatus } from "../sessions-group.js"; import type { ChatRecord } from "./chat-directory.js"; /** How long a row read from the server still describes the chat. */ export declare const CHAT_STATUS_FRESH_MS = 90000; export type ChatStatus = { summary: RailAggregateStatus; scheduled: boolean; creator: CreatorRef | null; }; /** Exactly the sidebar row's marker: the chat and everything it started. */ export declare function chatRowStatus(row: SessionListRow, now?: Date): ChatStatus; /** * Whether the record's row says how the chat is now: the sidebar on screen * holds it (and keeps it live), or it was read moments ago. */ export declare function chatStatusIsCurrent(record: ChatRecord, sidebarIds: ReadonlySet, now: number): boolean; /** The status to show, or null while it isn't known to be current. */ export declare function currentChatStatus(record: ChatRecord, sidebarIds: ReadonlySet, now: number): ChatStatus | null;