import type { LedgerProjection } from '../ledger/projection.js'; import { type Recommendation } from './recommendations.js'; import type { NudgeHistory } from './nudge-store.js'; export declare const NUDGE_POLICY_VERSION: "nudges.v1"; export declare function assertNudgePolicyVersion(value: string): asserts value is typeof NUDGE_POLICY_VERSION; export declare function isNudgePolicyVersion(value: unknown): value is typeof NUDGE_POLICY_VERSION; export declare const NUDGE_CODES: readonly ["SIDE_EFFECT_OUTCOME_UNKNOWN", "UNRESOLVED_FAILURE", "VERIFY_AFTER_MUTATION"]; export type NudgeCode = (typeof NUDGE_CODES)[number]; export interface NudgeCandidate { readonly code: NudgeCode; readonly occurrenceId: string; readonly priority: number; readonly message: string; readonly evidenceEventIds: readonly string[]; readonly referenceIds: readonly string[]; } export interface DeliveredNudge { readonly occurrenceId: string; readonly code: NudgeCode; readonly message: string; readonly evidenceEventIds: readonly string[]; readonly referenceIds: readonly string[]; readonly priority: number; readonly policyVersion: typeof NUDGE_POLICY_VERSION; } export interface NudgeRateLimitPolicy { maxPerResponse: 1; maxPerRun: number; minSequenceDistancePerCode: number; } export declare const NUDGE_PRIORITY: Readonly>; export declare const NUDGE_MESSAGES: Readonly>; export declare const DEFAULT_NUDGE_RATE_LIMIT: NudgeRateLimitPolicy; export declare function deriveNudgeCandidates(projection: LedgerProjection, recommendations: readonly Recommendation[]): NudgeCandidate[]; export declare function selectNudge(candidates: readonly NudgeCandidate[], history: NudgeHistory, throughSequence: number, policy?: NudgeRateLimitPolicy): NudgeCandidate | null; export declare function buildDeliveredNudge(candidateValue: NudgeCandidate): DeliveredNudge; export declare function assertNudgeCode(value: string): asserts value is NudgeCode; //# sourceMappingURL=nudges.d.ts.map