import { Effect, Option } from "effect"; import { Prompt, Response, Tool } from "effect/unstable/ai"; import type { Middleware, TurnContext } from "../model/model-middleware.js"; interface RedactOptions { readonly pattern: RegExp; readonly replacement?: string; } /** @experimental Fail the run when `check` rejects the input prompt. */ export declare const validateInput: (check: (prompt: Prompt.Prompt, context: TurnContext) => Effect.Effect>) => Middleware; /** @experimental Redact matches in text-bearing prompt fields before the model sees them. */ export declare const redactInput: (options: RedactOptions) => Middleware; /** @experimental Redact matches in streamed text deltas before Baton folds or emits them. */ export declare const redactOutput: (options: RedactOptions) => Middleware; /** @experimental Drop streamed non-tool-call parts when `keep` returns false. */ export declare const filterOutput: (keep: (part: Response.StreamPart>, context: TurnContext) => boolean) => Middleware; export {};