/** ADR-112 — a rule's producer kind (the `provenance.kind` discriminator). */ export type ProducerKind = 'mined' | 'authored'; /** * The producer-kind override config (ADR-112 §9). Each field is an upstream * contract behaviour that authoring changes relative to mining: * - `labelScope` — §9: mined labels the held-out slice only; authored * must label EVERY non-control firing across BOTH * slices, else a train-slice FP has no label and * escapes the precision-1.0 FAIL. * - `positiveControlSide` — §6: mined positive controls are held-out; authored * positive controls are TRAIN-side (the rule is * authored against the train slice). * - `exposureControlSide` — §5.3: which slice `positiveControlsExercised` * counts. Mirrors `positiveControlSide`. * - `positiveControlGate` — §4 (strategy#777 Q3(ii)): how a positive control is * admitted. Mined controls are corpus-firing evidence * (`none`); authored controls must clear the * preimage-differential gate (fire-on-preimage / * silent-on-postimage). FROZEN-ENUM DATA only — no * consumer branches on the table itself (Tenet 9); the * authored-controls builder READS it as the §9 home. */ export interface RulePolicy { readonly labelScope: 'held-out-only' | 'whole-window'; readonly positiveControlSide: 'held-out' | 'train'; readonly exposureControlSide: 'held-out' | 'train'; readonly positiveControlGate: 'none' | 'preimage-differential'; } /** * ADR-112 §9 — resolve the override config for a producer kind. Pure + * exhaustive over the 2-value union. The MINED branch is the live, byte-identical * path; the AUTHORED branch is defined for slice D's consumers (not yet wired). */ export declare function getRulePolicy(kind: ProducerKind): RulePolicy; //# sourceMappingURL=rule-policy.d.ts.map