/**
 * src/constitution/signal.ts
 *
 * Publishes soft constitutional scorer results to Brain episodic memory.
 * Decouples the scoring pipeline from Brain I/O — purely an adapter.
 *
 * @module constitution/signal
 */
import type { EpisodicMemoryPort } from "../ports/brain.js";
import type { AxiomId, CycleSnapshot } from "./types.js";
/**
 * Minimal Brain port required by publishSignal.
 * Requires only the episodic tier (Tier 2).
 */
export interface SignalBrainPort {
    episodic?: EpisodicMemoryPort;
}
/**
 * Publish a constitutional soft-score signal to Brain episodic memory.
 *
 * Tags: ["constitution_signal", axiomId]
 *
 * @param brainPort  - Host-injected BrainPort. If `episodic` is absent, no-ops silently.
 * @param cycle      - The cycle that was scored.
 * @param axiomId    - The axiom that produced the score.
 * @param score      - Normalised score in [0, 1].
 * @param rationale  - Human-readable scoring rationale for audit.
 */
export declare function publishSignal(brainPort: SignalBrainPort, cycle: CycleSnapshot, axiomId: AxiomId, score: number, rationale: string): Promise<void>;
export interface AxiomScoreEntry {
    axiomId: AxiomId;
    score: number;
    rationale: string;
}
/**
 * Publish all axiom scores for a single cycle to Brain episodic.
 * Fires all records in parallel; individual failures are re-thrown as an
 * AggregateError to avoid silent drops.
 */
export declare function publishAllSignals(brainPort: SignalBrainPort, cycle: CycleSnapshot, scores: AxiomScoreEntry[]): Promise<void>;
//# sourceMappingURL=signal.d.ts.map