export interface ComparisonFamilyV1 { comparisonFamilyId: string; frozenPairIds: string[]; comparisonCount: number; } export interface ConsensusRevision2Metadata { familywiseAlpha: 0.05; maxLooks: number; currentLook: number; comparisonFamilyId: string; comparisonCount: number; alpha: number; lowerQuantile: number; upperQuantile: number; frozenPairIds: string[]; resamples: number; seed: string; sampleCount: number; coverage: number; } export type ComparisonVerdict = "winner" | "tie" | "inconclusive"; export interface ComparisonResult { comparisonId: string; mean: number; lower: number; upper: number; verdict: ComparisonVerdict; metadata: ConsensusRevision2Metadata; } export type ConsensusRevision2Validation = { ok: true; } | { ok: false; reason: string; }; export declare const PROTOCOL_MINIMUM_MATCHED_UNITS = 6; export declare const PROTOCOL_BOOTSTRAP_RESAMPLES = 10000; export type ValidatedStopReasonFamily = "confidence" | "budget" | "exhaustion" | "cancellation" | "failure"; export type ValidatedRunStatus = "refuse" | "continue" | "winner" | "tie" | "inconclusive"; export interface ValidatedSamplingDecision { status: ValidatedRunStatus; stopReason: ValidatedStopReasonFamily | null; stopDetail?: string; matchedUnits: number; requiredMatchedUnits: number; evidenceGate: "passed" | "min-matched-units" | "scenario-coverage" | "statistics-metadata" | "approved-budget-too-small"; result?: ComparisonResult; } export interface ValidatedSamplingInput { matchedUnits: number; minimumMatchedUnits?: number; approvedMaximumMatchedUnits?: number; scenarioFamilyCounts?: Record; requiredScenarioFamilies?: string[]; comparisonResults?: ComparisonResult[]; budgetReached?: boolean; budgetDetail?: string; exhausted?: boolean; cancelled?: boolean; failure?: boolean; } export declare function freezeComparisonFamily(input: { comparisonFamilyId: string; armIds: string[]; }): ComparisonFamilyV1; export declare function protocolFingerprint(input: { family: ComparisonFamilyV1; maxLooks: number; resamples: number; seed: string; }): string; export declare function comparePairedDifferences(input: { comparisonId: string; comparisonFamily: ComparisonFamilyV1; differences: number[]; maxLooks: number; currentLook: number; resamples?: number; seed: string; practicalDifference?: number; }): ComparisonResult; export declare function decideValidatedSampling(input: ValidatedSamplingInput): ValidatedSamplingDecision; export declare function validateConsensusRevision2Metadata(result: ComparisonResult, matchedUnits?: number): ConsensusRevision2Validation; export declare function validateConsensusRevision2MetadataFields(metadata: ConsensusRevision2Metadata, options?: { comparisonId?: string; matchedUnits?: number; }): ConsensusRevision2Validation;