import type { EngineContentPart, EngineEvent } from "./engine/types.js"; export declare class TripWire extends Error { readonly meta?: Record; readonly processor?: string; constructor(reason: string, opts?: { meta?: Record; processor?: string; }); } export type ProcessorState = Record; export type ProcessorAbort = (reason: string, meta?: Record) => never; export interface ProcessOutputStreamArgs { part: EngineEvent; streamParts: EngineEvent[]; state: ProcessorState; abort: ProcessorAbort; } export interface ProcessOutputStepArgs { toolCalls: { id: string; name: string; input: unknown; }[]; finishReason?: "end_turn" | "tool_use" | "max_tokens" | "stop_sequence" | "error"; usage?: { inputTokens: number; outputTokens: number; cacheReadTokens?: number; cacheWriteTokens?: number; }; state: ProcessorState; abort: ProcessorAbort; } export interface ProcessOutputResultArgs { text: string; state: ProcessorState; } export interface Processor { name?: string; processOutputStream?(args: ProcessOutputStreamArgs): void | Promise; processOutputStep?(args: ProcessOutputStepArgs): void | Promise; processOutputResult?(args: ProcessOutputResultArgs): void | Promise; } export declare class ProcessorChain { private readonly entries; private readonly streamParts; constructor(processors: Processor[]); private makeAbort; runStream(part: EngineEvent): Promise; runStep(args: { toolCalls: { id: string; name: string; input: unknown; }[]; finishReason?: ProcessOutputStepArgs["finishReason"]; usage?: ProcessOutputStepArgs["usage"]; }): Promise; runResult(text: string): Promise; } export declare function toolCallsFromContent(parts: EngineContentPart[]): { id: string; name: string; input: unknown; }[];