/**
 * @license
 * Copyright 2026 Amodal Labs, Inc.
 * SPDX-License-Identifier: MIT
 */
import type { ModelConfig } from '@amodalai/types';
export declare const MODELS_CATALOG_API_PATH = "/api/models/catalog";
export declare const MODEL_CONFIG_FILE_PATH = "amodal.json";
export interface RuntimeProviderStatus {
    provider: string;
    envVar: string;
    keySet: boolean;
    verified: boolean;
}
export interface ModelCatalogRuntimeConfig {
    models?: Record<string, ModelConfig>;
    providerStatuses?: RuntimeProviderStatus[];
}
export interface ModelCatalogPricing {
    inputPerMToken: number;
    outputPerMToken: number;
    cacheReadPerMToken?: number;
    cacheWritePerMToken?: number;
}
export type ModelCatalogPricingTable = Record<string, ModelCatalogPricing>;
export interface ModelCatalogEntry {
    provider: string;
    model: string;
    label: string;
    context: string;
    inputPerMToken: number;
    outputPerMToken: number;
    cacheReadPerMToken?: number;
    cacheWritePerMToken?: number;
    configuredAliases: string[];
    isCurrent: boolean;
    keySet: boolean;
    verified: boolean;
}
export interface ModelCatalogResponse {
    currentModel: ModelConfig | null;
    configuredModels: Array<{
        alias: string;
        config: ModelConfig;
    }>;
    providerStatuses: RuntimeProviderStatus[];
    models: ModelCatalogEntry[];
    source: 'runtime' | 'draft';
    draftPath?: typeof MODEL_CONFIG_FILE_PATH;
}
export interface ModelCatalogSaveRequest {
    model: ModelConfig;
}
export interface ModelCatalogSaveResponse extends ModelCatalogResponse {
    source: 'draft';
    draftPath: typeof MODEL_CONFIG_FILE_PATH;
}
export declare function buildModelCatalog(runtimeConfig: ModelCatalogRuntimeConfig, pricingTable: ModelCatalogPricingTable, source?: ModelCatalogResponse['source']): ModelCatalogResponse;
export declare function buildModelConfigSnippet(model: ModelCatalogEntry): string;
export declare class ModelCatalogConfigError extends Error {
    constructor(message: string, options?: ErrorOptions);
}
export declare function parseModelConfigFile(content: string): Record<string, unknown>;
export declare function readModelsFromConfigFile(content: string): Record<string, ModelConfig> | null;
export declare function writeMainModelToConfigFile(content: string, model: ModelConfig): string;
