import type { ConstraintClass } from './constraints.ts'; /** * Every tunable number in one place. * * These are policy, not law. The design record (DECISIONS.md) fixes the shape of * the model; the values here are PoC defaults chosen to be revised once the proof * of concept meets real traffic. */ /** Hours. Time for existing evidence to lose half its weight. D3. */ export declare const DEFAULT_HALF_LIFE_HOURS = 24; /** Hours without a meaningful update before state is deleted outright. D6. */ export declare const DEFAULT_RETENTION_HOURS: number; /** Evidence mass per observation, by strength. D4. */ export declare const DEFAULT_WEIGHTS: { readonly weak: 0.5; readonly strong: 2; }; /** * Mass contributed by a violated `soft` invariant. D38. * * Strong, not weak: the host deliberately declared that this should not happen. * That it is not provable does not make it faint: weak weight is for signals SG * inferred on its own. */ export declare const DEFAULT_SOFT_VIOLATION_WEIGHT: 2; /** Trust bands over E[p], read as "at least this mean". D5. */ export declare const DEFAULT_TRUST_BANDS: readonly [{ readonly atLeast: 0.8; readonly band: "trusted"; }, { readonly atLeast: 0.6; readonly band: "observe"; }, { readonly atLeast: 0.4; readonly band: "friction"; }, { readonly atLeast: 0.2; readonly band: "restrict"; }, { readonly atLeast: 0; readonly band: "deny"; }]; /** * Epistemic stages over evidence mass `n = alpha + beta`. D5, revised. * * Read as "at least this much evidence". A fresh entity has `n = 2`, the prior * alone: and must land in `unknown`, because lack of evidence is not negative * evidence. * * The boundaries are tied to the D5 trajectory rather than picked freely: `3` is * roughly where a second observation has arrived and the mean starts meaning * something, `7` is roughly where low uncertainty becomes reachable at all. */ export declare const DEFAULT_EPISTEMIC_STAGES: readonly [{ readonly atLeast: 7; readonly stage: "established"; }, { readonly atLeast: 3; readonly stage: "developing"; }, { readonly atLeast: 0; readonly stage: "unknown"; }]; export type EpistemicStage = (typeof DEFAULT_EPISTEMIC_STAGES)[number]['stage']; /** Uncertainty bands over Var[p], read as "at most this variance". D5. */ export declare const DEFAULT_UNCERTAINTY_BANDS: readonly [{ readonly atMost: 0.02; readonly level: "low"; }, { readonly atMost: 0.05; readonly level: "medium"; }, { readonly atMost: number; readonly level: "high"; }]; export type TrustBand = (typeof DEFAULT_TRUST_BANDS)[number]['band']; export type UncertaintyLevel = (typeof DEFAULT_UNCERTAINTY_BANDS)[number]['level']; /** * What a proven violation advises, by default. * * D14 is explicit that "hard" describes the certainty of the violation, not the * severity of the treatment: so SG must advise *something* without claiming the * authority to enforce. `RESTRICT` rather than `BLOCK` keeps the final escalation * with the host. * * One value for every constraint class, because SG has no basis for ranking them: * all seven are equally *proven*, and how much a given impossibility should cost * is a property of the host's flow, not of the class. Hosts that do have a basis * override per class, see `HardViolationPolicy`. */ export declare const DEFAULT_HARD_VIOLATION_DECISION = "RESTRICT"; /** * Advice for proven violations: one decision for all classes, or per class. D41. * * The per-class form is partial, classes left out fall back to * `DEFAULT_HARD_VIOLATION_DECISION`, so declaring one exception does not oblige a * host to restate the other six. */ export type HardViolationDecision = 'INCREASE_FRICTION' | 'RESTRICT' | 'BLOCK'; export type HardViolationPolicy = HardViolationDecision | { readonly [K in ConstraintClass]?: HardViolationDecision; }; /** What a violation of this class advises, honouring a per-class override. D41. */ export declare function hardViolationDecision(policy: HardViolationPolicy, violationClass: ConstraintClass): HardViolationDecision; export type Policy = { readonly halfLifeHours: number; readonly retentionHours: number; readonly weights: { readonly weak: number; readonly strong: number; }; readonly softViolationWeight: number; readonly hardViolationDecision: HardViolationPolicy; /** Mass thresholds for the epistemic stages. */ readonly developingAt: number; readonly establishedAt: number; }; export declare const DEFAULT_POLICY: Policy; //# sourceMappingURL=policy.d.ts.map