/**
 * 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 '../spec/spec';
import type { SpecConsumer, SpecConsumerConfig, SpecMarkdownOptions, SpecPromptOptions, SpecQueryResult, SpecListOptions, SpecListResult } 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<SpecConsumerConfig, 'specs'>): SpecConsumer;
