import { Effect, HashMap } from "effect"; import { Tool, Toolkit } from "effect/unstable/ai"; import { ToolNameCollision, type ToolOrigin } from "../agent/agent-event.js"; /** @experimental */ export type Dispatch = "Static" | "Builtin" | "Skill" | "Handoff"; /** @experimental */ export interface Candidate { readonly tool: Tool.Any; readonly origin: ToolOrigin; readonly dispatch: Dispatch; } /** @experimental */ export interface Registry { readonly entries: ReadonlyArray; readonly byName: HashMap.HashMap; readonly toolkit: Toolkit.Toolkit>; } /** @experimental */ export declare const assemble: (candidates: ReadonlyArray) => Effect.Effect; /** @experimental */ export declare const get: { (name: string): (registry: Registry) => Candidate | undefined; (registry: Registry, name: string): Candidate | undefined; }; /** @experimental */ export declare const select: { (names: ReadonlyArray): (registry: Registry) => Registry; (registry: Registry, names: ReadonlyArray): Registry; };