export type HelperTaskType = 'explore' | 'summarize' | 'test-triage' | 'memory-extract' | 'edit' | 'plan' | 'review' | 'general';
export type ModelTier = 'small' | 'default' | 'strong' | 'fallback';
export type TaskRisk = 'low' | 'medium' | 'high';
export interface ModelRoutingPolicy {
    smallModel?: string;
    defaultModel?: string;
    strongModel?: string;
    fallbackModel?: string;
    promptLengthEscalationThreshold?: number;
    failureEscalationThreshold?: number;
    confidenceEscalationThreshold?: number;
}
export interface ModelRoutingInput {
    taskType: HelperTaskType;
    prompt?: string;
    requestedRisk?: TaskRisk;
    requiresWrite?: boolean;
    previousFailures?: number;
    confidence?: number;
}
export interface ModelRoutingDecision {
    tier: ModelTier;
    model?: string;
    escalated: boolean;
    reasons: string[];
}
export interface HelperAgentPreset {
    type: HelperTaskType;
    name: string;
    systemPrompt: string;
    maxTurns: number;
    defaultRisk: TaskRisk;
    allowWrites: boolean;
}
export interface RoutingMetricInput {
    tier?: string;
    model?: string;
    escalated?: boolean;
    reasons?: string[];
    success: boolean;
    durationMs?: number;
}
export interface RoutingMetricBucket {
    count: number;
    success: number;
    failure: number;
    successRate: number;
}
export interface RoutingMetricsSummary {
    total: number;
    success: number;
    failure: number;
    successRate: number;
    escalationRate: number;
    byTier: Record<string, RoutingMetricBucket>;
    byModel: Record<string, RoutingMetricBucket>;
    topReasons: Array<{
        reason: string;
        count: number;
    }>;
}
export interface ModelRoutingCalibration {
    summary: RoutingMetricsSummary;
    suggestedPolicy: Partial<ModelRoutingPolicy>;
    recommendations: string[];
}
export interface RegistryModelRoutingEntry {
    id?: string;
    model_name: string;
    role: string;
    enabled: boolean;
}
export declare const HELPER_AGENT_PRESETS: Record<HelperTaskType, HelperAgentPreset>;
export declare function selectModelForTask(input: ModelRoutingInput, policy?: ModelRoutingPolicy): ModelRoutingDecision;
export declare function getHelperAgentPreset(type: HelperTaskType): HelperAgentPreset;
export declare function createHelperAgentConfig(input: ModelRoutingInput, policy?: ModelRoutingPolicy): {
    name: string;
    systemPrompt: string;
    model?: string;
    maxTurns: number;
    routing: ModelRoutingDecision;
};
export declare function createModelRoutingPolicyFromRegistry(models: RegistryModelRoutingEntry[]): ModelRoutingPolicy;
export declare function summarizeRoutingMetrics(metrics: RoutingMetricInput[]): RoutingMetricsSummary;
export declare function calibrateModelRoutingPolicy(metrics: RoutingMetricInput[], currentPolicy?: ModelRoutingPolicy): ModelRoutingCalibration;
//# sourceMappingURL=modelRouting.d.ts.map