/** * Spec consumer for external agents. * * Enables external agent SDKs to consume ContractSpec specs: * - Read spec definitions as markdown/prompts * - List available specs * - Query spec metadata */ import { type AgentSpec } from '@contractspec/lib.contracts-spec/agent'; import type { SpecConsumer, SpecConsumerConfig, SpecListOptions, SpecListResult, SpecMarkdownOptions, SpecPromptOptions, SpecQueryResult } from './types'; /** * ContractSpec consumer for external agents. * * @example * ```typescript * const consumer = createSpecConsumer({ * specs: [myAgentSpec, anotherSpec], * includeMetadata: true, * }); * * // Get markdown representation * const markdown = consumer.getSpecMarkdown('my-agent.v1.0.0'); * * // Get prompt for LLM * const prompt = consumer.getSpecPrompt('my-agent.v1.0.0', { * includeTools: true, * }); * ``` */ export declare class ContractSpecConsumer implements SpecConsumer { private readonly specs; private readonly includeMetadata; private readonly baseUrl?; private readonly locale?; constructor(config: SpecConsumerConfig); /** * Get a spec as markdown. */ getSpecMarkdown(specKey: string, options?: SpecMarkdownOptions): string; /** * Get a spec as an LLM prompt. */ getSpecPrompt(specKey: string, options?: SpecPromptOptions): string; /** * List available specs. */ listSpecs(options?: SpecListOptions): SpecListResult[]; /** * Query a spec by key. */ querySpec(specKey: string): SpecQueryResult | undefined; /** * Check if a spec exists. */ hasSpec(specKey: string): boolean; /** * Get a spec by key. */ getSpec(specKey: string): AgentSpec | undefined; /** * Get all specs. */ getAllSpecs(): AgentSpec[]; /** * Get spec count. */ getSpecCount(): number; /** * Add a spec to the consumer. */ addSpec(spec: AgentSpec): void; /** * Remove a spec from the consumer. */ removeSpec(specKey: string): boolean; } /** * Create a new spec consumer. */ export declare function createSpecConsumer(config: SpecConsumerConfig): SpecConsumer; /** * Create a spec consumer from a single spec. */ export declare function createSingleSpecConsumer(spec: AgentSpec, options?: Omit): SpecConsumer;