/** * Validation for the Opta ID tables. * * Opta's reference, the Stats Perform F24 appendices, has no machine-readable * form, so data/opta-truth.json is kept by hand: each ID the docs use, * with the label the docs give it, checked against F24. The tests then hold the * docs to that file, and reject meanings that were wrong in earlier versions of * the docs (Q76 as big chance, Q213 as xG and so on) wherever they reappear. */ export declare const OPTA_TRUTH_PATH: string; export interface OptaTruth { source: { reference: string; url: string; checked: string; note: string; }; /** typeId -> event type name. */ eventTypes: Record; /** qualifierId -> the label docs/opta/qualifiers.md gives it. */ qualifiers: Record; } export interface OptaDoc { path: string; text: string; } export interface OptaViolation { path: string; line: number; message: string; } export declare function loadOptaTruth(): OptaTruth; /** * Meanings earlier docs gave these IDs, all wrong. The pattern matches the ID * and the wrong meaning in one clause, in either order, and in a row of an Opta * qualifier table. A clause that negates the claim ("Q213 is the pass angle, not * xG", "Do not read qualifier 213 as xG") is allowed. */ export declare const WRONG_MEANINGS: Array<{ id: number; meaning: string; pattern: RegExp; }>; export declare function validateOptaDocs(docs: OptaDoc[], truth: OptaTruth): OptaViolation[];