import type { TranslationBundle } from '@jupyterlab/translation'; import { ReactWidget } from '@jupyterlab/ui-components'; import type { CommandRegistry } from '@lumino/commands'; import type { Message } from '@lumino/messaging'; import type { IAgent } from '../launcher/agents'; import type { PromptQueue } from './queue'; import type { ISessionTarget } from './targetPicker'; /** * The right-sidebar review panel for queued ask-agent prompts. * * Lists every queued comment — jump-to-code context line, snippet preview, * editable instruction, its own destination picker, remove button — plus a * send button that flushes the whole queue in one go: prompts sharing a * destination are combined into one numbered message, and each destination * gets its own delivery. The widget re-renders on queue changes itself; the * plugin additionally ties it to the agent registry and terminal signals so * the destination choices stay current. */ export declare class AskAgentQueuePanel extends ReactWidget { constructor(options: AskAgentQueuePanel.IOptions); render(): JSX.Element; /** * Dispose on close (e.g. the close button when the panel has been dragged * to the main area) rather than leaving a detached, reusable widget * behind. The plugin recreates the panel in the side area on demand; the * queue itself lives on in the model. */ protected onCloseRequest(msg: Message): void; private _onQueueChanged; private _options; } /** * A namespace for `AskAgentQueuePanel` statics. */ export declare namespace AskAgentQueuePanel { /** * Construction options for {@link AskAgentQueuePanel}. */ interface IOptions { /** * The queue the panel lists and edits. */ queue: PromptQueue; /** * Command registry used to open queued locations in the editor. */ commands: CommandRegistry; /** * Live reader of the prompt-capable agents (called on every render). */ agents: () => IAgent[]; /** * Live reader of the running agent terminals (called on every render). */ targets: () => ISessionTarget[]; /** * Live reader of whether a batch send is in flight (called on every * render). While true the send and clear buttons are disabled, so one * flush cannot be double-delivered. */ sending: () => boolean; /** * Translation bundle for the panel's own labels. */ trans: TranslationBundle; /** * Send every queued prompt to its own destination (the panel only calls * this while all instructions and destinations are valid). */ onSend: () => void; /** * Clear the queue (the plugin offers an undo toast). */ onClear: () => void; } }