/**
 * SupportedModelsCatalog -- centralized LLM model metadata registry.
 *
 * Single source of truth for:
 *   - UI dashboard: "what models can this customer use"
 *   - White-label capability matrix
 *   - Adapter selection logic (which adapter handles which model)
 *   - Documentation auto-generation
 *
 * Design notes:
 *   - No $/token pricing -- rates are volatile and would rot. Use `pricingTier` (qualitative).
 *   - `releasedAt` is YYYY-MM only -- avoids stale exact-date drift.
 *   - Capability flags are conservative. When in doubt, false.
 *   - Azure OpenAI: customer-specific deployment names are runtime-resolved;
 *     we document the underlying OpenAI model family, not per-customer deployment names.
 *   - Ollama: models are runtime-discovered from the local instance;
 *     the catalog lists canonical upstream names only.
 *
 * Spec: P3-LLM-CATALOG (SupportedModelsCatalog)
 *
 * @connexum/ai-governance
 */
/**
 * Canonical provider identifier used throughout the governance runtime.
 * Matches provider IDs in provider-compliance.ts and adapter `providerId` fields.
 */
export type ProviderName = 'anthropic' | 'openai' | 'google' | 'gemini' | 'azure-openai' | 'bedrock' | 'deepseek' | 'replicate-llama' | 'huggingface' | 'ollama';
/**
 * Qualitative pricing tier -- do NOT use for $/token calculations.
 *   frontier  -- largest, most capable, highest cost
 *   standard  -- mainstream, good balance of capability and cost
 *   efficient -- fast and cheap, suitable for high-volume tasks
 *   embedded  -- intended for on-device / self-hosted use
 */
export type PricingTier = 'frontier' | 'standard' | 'efficient' | 'embedded';
/**
 * Model lifecycle status.
 */
export type ModelStatus = 'preview' | 'general-availability' | 'deprecated' | 'sunset-scheduled';
/**
 * Governance tier matching the master plan (AGENT_TYPE_COVERAGE_STRATEGY.md):
 *   tier-1-primary       -- fully tested, compliance-validated, production-ready
 *   tier-2-supported     -- supported with known limitations documented
 *   tier-3-experimental  -- experimental; not recommended for regulated workloads
 */
export type GovernanceProfile = 'tier-1-primary' | 'tier-2-supported' | 'tier-3-experimental';
/** Content modality a model can process or generate. */
export type ModelModality = 'text' | 'vision' | 'audio';
export interface ModelMetadata {
    /** Provider-canonical model ID, e.g. 'gpt-4o-2024-08-06' */
    modelId: string;
    /** User-facing label, e.g. 'GPT-4o (Aug 2024)' */
    displayName: string;
    /** Provider this model belongs to */
    provider: ProviderName;
    /**
     * Normalised model family string.
     * Examples: 'claude-4', 'gpt-4', 'llama-3.1', 'gemini-1.5', 'mistral-large'
     */
    family: string;
    /** Approximate maximum context window in tokens (conservative lower bound) */
    maxContextTokens: number;
    /** Model supports function / tool calling */
    supportsToolCalls: boolean;
    /** Model supports streaming responses */
    supportsStreaming: boolean;
    /** Model can process image inputs */
    supportsVision: boolean;
    /** Model can process audio inputs */
    supportsAudio: boolean;
    /** Derived but explicit list of supported modalities */
    modality: ModelModality[];
    /**
     * Qualitative pricing tier.
     * Never use this for $/token calculations -- use provider pricing pages.
     */
    pricingTier: PricingTier;
    /** Year-month of GA or first public availability, e.g. '2024-08' */
    releasedAt: string;
    /** Model lifecycle status */
    status: ModelStatus;
    /** Governance tier -- matches master plan tiers */
    governanceProfile: GovernanceProfile;
    /** Optional free-form notes for governance team */
    notes?: string;
}
/**
 * The canonical model catalog. Frozen at module load time.
 * Do NOT mutate. Access via query functions below.
 */
export declare const SUPPORTED_MODELS_CATALOG: readonly ModelMetadata[];
/**
 * Look up a model by its exact provider-canonical model ID.
 * Returns null if not found.
 */
export declare function getModelById(modelId: string): ModelMetadata | null;
/**
 * Return all models for a given provider.
 * Returns [] for unknown or empty provider.
 */
export declare function getModelsByProvider(provider: ProviderName | string): ModelMetadata[];
/**
 * Return all models with a given governance profile.
 * Returns [] for unknown or empty profile.
 */
export declare function getModelsByGovernanceProfile(profile: GovernanceProfile | string): ModelMetadata[];
/**
 * Return all models supporting a given capability.
 * Returns [] for unknown capability or empty input.
 */
export declare function getModelsByCapability(capability: 'tool-calls' | 'streaming' | 'vision' | 'audio' | string): ModelMetadata[];
//# sourceMappingURL=supported-models-catalog.d.ts.map