/**
 * Model Execution Profiles
 *
 * Evidence-based feature flag presets optimized for specific model families.
 * Each profile was derived from benchmark data (Harbor Terminal-Bench, 10 tasks).
 *
 * Key insight from 13 benchmark runs:
 *   - Small models (≤7B active params): LESS is MORE. Lean instructions,
 *     no conversation injection, domain hints only.
 *   - Medium models (13-30B active): Can handle moderate injection.
 *     Reflection checkpoints help. Search is neutral.
 *   - Large models (70B+): Can handle everything. Search, reflection,
 *     budget pressure, strategy switching all help.
 *
 * Usage:
 *   const profile = getExecutionProfile('qwen3.5-35b');
 *   // or auto-detect:
 *   const profile = detectExecutionProfile('qwen/qwen35-a3b-iq4xs');
 */
import type { AgentExecutionConfig } from '../types/config.js';
export interface ExecutionProfile {
    /** Profile identifier */
    id: string;
    /** Human-readable name */
    name: string;
    /** Model families this profile applies to */
    modelPatterns: RegExp[];
    /** Estimated active parameters (for auto-sizing) */
    activeParamsBillions: number;
    /** Feature flag overrides */
    config: Partial<AgentExecutionConfig>;
    /** Rationale for this configuration */
    rationale: string;
    /** Quantization hints for local models (llama.cpp) */
    quantizationHint?: {
        low: string;
        medium: string;
        high: string;
    };
}
/**
 * Get a profile by ID.
 */
export declare function getExecutionProfile(profileId: string): ExecutionProfile | undefined;
/**
 * Auto-detect the best execution profile for a model name/ID.
 *
 * Matches against model patterns in order of specificity.
 * Falls back to size-based heuristic if no pattern matches.
 *
 * @param modelName - Model name or ID (e.g., "claude-opus-4.6", "qwen/qwen35-a3b-iq4xs")
 * @returns The best matching profile
 */
export declare function detectExecutionProfile(modelName: string): ExecutionProfile;
/**
 * Get the merged config for a model: profile defaults + user overrides.
 *
 * @param modelName - Model name for auto-detection
 * @param userOverrides - User's agentExecution config from .uap.json
 * @returns Merged config with profile defaults and user overrides
 */
export declare function getExecutionConfig(modelName: string, userOverrides?: Partial<AgentExecutionConfig>): {
    profile: ExecutionProfile;
    config: AgentExecutionConfig;
};
/**
 * Load agentExecution overrides from .uap.json config file.
 * Returns undefined if no config or no agentExecution section found.
 */
export declare function loadAgentExecutionOverrides(projectDir?: string): Partial<AgentExecutionConfig> | undefined;
/**
 * Get execution config with automatic config file loading.
 * Convenience wrapper that loads .uap.json overrides automatically.
 */
export declare function getExecutionConfigWithProjectOverrides(modelName: string, projectDir?: string): {
    profile: ExecutionProfile;
    config: AgentExecutionConfig;
};
/**
 * List all available profiles.
 */
export declare function listExecutionProfiles(): ExecutionProfile[];
//# sourceMappingURL=execution-profiles.d.ts.map