export declare class APIError extends Error {
    status: number;
    constructor(message: string, status: number);
}
export interface Pagination {
    next_cursor: number;
    per_page: number;
}
export interface ApiResponse<T> {
    data: T;
    meta?: Pagination;
}
export interface NBATeam {
    id: number;
    conference: "East" | "West";
    division: "Atlantic" | "Central" | "Southeast" | "Northwest" | "Pacific" | "Southwest";
    city: string;
    name: string;
    full_name: string;
    abbreviation: string;
}
export interface NBAPlayer {
    id: number;
    first_name: string;
    last_name: string;
    position: string;
    height: string;
    weight: string;
    jersey_number: string;
    college: string;
    country: string;
    draft_year: number;
    draft_round: number;
    draft_number: number;
    team: NBATeam;
}
export interface NBAGame {
    id: number;
    date: string;
    season: number;
    status: string;
    period: number;
    time: string;
    postseason: boolean;
    home_team_score: number;
    visitor_team_score: number;
    home_team: NBATeam;
    visitor_team: NBATeam;
}
export interface NBAStats {
    id: number;
    min: string;
    fgm: number;
    fga: number;
    fg_pct: number;
    fg3m: number;
    fg3a: number;
    fg3_pct: number;
    ftm: number;
    fta: number;
    ft_pct: number;
    oreb: number;
    dreb: number;
    reb: number;
    ast: number;
    stl: number;
    blk: number;
    turnover: number;
    pf: number;
    pts: number;
    player: NBAPlayer;
    team: NBATeam;
    game: NBAGame;
}
export interface NBASeasonAverages {
    games_played: number;
    pts: number;
    ast: number;
    reb: number;
    stl: number;
    blk: number;
    turnover: number;
    min: string;
    fgm: number;
    fga: number;
    fg_pct: number;
    fg3m: number;
    fg3a: number;
    fg3_pct: number;
    ftm: number;
    fta: number;
    ft_pct: number;
    oreb: number;
    dreb: number;
    player_id: number;
    season: number;
}
export interface NBAStandings {
    team: NBATeam;
    conference_record: string;
    conference_rank: number;
    division_record: string;
    division_rank: number;
    wins: number;
    losses: number;
    home_record: string;
    road_record: string;
    season: number;
}
export interface NBABoxScore {
    date: string;
    season: number;
    status: string;
    period: number;
    time: string;
    postseason: boolean;
    home_team_score: number;
    visitor_team_score: number;
    home_team: NBATeam;
    visitor_team: NBATeam;
    players: {
        min: string;
        fgm: number;
        fga: number;
        fg_pct: number;
        fg3m: number;
        fg3a: number;
        fg3_pct: number;
        ftm: number;
        fta: number;
        ft_pct: number;
        oreb: number;
        dreb: number;
        reb: number;
        ast: number;
        stl: number;
        blk: number;
        turnover: number;
        pf: number;
        pts: number;
        player: NBAPlayer;
    }[];
}
export interface NBAPlayerInjury {
    player: NBAPlayer;
    return_date: string;
    description: string;
    status: string;
}
export interface NBALeader {
    player: NBAPlayer;
    value: number;
    stat_type: "reb" | "dreb" | "tov" | "ast" | "oreb" | "min" | "pts" | "stl" | "blk";
    rank: number;
    season: number;
    games_played: number;
}
export interface NBAOdds {
    type: "2way" | "spread" | "over/under";
    vendor: string;
    live: boolean;
    game_id: number;
    odds_decimal_home: string;
    odds_decimal_visitor: string;
    odds_american_home: string;
    odds_american_visitor: string;
    away_spread: string;
    over_under: string;
}
export interface NBAAdvancedStats {
    id: number;
    pie: number;
    pace: number;
    assist_percentage: number;
    assist_ratio: number;
    assist_to_turnover: number;
    defensive_rating: number;
    defensive_rebound_percentage: number;
    effective_field_goal_percentage: number;
    net_rating: number;
    offensive_rating: number;
    offensive_rebound_percentage: number;
    rebound_percentage: number;
    true_shooting_percentage: number;
    turnover_ratio: number;
    usage_percentage: number;
    player: NBAPlayer;
    team: NBATeam;
    game: NBAGame;
}
export interface NFLTeam {
    id: number;
    conference: "AFC" | "NFC";
    division: "NORTH" | "SOUTH" | "EAST" | "WEST";
    location: string;
    name: string;
    full_name: string;
    abbreviation: string;
}
export interface NFLPlayer {
    id: number;
    first_name: string;
    last_name: string;
    position: string;
    position_abbreviation: string;
    height: string;
    weight: string;
    jersey_number: string;
    college: string;
    experience: string;
    age: number;
    team: NFLTeam;
}
export interface NFLGame {
    id: number;
    visitor_team: NFLTeam;
    home_team: NFLTeam;
    summary: string;
    venue: string;
    week: number;
    date: string;
    season: number;
    postseason: boolean;
    status: string;
    home_team_score: number;
    visitor_team_score: number;
}
export interface NFLStats {
    player: NFLPlayer;
    team: NFLTeam;
    game: NFLGame;
    passing_completions: number;
    passing_attempts: number;
    passing_yards: number;
    yards_per_pass_attempt: number;
    passing_touchdowns: number;
    passing_interceptions: number;
    sacks: number;
    qbr: number;
    qb_rating: number;
    rushing_attempts: number;
    rushing_yards: number;
    yards_per_rush_attempt: number;
    rushing_touchdowns: number;
    receptions: number;
    receiving_yards: number;
    yards_per_reception: number;
    receiving_touchdowns: number;
    fumbles: number;
    fumbles_lost: number;
}
export interface NFLStandings {
    team: NFLTeam;
    win_streak: number;
    points_for: number;
    points_against: number;
    playoff_seed: number;
    point_differential: number;
    overall_record: string;
    conference_record: string;
    division_record: string;
    wins: number;
    losses: number;
    ties: number;
    home_record: string;
    road_record: string;
    season: number;
}
export interface NFLPlayerInjury {
    player: NFLPlayer;
    status: string;
    comment: string;
    date: string;
}
export interface NFLSeasonStats {
    player: NFLPlayer;
    games_played: number;
    season: number;
    postseason: boolean;
    passing_completions: number;
    passing_attempts: number;
    passing_yards: number;
    passing_yards_per_game: number;
    passing_touchdowns: number;
    passing_interceptions: number;
    passing_completion_pct: number;
    rushing_attempts: number;
    rushing_yards: number;
    rushing_yards_per_game: number;
    rushing_touchdowns: number;
    receiving_receptions: number;
    receiving_yards: number;
    receiving_touchdowns: number;
    receiving_targets: number;
}
export interface NFLAdvancedRushingStats {
    player: NFLPlayer;
    season: number;
    week: number;
    avgTimeToLos: number;
    expectedRushYards: number;
    rushAttempts: number;
    rushPctOverExpected: number;
    rushTouchdowns: number;
    rushYards: number;
    rushYardsOverExpected: number;
    rushYardsOverExpectedPerAtt: number;
    efficiency: number;
    percentAttemptsGteEightDefenders: number;
    avgRushYards: number;
}
export interface NFLAdvancedPassingStats {
    player: NFLPlayer;
    season: number;
    week: number;
    aggressiveness: number;
    attempts: number;
    avgAirDistance: number;
    avgAirYardsDifferential: number;
    avgAirYardsToSticks: number;
    avgCompletedAirYards: number;
    avgIntendedAirYards: number;
    avgTimeToThrow: number;
    completionPercentage: number;
    completionPercentageAboveExpectation: number;
    completions: number;
    expectedCompletionPercentage: number;
    maxAirDistance: number;
    maxCompletedAirDistance: number;
    passerRating: number;
}
export interface NFLAdvancedReceivingStats {
    player: NFLPlayer;
    season: number;
    week: number;
    avgCushion: number;
    avgExpectedYac: number;
    avgIntendedAirYards: number;
    avgSeparation: number;
    avgYac: number;
    avgYacAboveExpectation: number;
    catchPercentage: number;
    percentShareOfIntendedAirYards: number;
    recTouchdowns: number;
    receptions: number;
    targets: number;
    yards: number;
}
export interface MLBTeam {
    id: number;
    slug: string;
    abbreviation: string;
    display_name: string;
    short_display_name: string;
    name: string;
    location: string;
    league: "American" | "National";
    division: "East" | "Central" | "West";
}
export interface MLBPlayer {
    id: number;
    first_name: string;
    last_name: string;
    full_name: string;
    debut_year: number;
    jersey: string;
    college: string;
    position: string;
    active: boolean;
    birth_place: string;
    dob: string;
    age: number;
    height: string;
    weight: string;
    draft: string;
    bats_throws: string;
    team: MLBTeam;
}
export interface MLBGame {
    id: number;
    home_team_name: string;
    away_team_name: string;
    home_team: MLBTeam;
    away_team: MLBTeam;
    season: number;
    postseason: boolean;
    date: string;
    home_team_data: {
        hits: number;
        runs: number;
        errors: number;
        inning_scores: number[];
    };
    away_team_data: {
        hits: number;
        runs: number;
        errors: number;
        inning_scores: number[];
    };
    venue: string;
    attendance: number;
    status: string;
}
export interface MLBStats {
    player: MLBPlayer;
    game: MLBGame;
    team_name: string;
    at_bats: number;
    runs: number;
    hits: number;
    rbi: number;
    hr: number;
    bb: number;
    k: number;
    avg: number;
    obp: number;
    slg: number;
    ip: number;
    p_hits: number;
    p_runs: number;
    er: number;
    p_bb: number;
    p_k: number;
    p_hr: number;
    pitch_count: number;
    strikes: number;
    era: number;
}
export interface MLBStandings {
    team: MLBTeam;
    league_name: string;
    league_short_name: string;
    division_name: string;
    division_short_name: string;
    wins: number;
    losses: number;
    win_percent: number;
    games_behind: number;
    streak: number;
    last_ten_games: string;
    season: number;
}
export interface MLBSeasonStats {
    player: MLBPlayer;
    team_name: string;
    season: number;
    postseason: boolean;
    batting_gp: number;
    batting_ab: number;
    batting_r: number;
    batting_h: number;
    batting_avg: number;
    batting_2b: number;
    batting_3b: number;
    batting_hr: number;
    batting_rbi: number;
    batting_bb: number;
    batting_so: number;
    batting_sb: number;
    batting_obp: number;
    batting_slg: number;
    batting_ops: number;
    batting_war: number;
    pitching_gp: number;
    pitching_gs: number;
    pitching_w: number;
    pitching_l: number;
    pitching_era: number;
    pitching_sv: number;
    pitching_ip: number;
    pitching_h: number;
    pitching_er: number;
    pitching_hr: number;
    pitching_bb: number;
    pitching_k: number;
    pitching_war: number;
}
export interface MLBTeamSeasonStats {
    team: MLBTeam;
    team_name: string;
    postseason: boolean;
    season: number;
    gp: number;
    batting_ab: number;
    batting_r: number;
    batting_h: number;
    batting_2b: number;
    batting_3b: number;
    batting_hr: number;
    batting_rbi: number;
    batting_bb: number;
    batting_so: number;
    batting_sb: number;
    batting_avg: number;
    batting_obp: number;
    batting_slg: number;
    batting_ops: number;
    pitching_w: number;
    pitching_l: number;
    pitching_era: number;
    pitching_sv: number;
    pitching_ip: number;
    pitching_h: number;
    pitching_er: number;
    pitching_hr: number;
    pitching_bb: number;
    pitching_k: number;
    fielding_e: number;
    fielding_fp: number;
}
export interface MLBStandings {
    team: MLBTeam;
    league_name: string;
    league_short_name: string;
    division_name: string;
    division_short_name: string;
    wins: number;
    losses: number;
    win_percent: number;
    games_behind: number;
    streak: number;
    last_ten_games: string;
    season: number;
}
export interface MLBSeasonStats {
    player: MLBPlayer;
    team_name: string;
    season: number;
    postseason: boolean;
    batting_gp: number;
    batting_ab: number;
    batting_r: number;
    batting_h: number;
    batting_avg: number;
    batting_2b: number;
    batting_3b: number;
    batting_hr: number;
    batting_rbi: number;
    batting_bb: number;
    batting_so: number;
    batting_sb: number;
    batting_obp: number;
    batting_slg: number;
    batting_ops: number;
    batting_war: number;
    pitching_gp: number;
    pitching_gs: number;
    pitching_w: number;
    pitching_l: number;
    pitching_era: number;
    pitching_sv: number;
    pitching_ip: number;
    pitching_h: number;
    pitching_er: number;
    pitching_hr: number;
    pitching_bb: number;
    pitching_k: number;
    pitching_war: number;
}
export interface MLBTeamSeasonStats {
    team: MLBTeam;
    team_name: string;
    postseason: boolean;
    season: number;
    gp: number;
    batting_ab: number;
    batting_r: number;
    batting_h: number;
    batting_2b: number;
    batting_3b: number;
    batting_hr: number;
    batting_rbi: number;
    batting_bb: number;
    batting_so: number;
    batting_sb: number;
    batting_avg: number;
    batting_obp: number;
    batting_slg: number;
    batting_ops: number;
    pitching_w: number;
    pitching_l: number;
    pitching_era: number;
    pitching_sv: number;
    pitching_ip: number;
    pitching_h: number;
    pitching_er: number;
    pitching_hr: number;
    pitching_bb: number;
    pitching_k: number;
    fielding_e: number;
    fielding_fp: number;
}
export interface MLBPlayerInjury {
    player: MLBPlayer;
    date: string;
    return_date: string;
    type: string;
    detail: string;
    side: string;
    status: string;
    long_comment: string;
    short_comment: string;
}
export interface ClientConfig {
    apiKey: string;
    baseUrl?: string;
}
export declare class BaseClient {
    protected readonly baseUrl: string;
    protected readonly headers: Record<string, string>;
    constructor(config: ClientConfig);
    protected request<T>(path: string, options?: RequestInit): Promise<T>;
    protected buildQueryParams(params?: Record<string, any>): Record<string, string>;
}
