import type * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import type { RuntimeContext } from "../RuntimeContext.ts"; import type { ToolImpl } from "./Tool.ts"; export type Services = Refs[number] extends infer A ? A extends ToolImpl | Context.Service ? Req : never : never; export interface Agent { [Symbol.iterator](): Effect.EffectIterator>; "~alchemy/Kind": "Agent"; name: Name; refs: Refs; req: Services; new (): AgentService; } export interface AgentService { send(request: { input: any; session?: string; }): Effect.Effect; } export declare const Agent: { (): { (id: Name): { (template: TemplateStringsArray, ...refs: Refs): Agent>; }; }; (id: Name): { (template: TemplateStringsArray, ...refs: Refs): Agent>; }; }; //# sourceMappingURL=Agent.d.ts.map