import type { InternalToolDefinitionWithExecuteFn } from "#shared/tool-definition.js"; import { type DynamicToolEventName } from "#shared/dynamic-tool-definition.js"; /** * Canonical normalized shape of one authored tool default export. * * Identity is path-derived — the compiler stamps the filename slug onto * the compiled entry. This shape never carries an authored `name`. */ type NormalizedAuthoredTool = Readonly>; /** * Result of normalizing one authored tool default export. Either a real tool * definition, a sentinel that disables a framework default, or a dynamic * tool resolver. In all cases the disable target / runtime name is the * authored file's slug, supplied by the compiler — this layer never sees * a name. */ type NormalizedToolEntry = { readonly kind: "tool"; readonly definition: NormalizedAuthoredTool; } | { readonly kind: "disabled"; } | { readonly kind: "enable-workflow"; } | { readonly kind: "dynamic-tool"; readonly eventNames: readonly DynamicToolEventName[]; }; /** * Normalizes one authored tool default export. Recognizes real tool * definitions (`defineTool(...)`), disable sentinels (`disableTool()`), and the * `Workflow` opt-in sentinel. * * Authored `name` fields are rejected — tool identity is path-derived. */ export declare function normalizeToolDefinition(value: unknown, message: string): NormalizedToolEntry; export {};