/** * Public result contract for the evaluation harness. * * This is the structure the Slice-2 Critic will read, so it is the stable * shape callers depend on. See the PRD "Results contract". */ export declare const FORMAT: "gen3ou"; export type Mode = 'gauntlet' | 'round-robin'; /** A team the user submitted for evaluation, as Showdown paste text. */ export interface Submission { /** Display name for reports (defaults to the lead species when omitted). */ name: string; /** Standard Showdown export/paste text for one Team. */ paste: string; } /** Opposition configuration: what the submitted Teams are measured against. */ export type Opposition = { mode: 'gauntlet'; gauntletVersion?: string; } | { mode: 'round-robin'; }; export interface EvaluateInput { /** * Submitted Teams. Either an array of pastes / {name,paste} entries, or a * single string containing one or more Teams (multi-team `=== name ===` * markers are split apart). */ teams: string | Array; opposition: Opposition; /** Battles run per Team-vs-opponent pairing (sides swapped 50/50). */ battlesPerPairing?: number; /** Master seed; identical seed + teams + config reproduces identical results. */ seed?: string; } /** A submitted Team that failed Gen 3 OU legality, named so the user can fix it. */ export interface ValidationError { team: string; problems: string[]; } /** Win-rate of a submitted Team against one specific opponent. */ export interface MatchupResult { /** Opponent name — a Gauntlet member or a peer Team. */ opponent: string; /** Archetype label of the opponent (Gauntlet members only). */ archetype?: string; /** Battles won outright. */ wins: number; /** Battles that ended in a tie (counted as half a win in `winRate`). */ ties: number; battles: number; /** (wins + ties/2) / battles, in [0, 1]. */ winRate: number; } /** One row of the Strength ranking. */ export interface StrengthRow { team: string; /** Overall Strength: win-rate under the Pilot, in [0, 1]. */ strength: number; battles: number; /** 95% Wilson confidence interval on the overall win-rate. */ ci95: [number, number]; /** Per-opponent breakdown. */ matchups: MatchupResult[]; } /** The full structured result returned from the single `evaluate` seam. */ export interface EvaluationResult { mode: Mode; seed: string; /** Present in gauntlet mode; records which Gauntlet version produced the result. */ gauntletVersion?: string; battlesPerPairing: number; /** Strength rows, sorted strongest first. */ ranking: StrengthRow[]; /** Submitted Teams that were illegal and therefore not run. */ errors: ValidationError[]; }