/**
 * ESPN Public API Client — fetches authoritative roster data.
 * Used by the roster-reconciler worker to validate SGO player data.
 */
export declare const ESPN_LEAGUES: Record<string, {
    sport: string;
    league: string;
    label: string;
}>;
export interface ESPNTeam {
    id: string;
    name: string;
    short: string;
}
export interface ESPNPlayer {
    espnId: string;
    name: string;
    teamId: string;
    teamName: string;
    teamShort: string;
    position: string;
}
export interface ESPNLeagueRoster {
    league: string;
    teams: ESPNTeam[];
    players: ESPNPlayer[];
}
/**
 * Fetch a URL with a 10-second timeout. Parses JSON and throws on non-ok responses.
 */
export declare function espnFetch(url: string): Promise<any>;
/**
 * Fetch all teams for a given ESPN sport/league.
 * GET {ESPN_BASE}/{sport}/{league}/teams?limit=2000
 * Parses from sports[0].leagues[0].teams[].team
 */
export declare function fetchESPNTeams(sport: string, league: string): Promise<ESPNTeam[]>;
/**
 * Fetch the full roster for a single team.
 * GET {ESPN_BASE}/{sport}/{league}/teams/{teamId}/roster
 *
 * Handles two ESPN response shapes:
 *   - Grouped: athletes[].items[] (NFL, MLB have position groups)
 *   - Flat:    athletes[] directly (each element is a player object)
 */
export declare function fetchESPNRoster(sport: string, league: string, teamId: string): Promise<ESPNPlayer[]>;
/**
 * Orchestrate a full roster pull for one league.
 * Fetches all teams, then each team's roster with a 100ms delay between requests.
 * On individual team roster errors, logs a warning and continues.
 */
export declare function fetchLeagueRoster(leagueKey: string): Promise<ESPNLeagueRoster>;
export interface ESPNInjury {
    espnId: string;
    playerName: string;
    athleteId: string;
    teamName: string;
    teamShort: string;
    status: string;
    date: string;
    shortComment: string;
    longComment: string;
    injuryType: string;
}
export interface ESPNLeagueInjuries {
    league: string;
    injuries: ESPNInjury[];
    teamCount: number;
}
/**
 * Fetch all injuries for a league from ESPN.
 * GET {ESPN_BASE}/{sport}/{league}/injuries
 */
export declare function fetchLeagueInjuries(leagueKey: string): Promise<ESPNLeagueInjuries>;
//# sourceMappingURL=espn-roster.d.ts.map