import type { EngineQualityTier } from './engine-base.js';
/**
 * Returns the static quality tier for a given engine name. Defaults to
 * 'medium' when the engine is not in the registry — this protects the
 * pipeline from blowing up on plugin engines while still letting S11c
 * apply a sensible weight.
 */
export declare function engineQualityTier(name: string): EngineQualityTier;
/**
 * Slice S11c: tier → RRF weight mapping. High-tier engines (structured
 * first-party APIs) contribute full weight; low-tier engines (sparse
 * snippets, fallback-only payloads) contribute half. Medium sits between
 * so most scraped HTML engines stay close to today's behavior.
 *
 *   high   → 1.0
 *   medium → 0.7
 *   low    → 0.5
 */
export declare const QUALITY_WEIGHTS: Record<EngineQualityTier, number>;
/**
 * RRF weight multiplier for a quality tier. S11c flips this from inert (1.0
 * for every tier) to the per-tier weights above so the orchestrator can
 * weight engine contributions by evidence quality.
 */
export declare function qualityRrfMultiplier(tier: EngineQualityTier): number;
/**
 * Resolve the effective RRF weight for an engine. Precedence:
 *   1. caller-supplied tier (e.g. EngineEntry.quality from S11b) — wins
 *      because the per-vertical entry is the most specific source of truth.
 *   2. quality tier (via the static registry above) — for engines that
 *      haven't been classified by a vertical-level entry yet.
 *   3. legacyWeight (per-vertical numeric override) — preserves existing
 *      behaviour for plugin engines that ship a custom weight.
 *   4. 1.0 default.
 *
 * This is what the orchestrator should call before fusing engine outcomes
 * — it keeps the tier lookup centralized so callers don't sprinkle
 * engineQualityTier() / qualityRrfMultiplier() throughout the pipeline.
 *
 * Forward-compat: an unknown tier string is treated as the safe default
 * (legacyWeight or 1.0) so a future extension to additional tiers
 * (e.g. 'premium') won't crash older orchestrator code in the field.
 */
export declare function resolveEngineWeight(name: string, legacyWeight?: number, callerTier?: EngineQualityTier | string): number;
/**
 * Test-only: snapshot of the full registry for assertions like "every
 * registered engine has a tier". Exported for tests so we do not have to
 * inline the map again.
 */
export declare function _enginesWithQualityForTest(): ReadonlyArray<[string, EngineQualityTier]>;
//# sourceMappingURL=engine-quality.d.ts.map