/** * The two axes a competition or a team varies on: `gender` × `squad`. * * They are two fields because one could not hold both. The single `category` * (men | women | youth) they replaced said age or gender and dropped the * other, and both collections were paying for it: * * - 202 production teams are women + youth and surfaced as `youth`, * indistinguishable from the 1,007 men's youth sides. * - 10 leagues carry both a gender and an age marker in their name and were * filed INCONSISTENTLY IN BOTH DIRECTIONS — "World Cup - U17 - Women" as * `women`, "CONMEBOL - U17 Femenino" as `youth`. Same shape, two answers. * - Reserve competitions had nowhere to go at all: Belgium's Reserve Pro * League and the Belarus, Netherlands and Argentina Reserve Leagues all * sat as `men`, level with a senior second tier. * * Teams settled the shape on 2026-08-05 and this module is that decision made * shared. `category` was kept alongside as a derived value while the consumers * moved across, and C6 deleted it. */ import { Gender, Squad, GENDERS, SQUADS } from "@weekendgoals/weekendgoals-types/dist/classification"; export { Gender, Squad, GENDERS, SQUADS }; /** * Reserve and development competitions. Distinct from youth: a reserve side is * a club's second team playing senior football, and the competitions they play * in are their own — Belgium's Reserve Pro League, the Netherlands' and * Argentina's Reserve Leagues. * * The U21/U23 development competitions (Premier League 2, Netherlands U21 * Divisie 1, Liga Revelação U23) are deliberately NOT matched here: they also * carry an age marker, the two readings are genuinely arguable, and a rule that * silently picks one would hide the question. They come back as youth and the * proposal flags them for a human. */ export declare const RESERVE_PATTERN: RegExp; /** * What a name says about each axis, independently. Either may be absent — a * name that says nothing about gender is not evidence of "men", it is silence, * and the caller decides what to do with that. */ export declare function markersFromName(name: string): { gender?: Gender; squad?: Squad; /** * How much the squad reading can be trusted against other evidence. * `strong` is an explicit age code. `weak` is a word that shows up in * perfectly senior names — Atlético **Junior**, **Primavera** SP, Newington * **Youth**, Migori **Youth**, and Australia's Victoria **Premier League 2**, * all of which this used to call youth sides. A weak marker must not beat * the competition a team actually plays in. */ squadConfidence?: "strong" | "weak"; }; /** * Who a competition or a team is for, as one ordered list — **squad-major**, * so a reserve or youth side sits below every senior one whatever its tier. * * | | men | women | * |---|---|---| * | senior | 0 | 1 | * | reserve | 2 | 3 | * | youth | 4 | 5 | * * This is the order `?topRanks=N` groups matches by (`MatchesMongoDao`, * "How a match is ranked" in api-gateway/CLAUDE.md) and the order search * results are demoted in. It lives here rather than in either caller because * the two must not drift: a card that calls Barcelona's women's side a * women's side and a search box that ranks it as a men's one would be one * copy of this table going stale. */ export declare const SECTION_ORDER: [Gender, Squad][]; /** * The row's position in `SECTION_ORDER`, or one past the end when either axis * is missing. * * Unclassified sorting **last** is the deliberate half. Absent is not "men's * senior": it means nothing has said, and a row nothing has said about should * not be handed the default that outranks every women's and youth row. 0 teams * and 0 leagues are unclassified on production, so this is a guard rather than * a path. */ export declare function sectionIndex(gender?: Gender, squad?: Squad): number; //# sourceMappingURL=squad-gender.d.ts.map