/**
 * pipeline/profile-resolution.ts
 *
 * Resolves the correct weight profile for a given (mode, perspective, variant)
 * tuple. The scoring engine calls this to determine which dimensions and
 * weights apply to each test entry's composite score.
 *
 * Resolution order:
 *   1. Nested binding (variant provided):
 *      mode-profiles.<mode>.<variant>.<perspective> → profile name
 *   2. Flat binding (no variant):
 *      mode-profiles.<mode>.<perspective> → profile name
 *   3. Fallback: the "default" profile
 *
 * Supports both the new `profiles` format and the legacy flat `weights`
 * format (treated as a single profile named "default").
 *
 * @see docs/design-docs/named-scoring-profiles.md
 */
import type { RubricConfig, WeightProfile } from "../_vendor/ailf-core/index.d.ts";
/**
 * Resolve all named profiles from a RubricConfig, normalizing the legacy
 * flat `weights` format into a `profiles` map with a single "default" entry.
 *
 * @returns A map of profile names → weight maps. Always includes "default".
 */
export declare function resolveProfiles(config: RubricConfig): Record<string, WeightProfile>;
/**
 * Resolve the weight profile for a specific (mode, perspective, variant) tuple.
 *
 * @param mode        - Canonical mode (e.g., "literacy", "mcp-server")
 * @param perspective - Entry perspective: "gold" (with docs) or "baseline" (without docs)
 * @param config      - Parsed rubrics config
 * @param variant     - Optional variant within the mode (e.g., "baseline", "agentic" for literacy)
 * @returns The resolved weight profile (dimension → weight map)
 *
 * @example
 *   // Nested: literacy mode with variant sub-keys
 *   resolveProfile("literacy", "gold", config, "baseline")     // → default profile
 *   resolveProfile("literacy", "baseline", config, "baseline")  // → output-only profile
 *   resolveProfile("literacy", "gold", config, "agentic")       // → default profile
 *
 *   // Flat: non-literacy modes
 *   resolveProfile("mcp-server", "gold", config)                // → mcp-behavior profile
 *   resolveProfile("unknown-mode", "gold", config)              // → default (fallback)
 */
export declare function resolveProfile(mode: string, perspective: string, config: RubricConfig, variant?: string): WeightProfile;
