import type { Adapter, Thread } from 'chat'; import type { IMastraLogger } from '../logger/logger.js'; import type { AgentChunkType } from '../stream/types.js'; import type { PendingApprovalRecord } from './stream-helpers.js'; import type { ToolDisplayFn } from './types.js'; export interface StaticDriverArgs { stream: AsyncIterable>; chatThread: Thread; adapter: Adapter; /** After `resolveToolDisplay`, non-streaming tool display is one of these. */ toolDisplay: 'cards' | 'text' | 'hidden'; /** * Optional function-form `toolDisplay` callback. When set, the built-in * renderers are bypassed and this is called once per tool lifecycle event * (running, result, error, approval). */ toolDisplayFn?: ToolDisplayFn; channelToolNames: Set; logger?: IMastraLogger; onApprovalPosted: (toolCallId: string, record: PendingApprovalRecord) => void; getPendingApproval: (toolCallId: string) => PendingApprovalRecord | undefined; takePendingApproval: (toolCallId: string) => PendingApprovalRecord | undefined; /** Optional adapter-supplied formatter for `error` chunks; defaults to a plain prefix. */ formatError?: (error: Error) => unknown; } /** * Static (non-streaming) driver: consumes `AgentChunkType` chunks and * renders them through discrete `chatThread.post` / `adapter.editMessage` * calls. Handles `'cards'` (per-tool "Running…" → "Result" cards) and * `'hidden'` (silent tool execution, one final text post) tool-display modes. * * No streaming session is opened — text accumulates in a buffer and flushes * on any side-effect (tool call, file, finish, error). OM `data-om-*` chunks * are intentionally ignored: OM widgets only render inside a streaming Plan. */ export declare function runStaticDriver({ stream, chatThread, adapter, toolDisplay, toolDisplayFn, channelToolNames, logger, onApprovalPosted, getPendingApproval, takePendingApproval, formatError, }: StaticDriverArgs): Promise; //# sourceMappingURL=chat-driver-static.d.ts.map