import type { AiMiddleware, BeforeToolCallResult, MiddlewareConfigResult, MiddlewareContext, StreamChunk, TokenUsage } from './types.js'; /** Run onConfig hooks — piped (each transforms config, next sees result) */ export declare function runOnConfig(middlewares: AiMiddleware[], ctx: MiddlewareContext, config: MiddlewareConfigResult, phase: 'init' | 'beforeModel'): MiddlewareConfigResult; /** Run onChunk hooks — piped (each can transform or drop by returning null) */ export declare function runOnChunk(middlewares: AiMiddleware[], ctx: MiddlewareContext, chunk: StreamChunk): StreamChunk | null; /** Run onBeforeToolCall hooks — first non-void result wins */ export declare function runOnBeforeToolCall(middlewares: AiMiddleware[], ctx: MiddlewareContext, toolName: string, args: Record): Promise; /** Run a sequential hook (onStart, onIteration, onAfterToolCall, etc.) */ export declare function runSequential(middlewares: AiMiddleware[], hook: 'onStart' | 'onIteration' | 'onToolPhaseComplete' | 'onFinish', ctx: MiddlewareContext): Promise; /** Run onAfterToolCall hooks sequentially */ export declare function runOnAfterToolCall(middlewares: AiMiddleware[], ctx: MiddlewareContext, toolName: string, args: Record, result: unknown): Promise; /** Run onUsage hooks sequentially */ export declare function runOnUsage(middlewares: AiMiddleware[], ctx: MiddlewareContext, usage: TokenUsage): Promise; /** Run onAbort hooks sequentially */ export declare function runOnAbort(middlewares: AiMiddleware[], ctx: MiddlewareContext, reason: string): Promise; /** Run onError hooks sequentially */ export declare function runOnError(middlewares: AiMiddleware[], ctx: MiddlewareContext, error: unknown): Promise; //# sourceMappingURL=middleware.d.ts.map