/**
 * src/constitution/scorer.ts
 *
 * Constitutional scoring — one ScoringFunction per axiom.
 * Each scorer aggregates SignalPoints from its axiom and normalises to [0, 1].
 *
 * Custom scorers can be registered via the ScorerRegistry.
 *
 * @module constitution/scorer
 */
import type { AxiomId, CycleSnapshot, SignalPoint } from "./types.js";
export interface ScoringResult {
    /** Normalised score in [0, 1]. */
    score: number;
    /** Human-readable rationale for audit. */
    rationale: string;
    /** The raw signal points used to produce this score. */
    signals: SignalPoint[];
}
/**
 * A function that takes a CycleSnapshot and returns a scored result.
 * May be async to allow future LLM-graded scorers.
 */
export type ScoringFunction = (cycle: CycleSnapshot) => Promise<ScoringResult>;
/** Scorer for the Institutionnel axiom. */
export declare const institutionnelScorer: ScoringFunction;
/** Scorer for the SOTA axiom. */
export declare const sotaScorer: ScoringFunction;
/** Scorer for the Robuste axiom. */
export declare const robusteScorer: ScoringFunction;
/** Scorer for the AntiFragile axiom. */
export declare const antiFragileScorer: ScoringFunction;
/** Scorer for the Profitable axiom. */
export declare const profitableScorer: ScoringFunction;
export interface RegisteredScorer {
    axiomId: AxiomId | string;
    scorer: ScoringFunction;
}
/**
 * ScorerRegistry — holds built-in and custom scorers.
 *
 * Built-in scorers are pre-registered for all 5 axioms.
 * Custom scorers can override or extend the registry.
 */
export declare class ScorerRegistry {
    private readonly scorers;
    constructor();
    /**
     * Register (or replace) a scorer for the given axiomId.
     */
    register(axiomId: AxiomId | string, scorer: ScoringFunction): void;
    /**
     * Retrieve a scorer by axiomId. Returns undefined if not registered.
     */
    get(axiomId: AxiomId | string): ScoringFunction | undefined;
    /**
     * Score a cycle against all registered scorers in parallel.
     */
    scoreAll(cycle: CycleSnapshot): Promise<Map<string, ScoringResult>>;
    /**
     * List all registered axiom IDs.
     */
    list(): string[];
}
/** Singleton default registry pre-loaded with all 5 built-in scorers. */
export declare const defaultScorerRegistry: ScorerRegistry;
//# sourceMappingURL=scorer.d.ts.map