import { Effect, Option, Schema } from "effect"; import { Prompt, Response, Tool } from "effect/unstable/ai"; import type { ParseOptions } from "effect/SchemaAST"; import { AgentError, MiddlewareViolation } from "./agent-event.js"; import type { Middleware, TurnContext } from "../model/model-middleware.js"; import type { Entry } from "../context/session.js"; export declare const providerOutputState: () => { textCharacters: number; reasoningCharacters: number; finishReason: undefined; }; export declare const errorMessage: (error: unknown) => string; export declare const systemPrompt: { (system: string): (supplemental: string | undefined) => Prompt.Prompt; (supplemental: string | undefined, system: string): Prompt.Prompt; }; export declare const withSystem: { (instructions: string): (prompt: Prompt.Prompt) => Prompt.Prompt; (instructions: string, prompt: Prompt.Prompt): Prompt.Prompt; }; export declare const skillListingsInstructions: (listings: string) => string; export declare const recalledMessages: (prompt: Prompt.Prompt) => ReadonlyArray; export declare const messageJsonStringCodec: Schema.fromJsonString>>; /** @experimental */ export declare const encodeMessage: { (input: Prompt.Message, options?: ParseOptions): Effect.Effect; (options?: ParseOptions): (input: Prompt.Message) => Effect.Effect; }; /** @experimental */ export declare const decodeMessage: { (input: string, options?: ParseOptions): Effect.Effect; (options?: ParseOptions): (input: string) => Effect.Effect; }; export declare const detachMessage: (message: Prompt.Message) => Effect.Effect; export declare const detachPrompt: (prompt: Prompt.Prompt) => Effect.Effect; export declare const detachEntry: (entry: Entry) => Effect.Effect; export declare const preservesRecalledMessages: { (required: ReadonlyArray, transformed: Prompt.Prompt): (allowed: ReadonlyArray) => boolean; (allowed: ReadonlyArray, required: ReadonlyArray, transformed: Prompt.Prompt): boolean; }; /** Fold the prompt through every `transformPrompt` hook in array order. */ export declare const applyPromptChain: { (prompt: Prompt.Prompt, context: TurnContext): (chain: ReadonlyArray) => Effect.Effect; (chain: ReadonlyArray, prompt: Prompt.Prompt, context: TurnContext): Effect.Effect; }; /** Thread a stream part through every `transformPart` hook; the first `none()` short-circuits. */ export declare const applyPartChain: { (part: Response.StreamPart>, context: TurnContext): (chain: ReadonlyArray) => Effect.Effect>>, AgentError>; (chain: ReadonlyArray, part: Response.StreamPart>, context: TurnContext): Effect.Effect>>, AgentError>; };