import type { SpooledArtifactConstructor } from "../../common"; import type { SkillDescriptor, SkillManagerConfig } from "./types"; /** Resolved artifact kinds plus the consumer-owned skill/tool binding table. */ export interface SkillArtifactRegistry { /** Constructors keyed by the kind name accepted in bindings and descriptors. */ readonly kinds: ReadonlyMap; /** Explicit skill-to-tool-to-kind mappings; these override descriptor advice. */ readonly bindings: Readonly>>>; /** Selects the binding, then descriptor advice, then the raw built-in kind. */ resolve(skillId: string, toolName: string, descriptor?: Pick): SpooledArtifactConstructor; } /** * Resolve all optional artifact classes eagerly. The built-in raw kind is always available; * optional artifact batteries are intentionally not imported here. */ export declare const createSkillArtifactRegistry: (config: Pick) => Promise; /** * bedrock_converse and gemini_generate_content do not honour artifactConstructor: they coerce * every tool result through `new Tokenizable(JSON.stringify(raw))`. Their imported-tool output is * therefore inlined and no artifact readers are forged. The other adapters spool tool results. */