import type { TranslationBundle } from '@jupyterlab/translation'; import { LabIcon } from '@jupyterlab/ui-components'; import type { IAgent } from '../launcher/agents'; /** * A running agent terminal offered as a prompt target: the session data * from `IAgentTerminals` plus the matching agent's icon, resolved by the * plugin so these components stay presentation-only. */ export interface ISessionTarget { /** * The terminal session name. */ name: string; /** * The session's display label (usually the agent's name). */ label: string; /** * The agent's latest activity line, when one is available. */ activity: string | null; /** * The running agent's icon. */ icon: LabIcon; } /** * The chip row picking where a prompt goes: "New terminal" plus one chip * per running agent session. Renders nothing while no agent session is * running (a new terminal is then the only possibility and the row would * be noise). */ export declare function TargetChips(props: { /** * Agents that could start in a new terminal; gates the "New terminal" chip. */ agents: IAgent[]; /** * The running agent sessions. */ targets: ISessionTarget[]; /** * The selected session name, or `null` for a new terminal. */ targetName: string | null; trans: TranslationBundle; onSelect: (targetName: string | null) => void; }): JSX.Element | null; /** * The icon radiogroup picking which agent a new terminal starts with. * Renders nothing when no agent accepts an initial prompt. */ export declare function AgentChoices(props: { agents: IAgent[]; agentId: string; trans: TranslationBundle; onSelect: (agentId: string) => void; }): JSX.Element | null;