import { type WorkbenchGroupDimension, type WorkbenchSessionRow } from './agent-workbench-model.js'; export interface WorkbenchSessionListProps { sessions: readonly WorkbenchSessionRow[]; selectedSessionId: string | null; collapsed?: boolean; locale?: string; now?: number; /** Drives the live/last-snapshot dot in the list heading — the page-level * status bar that used to carry it is gone. */ online?: boolean; onSelect(sessionId: string): void; onToggleCollapsed?(): void; /** Row-level shortcut: jump straight to the session's terminal instead of * selecting the session and then hunting for the layout control. 行内只有 * 这一个终端入口(只读打开 / 再点关闭)——接管统一走终端面板标题栏的 * 「接管输入」,行内不再提供接管捷径。 */ onOpenTerminal?(sessionId: string): void; /** 恒可写身份(平台所有者):「终端」按钮点开就是可输入的终端,说明文案不能 * 再写「只读」(P1-4:宁可不提只读,也不留一句与实际能力相反的话)。 */ fixedTerminal?: boolean; /** 这个会话的终端面板有写请求在途:行内「终端」此刻禁用,连点不会在 POST * 回执前把面板关掉、留下一条没人管的写租约。 */ terminalBusySessionId?: string | null; /** 话题会话专用:让 bot 在原话题里 @ 会话拥有者,用户点通知即可跳回话题。 * 不传则不渲染定位按钮(dock 等精简形态就是这么用的)。 */ onLocate?(sessionId: string): Promise; /** Chat-follow renders each row's main surface as a real chat anchor, so the * open is the user's own trusted click. Scripted opens (even a synthesised * anchor.click(), which stays isTrusted=false) are demoted by the Feishu * client; a real click is the only unsigned path with standard treatment. */ chatFollowNavigates?: boolean; /** 未读会话 id(bot 干完活但你还没看)。不传就是全都已读。 */ unreadIds?: ReadonlySet; /** 当前分组维度,不传按「状态」分组(旧行为)。 */ dimension?: WorkbenchGroupDimension; /** 不传就不渲染维度下拉——dock 这类精简形态用不上。 */ onDimensionChange?(dimension: WorkbenchGroupDimension): void; /** 「看过了」的回执:行内那些不改变选中态的操作(打开飞书聊天、定位)也该 * 清掉未读,但它们不能顺手把选中态挪过去(移动端选中会直接钻进工作区)。 */ onSeen?(sessionId: string): void; /** 手机上列表页就是首屏:顶栏单列一枚 ◐ 直达「外观」面板。桌面不传——那边的 * 入口在工作区头部的 ⋯ 菜单里,同一个状态源。 */ onOpenAppearance?(): void; } export declare function WorkbenchSessionList(props: WorkbenchSessionListProps): JSX.Element; //# sourceMappingURL=agent-workbench-session-list.d.ts.map