import type { RunRenderer } from "@copilotkit/channels-core"; export interface CreateRunRendererArgs { /** Posts a new Telegram message with placeholder text; resolves with its message id. */ postPlaceholder: (text: string) => Promise; /** Edits the Telegram message with the given id to contain `text`. */ editAt: (messageId: number, text: string) => Promise; /** * Optional native typing indicator. When provided it is used in place of a * posted `🔧 using …` status line on tool-call start. */ setTyping?: () => Promise; /** * Custom-event names that should be treated as interrupts — captured for * later dispatch to an `InterruptHandler`. Defaults to `on_interrupt` (the * name LangGraph's AG-UI adapter emits). */ interruptEventNames?: ReadonlySet; /** * Whether tool calls should surface a `🔧 using …` → done status line. * Defaults to `true`. Tool calls are ALWAYS captured regardless of this flag. */ showToolStatus?: boolean; } /** * Construct a {@link RunRenderer} for a single agent run on Telegram. * * Mirrors the Slack renderer's lifecycle, swapping Slack's `chat.update` * transport for {@link ChunkedEditStream} (numeric message ids + telegram * HTML transform) and Slack's composer status for `setTyping()` / a posted * status line. * * The `subscriber` is passed to `runAgent`. After the run resolves, the * run-loop reads `getCapturedToolCalls()` and `getPendingInterrupt()`. * `markInterrupted()` finalises EVERY in-flight stream (so no in-flight * placeholder is abandoned), appending an `_(interrupted)_` marker to any * stream that has real partial content. */ export declare function createRunRenderer(args: CreateRunRendererArgs): RunRenderer; //# sourceMappingURL=event-renderer.d.ts.map