import { Effect, Schema, Stream } from "effect"; import { LanguageModel, Response, Tool } from "effect/unstable/ai"; import { ToolContext } from "../tools/tool-context.js"; /** @internal A broad toolkit used only by the adapter's implementation boundary. */ type BroadTools = Record; declare const broadObjectSchema: Schema.Struct<{ readonly value: Schema.String; }>; type BroadGenerateObjectOptions = LanguageModel.GenerateObjectOptions; type BroadGenerateTextResponse = LanguageModel.GenerateTextResponse; type BroadGenerateObjectResponse = LanguageModel.GenerateObjectResponse; type BroadStreamPart = Response.StreamPart; type BroadGenerateError = LanguageModel.ExtractError>; type BroadGenerateObjectError = LanguageModel.ExtractError; type GenerateTextMiddleware = (options: LanguageModel.GenerateTextOptions, invoke: (options?: LanguageModel.GenerateTextOptions) => Effect.Effect) => Effect.Effect; type GenerateObjectMiddleware = (options: BroadGenerateObjectOptions, invoke: (options?: BroadGenerateObjectOptions) => Effect.Effect) => Effect.Effect; type StreamTextMiddleware = (options: LanguageModel.GenerateTextOptions, invoke: (options?: LanguageModel.GenerateTextOptions) => Stream.Stream) => Stream.Stream; /** @internal Typed operation-level model middleware. */ export interface Middleware { readonly generateText?: GenerateTextMiddleware; readonly generateObject?: GenerateObjectMiddleware; readonly streamText?: StreamTextMiddleware; } declare const invokeGenerateTextImpl: (model: LanguageModel.Service, options: LanguageModel.GenerateTextOptions) => Effect.Effect | Effect.Effect, never, never>; export declare const invokeGenerateText: { (options: LanguageModel.GenerateTextOptions): (model: LanguageModel.Service) => ReturnType; (model: LanguageModel.Service, options: LanguageModel.GenerateTextOptions): ReturnType; }; declare const invokeGenerateObjectImpl: (model: LanguageModel.Service, options: BroadGenerateObjectOptions) => Effect.Effect; export declare const invokeGenerateObject: { (options: BroadGenerateObjectOptions): (model: LanguageModel.Service) => ReturnType; (model: LanguageModel.Service, options: BroadGenerateObjectOptions): ReturnType; }; declare const invokeStreamTextImpl: (model: LanguageModel.Service, options: LanguageModel.GenerateTextOptions) => Stream.Stream, import("effect/unstable/ai/AiError").AiError, any>; export declare const invokeStreamText: { (options: LanguageModel.GenerateTextOptions): (model: LanguageModel.Service) => ReturnType; (model: LanguageModel.Service, options: LanguageModel.GenerateTextOptions): ReturnType; }; /** @internal Adapt all three LanguageModel operations without re-declaring their implementation overloads. */ type MetadataCopier = (source: LanguageModel.Service, target: LanguageModel.Service) => void; export declare const registerMetadataCopier: (copier: MetadataCopier) => void; export declare const adapt: { (middleware: Middleware): (model: LanguageModel.Service) => LanguageModel.Service; (model: LanguageModel.Service, middleware: Middleware): LanguageModel.Service; }; export declare const identity: Middleware; export declare const middleware: (input: Middleware) => Middleware; export {};