export type ModelRole = 'local.general' | 'local.coder' | 'local.summariser' | 'local.embedder' | 'cloud.reasoner' | 'cloud.reviewer';
export type CostLevel = 'free' | 'low' | 'medium' | 'high';
export type PrivacyLevel = 'local' | 'private_cloud' | 'public_cloud';
export type SpeedLevel = 'fast' | 'medium' | 'slow';
export interface ModelRegistryEntry {
    id: string;
    provider: string;
    base_url?: string;
    model_name: string;
    role: ModelRole;
    strengths: string[];
    weaknesses: string[];
    cost_level: CostLevel;
    privacy_level: PrivacyLevel;
    speed_level: SpeedLevel;
    max_context: number;
    supports_json: boolean;
    supports_tools: boolean;
    default_temperature: number;
    enabled: boolean;
}
export interface ModelRegistryManifest {
    version: 1;
    updated_at: string;
    models: ModelRegistryEntry[];
}
export declare const BUILTIN_MODEL_REGISTRY: ModelRegistryEntry[];
export declare class ModelRegistry {
    private models;
    constructor(models?: ModelRegistryEntry[]);
    /** Get a model by ID. */
    get(id: string): ModelRegistryEntry | undefined;
    /** Register or update a model. */
    register(model: ModelRegistryEntry): void;
    /** Remove a model. */
    remove(id: string): boolean;
    /** List all models. */
    list(): ModelRegistryEntry[];
    /** List enabled models only. */
    enabled(): ModelRegistryEntry[];
    /** Find models by role. */
    byRole(role: ModelRole): ModelRegistryEntry[];
    /** Find the best model for a role, preferring enabled + lower cost. */
    bestForRole(role: ModelRole): ModelRegistryEntry | undefined;
    /** Find models that support tool calling. */
    withToolSupport(): ModelRegistryEntry[];
    /** Find local models only. */
    localModels(): ModelRegistryEntry[];
    /** Find cloud models only. */
    cloudModels(): ModelRegistryEntry[];
    /** Export the registry as a manifest. */
    toManifest(): ModelRegistryManifest;
    /** Load from a manifest. */
    static fromManifest(manifest: ModelRegistryManifest): ModelRegistry;
}
//# sourceMappingURL=modelRegistry.d.ts.map