import { AgencyNode, AgencyProgram } from "../types.js"; import type { TypeCheckerContext } from "./types.js"; /** * Resolve a `tools:` option value to the list of statically-known tool * expressions. Returns `[]` for shapes the validator cannot inspect * (spread elements, bare identifiers, non-array expressions); the runtime * backstop handles those cases at LLM-request time. */ export declare function resolveStaticTools(opt: AgencyNode | undefined): AgencyNode[]; /** Locate the `tools:` value of an `llm(...)` call, written either as a named * argument (`llm(p, tools: [...])`) or inside an options object * (`llm(p, { tools: [...] })`). */ export declare function findToolsOption(llmCall: AgencyNode): AgencyNode | undefined; /** Walk the program, emit diagnostics for each llm() call's tools array. */ export declare function checkToolBlockBindings(program: AgencyProgram, ctx: TypeCheckerContext): void;