import type { ModelRegistryEntry, ModelRole } from './modelRegistry';
import { ModelRegistry } from './modelRegistry';
export type RouterTaskType = 'classification' | 'summarisation' | 'task_extraction' | 'note_cleanup' | 'daily_reminder' | 'log_scanning' | 'memory_compression' | 'codebase_scanning' | 'code_edit' | 'debugging' | 'test_explanation' | 'embedding' | 'vector_search' | 'architecture' | 'complex_reasoning' | 'ambiguous_planning' | 'difficult_debugging' | 'final_review' | 'json_validation' | 'general';
export interface ModelRoutingResult {
    model: ModelRegistryEntry | undefined;
    role: ModelRole;
    reason: string;
    fallback: boolean;
}
export declare class ModelRouter {
    private registry;
    constructor(registry: ModelRegistry);
    /** Select the best model for a task. */
    route(taskType: RouterTaskType): ModelRoutingResult;
    /** Route with a preference for local-only (privacy-sensitive). */
    routeLocal(taskType: RouterTaskType): ModelRoutingResult;
    /** Route with a preference for cloud (complex task). */
    routeCloud(taskType: RouterTaskType): ModelRoutingResult;
    /** Check if cloud models are available and worth the cost for a task. */
    shouldEscalateToCloud(taskType: RouterTaskType): boolean;
    /** Get routing explanation for a task. */
    explain(taskType: RouterTaskType): string;
}
//# sourceMappingURL=modelRouter.d.ts.map