import { JSX } from 'react';
import { JSX as JSX_2 } from 'react/jsx-runtime';

export declare function Bracket(props: BracketProps): JSX_2.Element | null;

export declare type BracketFixtureProps = {
    id: number | null;
    parent_id: number | null;
    is_first: boolean | null;
    fixture: FixtureProps | null;
};

export declare interface BracketFixtureStructureProps extends BracketFixtureProps {
    name?: string | null;
    home_position?: number | null;
    away_position?: number | null;
    home_group_id?: number | null;
    away_group_id?: number | null;
    tournament_id?: string | null;
    column?: number | null;
    rowOrder?: number | null;
    outcome?: number | null;
}

declare interface BracketProps {
    data: BracketFixtureProps[];
    bronzeMatch?: FixtureProps;
    size?: "small" | "medium" | "large";
    isLoading?: boolean;
    horizontal?: boolean;
    showEventTime?: boolean;
    showTeamSelection?: boolean;
    disabledTeamSelection?: boolean;
    showHeaders?: boolean;
    distance?: "small" | "medium" | "large";
    highlightedStageId?: number;
    headerStyle?: "light" | "dark";
    showFinalWinner?: boolean;
    extraSpace?: boolean;
    clickedEventItem?: (id: number | undefined) => void;
    handleSelectTeam?: (id: string, value: number) => void;
    predictionPoints?: boolean;
    showScores?: boolean;
}

export declare function Card(props: CardProps): JSX_2.Element;

declare type CardProps = {
    data: {
        id?: number | null | undefined;
        display_name?: string | null | undefined;
        teams?: PlayerTeamsProps[] | null;
        position_id?: number | null;
        image_path?: string | null;
        name?: string | null;
        venue?: VenueProps | null;
        country?: {
            image_path?: string | null;
        } | null;
    } | null;
    isLoading?: boolean;
    type: "player" | "league" | "team";
    showClubLogo?: boolean;
    showClubName?: boolean;
    imageSize?: "small" | "medium" | "large" | "xlarge" | "2xlarge" | "4xlarge";
    textSize?: "small" | "medium" | "large" | "xlarge";
    showFlag?: boolean;
    justify?: "start" | "center" | "end";
    vertical?: boolean;
    centered?: boolean;
    highlighted?: boolean;
    subComponent?: JSX.Element | null;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
};

export declare function CommentItem(props: CommentItemProps): JSX_2.Element;

declare interface CommentItemProps {
    comment: CommentProps;
    type?: CustomCommentTypes | null;
    isLoading?: boolean;
}

export declare function CommentList(props: CommentListProps): JSX_2.Element;

declare interface CommentListProps {
    data: {
        comments: CommentProps[];
        events: EventProps[];
        participants: ParticipantProps[];
    };
    isLoading?: boolean;
}

export declare type CommentProps = {
    id: number | null;
    fixture_id?: number | null;
    comment?: string | null;
    minute?: number | null;
    extra_minute?: number | null;
    is_goal?: boolean | null;
    is_important?: boolean | null;
    order?: number | null;
    player?: PlayerProps | null;
    relatedplayer?: PlayerProps | null;
    type?: number | null;
    goalInfo?: {
        homeTeamName?: string | null;
        awayTeamName?: string | null;
        homeScore?: number;
        awayScore?: number;
        isHomeGoal?: boolean;
    };
};

export declare type CountryProps = {
    continent_id?: number | null;
    country_id?: number;
    image_path?: string | null;
    name?: string | null;
};

declare enum CustomCommentTypes {
    FIRST_HALF_ENDED = 4,
    GAME_FINISHED = 6,
    GOAL = 7,
    RED_CARD = 1,
    SECOND_HALF_ENDED = 5,
    SUBSTITUTION = 2,
    VAR_DECISION = 3,
    YELLOW_CARD = 0
}

export declare function EventItem({ fixtureData, scoresAnimation, showLogos, showGoalScorers, showEventClockAndStatus, showTeamShortCode, teamInFocus, showLeagueLogo, showEventDate, size, element, isLoading, showAsCard, showStadiumBackground, showTime, showScores, disabled, clickedEventItem, clickedTeamItem, }: EventItemProps): JSX_2.Element;

export declare type EventItemProps = {
    fixtureData: FixtureProps;
    scoresAnimation?: ScoresAnimationProps;
    showLogos?: boolean;
    showGoalScorers?: boolean;
    showEventClockAndStatus?: boolean;
    showTeamShortCode?: boolean;
    teamInFocus?: number;
    showLeagueLogo?: boolean;
    showEventDate?: boolean;
    size?: "small" | "medium" | "large";
    element?: JSX.Element | null;
    showAsCard?: boolean;
    showStadiumBackground?: boolean;
    showTime?: boolean;
    isLoading?: boolean;
    showScores?: boolean;
    disabled?: boolean;
    clickedEventItem?: (id: number | undefined) => void;
    clickedTeamItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
};

export declare function EventPredictButtonGroup(props: EventPredictButtonGroupProps): JSX_2.Element;

declare interface EventPredictButtonGroupProps {
    id?: number;
    options: EventPredictButtonOption[];
    disabled?: boolean;
    onChange: (id: number, value: number) => void;
}

declare interface EventPredictButtonOption {
    label?: string;
    value: number;
    image?: string;
    selected?: boolean;
}

export declare type EventProps = {
    id: number | null;
    fixture_id: number | null;
    period_id?: number | null;
    participant_id?: number | null;
    type_id?: number | null;
    section?: string | null;
    player_id?: number | null;
    related_player_id?: number | null;
    player_name?: string | null;
    related_player_name?: string | null;
    result?: string | null;
    info?: string | null;
    addition?: string | null;
    minute?: number | null;
    extra_minute?: number | null;
    injured?: boolean | null;
    on_bench?: boolean | null;
    coach_id?: number | null;
    sub_type_id?: number | null;
    player?: PlayerProps | null;
    relatedplayer?: PlayerProps | null;
};

export declare type fixtureAggregateProps = {
    id: number;
    name: string;
    detail: string;
    result: string;
    stage_id: number;
    league_id: number;
    season_id: number;
    fixture_ids: number[];
};

export declare function FixtureList(props: FixtureListProps): JSX_2.Element | JSX_2.Element[] | null;

declare interface FixtureListProps {
    data: FixtureProps[];
    size?: "small" | "medium" | "large";
    groupBy?: "season" | "league" | "none";
    showEventClockAndStatus?: boolean;
    showLogos?: boolean;
    showTeamShortCode?: boolean;
    teamInFocus?: number;
    showLeagueLogo?: boolean;
    showListLeagueLogo?: boolean;
    isLoading?: boolean;
    showGoalScorers?: boolean;
    showEventDate?: boolean;
    showAsCard?: boolean;
    showStadiumBackground?: boolean;
    clickedEventItem?: (id: number | undefined) => void;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type fixtureMetadataProps = {
    id: number;
    metadatable_id: number;
    type_id: number;
    value_type: string;
    values: {
        neutral?: boolean;
        confirmed?: boolean;
    };
};

export declare function FixturePlayerStats(props: FixturePlayerStatsProps): JSX_2.Element | null;

declare interface FixturePlayerStatsProps {
    data: FixtureProps;
    displayType: "full" | "home" | "away";
    showSubs?: boolean;
    showPlayerImages?: boolean;
    showClubLogos?: boolean;
    showPlayerPosition?: boolean;
    statType?: "overall" | "offensive" | "defensive";
    customStatsMap?: (number | StatisticsTypes)[];
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type FixtureProps = {
    id?: number | null;
    fixture_id?: number;
    sport_id?: number | null;
    league_id?: number | null;
    season_id?: number | null;
    stage_id?: number | null;
    group_id?: number | null;
    aggregate_id?: number | null;
    round_id?: number | null;
    state_id?: number | null;
    venue_id?: number | null;
    name?: string | null;
    starting_at?: string | null;
    result_info?: string | null;
    leg?: string | null;
    length?: number | null;
    placeholder?: boolean | null;
    has_odds?: boolean | null;
    starting_at_timestamp?: number | null;
    participants?: ParticipantProps[] | null;
    scores?: ScoresProps[] | null;
    events?: PlayerEventsProps[] | null;
    lineups?: LineupProps[] | null;
    formations?: FormationProps[] | null;
    venue?: VenueProps | null;
    periods?: PeriodProps[] | null;
    league?: LeagueProps | null;
    season?: SeasonProps | null;
    stage?: StageProps | null;
    statistics?: FixtureStatisticsProps[] | null;
    metadata?: fixtureMetadataProps[] | null;
    aggregate?: fixtureAggregateProps | null;
    element?: JSX.Element | null | undefined;
};

export declare type FixtureStatisticsProps = {
    id: number | null;
    fixture_id: number | null;
    type_id: number | null;
    participant_id: number | null;
    data: {
        value: number | null;
    };
    location: string | null;
};

export declare function FixtureStats(props: FixtureStatsProps): JSX_2.Element;

declare type FixtureStatsProps = {
    data: FixtureProps;
    showClubLogos?: boolean;
    basicStatsList?: (number | StatisticsTypes)[];
    advancedStatsList?: (number | StatisticsTypes)[];
    showAdvancedStats?: boolean;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
    isSlim?: boolean;
    colors?: string[];
};

export declare function FormationField(props: FormationFieldProps): JSX_2.Element;

declare interface FormationFieldProps {
    data: FixtureProps | null;
    vertical: boolean;
    displayType: "full" | "home" | "away";
    fieldPattern: "stripes" | "circle" | "flat";
    fieldColor: "green" | "black" | "pink";
    showPlayerImages?: boolean;
    showClubLogos?: boolean;
    showEvents?: boolean;
    showAsTrapezium?: boolean;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare function FormationList(props: FormationListProps): JSX_2.Element;

declare type FormationListProps = {
    data: FixtureProps;
    displayType: "full" | "home" | "away";
    showSubs: boolean;
    showPlayerImages?: boolean;
    showClubLogos?: boolean;
    showEvents?: boolean;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
};

export declare type FormationProps = {
    id: number | null;
    fixture_id: number | null;
    participant_id: number | null;
    formation: string | null;
    location: string | null;
    participant?: ParticipantProps | null;
};

export declare type FormProps = {
    id: number;
    fixture_id: number;
    form: string;
    sort_order: number;
    standing_id: number;
    standing_type: string;
};

export declare function HeadToHead(props: HeadToHeadProps): JSX_2.Element | null;

declare type HeadToHeadProps = {
    data: FixtureProps[];
    showClubLogos?: boolean;
    isLoading?: boolean;
};

export declare type Json = string | number | boolean | null | {
    [key: string]: Json | undefined;
} | Json[];

export declare function LabelGroup(props: LabelGroupProps): JSX_2.Element;

declare interface LabelGroupProps {
    title: string | null;
    subtitle?: string | number | JSX.Element | null;
    vertical?: boolean;
    bold?: boolean;
    size?: "small" | "medium" | "large" | "xlarge" | null;
    highlighted?: boolean;
    truncate?: boolean;
    reversed?: boolean;
}

export declare function LeagueList(props: LeagueListProps): JSX_2.Element | null;

declare interface LeagueListProps {
    data: LeagueProps[];
    isLoading?: boolean;
    showLeagueLogos?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type LeagueProps = {
    id?: number | null;
    sport_id?: number | null;
    country_id?: number | null;
    name?: string | null;
    active?: boolean | null;
    short_code?: string | null;
    image_path?: string | null;
    type?: string | null;
    sub_type?: string | null;
    last_played_at?: string | null;
    category?: number | null;
    has_jerseys?: boolean | null;
    country?: CountryProps | null;
    currentseason?: SeasonProps | null;
    sort_order?: number | null;
};

export declare function LeagueTable(props: LeagueTableProps): JSX_2.Element | null;

declare interface LeagueTableProps {
    data: LeagueTableTeamProps[];
    groupId?: number;
    showDetails: boolean;
    showForm: boolean;
    showLines: boolean;
    highlightedTeamIds?: number[];
    isLoading?: boolean;
    stickyHeader?: boolean;
    labelShrink?: boolean;
    pointLast?: boolean;
    size?: "sm" | "md" | "lg";
    rounded?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type LeagueTableTeamDetailsProps = {
    id: number | null;
    value: number | null;
    type_id: number | null;
    standing_id: number | null;
    standing_type: string | null;
    type?: {
        id: number | null;
        name: string | null;
        code: string | null;
        developer_name: string | null;
        model_type: string | null;
        stat_group: string | null;
    };
};

export declare type LeagueTableTeamProps = {
    group?: {
        id: number;
        name: string;
    } | null;
    details?: LeagueTableTeamDetailsProps[] | null;
    form?: FormProps[] | null;
    id?: number | null;
    league_id?: number | null;
    sport_id?: number | null;
    group_id?: number | null;
    participant_id?: number | null;
    points?: number | null;
    position?: number | null;
    result?: string | null;
    round_id?: number | null;
    season_id?: number | null;
    stage_id?: number | null;
    standing_id?: number;
    standing_rule_id?: number | null;
    participant?: ParticipantProps | null;
    third_pos_rank?: number | null;
    rule?: {
        id?: number | null;
        type_id?: number | null;
    } | null;
};

declare interface LineUpComponentProps {
    events: PlayerEventsProps[] | null;
    lineups: LineupProps[] | null;
    team: ParticipantProps | null;
    isHome: boolean;
    formation: string;
    showFull: boolean;
    vertical: boolean;
    showPlayerImages?: boolean;
    showClubLogos?: boolean;
    fieldPattern: "stripes" | "circle" | "flat";
    fieldColor: "green" | "black" | "pink" | "loading";
    showAsTrapezium?: boolean;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type LineupDetailsProps = {
    id: number | null;
    player_id: number | null;
    team_id: number | null;
    fixture_id: number | null;
    type_id: number | null;
    data: {
        value?: number | null | boolean;
    };
};

export declare function LineupField(props: LineUpComponentProps): JSX_2.Element;

export declare function LineupList(props: LineUpListProps): JSX_2.Element;

declare interface LineUpListProps {
    events?: PlayerEventsProps[] | null;
    lineups: LineupProps[] | null;
    title: string;
    isLoading?: boolean;
    showPlayerImages?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type LineupProps = {
    id: number | null;
    sport_id?: number | null;
    fixture_id?: number | null;
    player_id?: number | null;
    team_id?: number | null;
    position_id?: number | null;
    formation_field?: string | null;
    type_id?: number | null;
    formation_position?: number | null;
    player_name?: string | null;
    jersey_number?: number | null;
    player?: PlayerProps | null;
    details?: LineupDetailsProps[] | null;
    participant?: ParticipantProps;
    fixture?: FixtureProps | null;
    team_logo?: string | null;
    team_name?: string | null;
};

export declare function ListItem(props: ListItemProps): JSX_2.Element;

declare interface ListItemProps {
    id?: number | null;
    clickedItemId?: number | null;
    clickedSecondaryItemId?: number | null;
    image: string | JSX.Element | null;
    title: string | null;
    subtitle?: number | string | JSX.Element | null;
    rank?: number | null;
    removeTextColor?: boolean;
    subImages?: {
        topLeft?: string | JSX.Element | null;
        topRight?: string | JSX.Element | null;
        bottomLeft?: string | JSX.Element | null;
        bottomRight?: string | JSX.Element | null;
    } | null;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
    listItemOptions?: {
        imageSize?: "small" | "medium" | "large" | "xlarge" | "2xlarge" | "4xlarge";
        textSize?: "small" | "medium" | "large" | "xlarge";
        rounded?: "none" | "medium" | "full";
        justify?: "start" | "end" | "center";
        vertical?: boolean;
        centered?: boolean;
        reversed?: boolean;
        bold?: boolean;
        highlighted?: boolean;
        truncate?: boolean;
        imageShadow?: boolean;
    };
}

declare interface ListViewProps {
    data: (ParticipantProps | PlayerProps)[];
    type: "players" | "teams";
    listIcon?: JSX.Element | null;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type ParticipantProps = {
    sport_id?: number | null;
    country_id?: number | null;
    venue_id?: number | null;
    gender?: string | null;
    short_code?: string | null;
    founded?: number | null;
    type?: string | null;
    placeholder?: boolean | null;
    last_played_at?: string | null;
    id?: number | null;
    name?: string | null;
    image_path?: string | null;
    latest?: FixtureProps[] | null;
    upcoming?: FixtureProps[] | null;
    venue?: VenueProps | null;
    coaches?: {
        position_id?: number | null;
        coach?: PlayerProps | null;
    }[] | null;
    trophies?: TrophiesProps[] | null;
    predictionPoints?: boolean;
    meta?: {
        location: string | null;
        winner?: boolean | null;
        position?: number | null;
    };
};

export declare type PeriodProps = {
    id: number;
    fixture_id: number;
    type_id: number | null;
    started: number | null;
    ended: number | null;
    counts_from: number | null;
    ticking: boolean | null;
    sort_order: number | null;
    description: string | null;
    time_added: number | null;
    period_length: number | null;
    minutes?: number | null;
    seconds?: number | null;
    has_timer: boolean;
};

export declare function PlayerBio(props: PlayerBioProps): JSX_2.Element;

declare type PlayerBioProps = {
    data?: PlayerProps | null;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
};

declare type PlayerBioProps_2 = {
    data?: ParticipantProps | null;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
};

export declare type PlayerEventsProps = {
    id?: number | null;
    fixture_id?: number | null;
    period_id?: number | null;
    participant_id?: number | null;
    type_id?: number | null;
    section?: string | null;
    player_id?: number | null;
    related_player_id?: number | null;
    player_name?: string | null;
    related_player_name?: string | null;
    result?: string | null;
    info?: string | null;
    addition?: string | null;
    minute?: number | null;
    extra_minute?: number | null;
    injured?: boolean | null;
    on_bench?: boolean | null;
    coach_id?: number | null;
    sub_type_id?: number | null;
};

export declare function PlayerLatestStats(props: PlayerLatestStatsProps): JSX_2.Element;

declare interface PlayerLatestStatsProps {
    data: PlayerProps | null;
    showTotals: boolean;
    statType?: "overall" | "offensive" | "defensive" | "key";
    customStatsMap?: (number | StatisticsTypes)[];
    rounded?: boolean;
    isLoading?: boolean;
    limit?: number;
    stickyHeader?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type PlayerProps = {
    id: number | null;
    sport_id?: number | null;
    country_id?: number | null;
    nationality_id?: number | null;
    city_id?: number | null;
    position_id?: number | null;
    detailed_position_id?: number | null;
    type_id?: number | null;
    common_name?: string | null;
    firstname?: string | null;
    lastname?: string | null;
    name?: string | null;
    display_name?: string | null;
    image_path?: string | null;
    height?: number | null;
    weight?: number | null;
    date_of_birth?: string | null;
    gender?: string | null;
    statistics?: PlayerStatisticsProps[] | null;
    country?: CountryProps | null;
    teams?: PlayerTeamsProps[] | null;
    nationality?: {
        id?: number | null;
        continent_id?: number | null;
        name?: string | null;
        official_name?: string | null;
        fifa_name?: string | null;
        iso2?: string | null;
        iso3?: string | null;
        latitude?: string | null;
        longitude?: string | null;
        borders?: string[] | null;
        image_path?: string | null;
    };
    trophies?: TrophiesProps[] | null;
    position?: {
        id?: number | null;
        name?: string | null;
        code?: string | null;
        developer_name?: string | null;
        model_type?: string | null;
        stat_group?: number | string | null;
    };
    latest?: LineupProps[] | null;
};

export declare function PlayerSeasonStats(props: PlayerSeasonStatsComponentProps): JSX_2.Element;

declare interface PlayerSeasonStatsComponentProps {
    data: PlayerProps | null;
    showDetails?: boolean;
    statType?: "overall" | "offensive" | "defensive" | "key";
    customStatsMap?: (number | StatisticsTypes)[];
    showTotals?: boolean;
    stickyHeader?: boolean;
    rounded?: boolean;
    isLoading?: boolean;
    showLeagueLogos?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type PlayerStatisticsDetailsProps = {
    id: number | null;
    player_statistic_id: number | null;
    type_id: number | null;
    value: {
        total?: number | null;
        goals?: number | null;
    };
    type?: {
        id: number | null;
        name: string | null;
        code: string | null;
        developer_name: string | null;
        model_type: string | null;
        stat_group: string | null;
    };
};

export declare type PlayerStatisticsProps = {
    id: number | null;
    player_id: number | null;
    team_id: number | null;
    season_id: number | null;
    has_values: boolean | null;
    position_id: number | null;
    jersey_number: number | null;
    details?: PlayerStatisticsDetailsProps[] | null;
    season?: SeasonProps | null;
    team?: ParticipantProps | null;
};

export declare type PlayerTeamsProps = {
    id: number | null;
    transfer_id?: number | null;
    player_id?: number | null;
    team_id?: number | null;
    position_id?: number | null;
    detailed_position_id?: number | null;
    start?: string | null;
    end?: string | null;
    captain?: boolean | null;
    jersey_number?: number | null;
    team?: ParticipantProps | null;
    type?: "domestic" | "national" | null;
};

export declare type playoffGroup = {
    group?: number | undefined;
    position?: number | undefined;
};

export declare type playoffStructureProps = {
    id?: number | null;
    name?: string;
    fixtures?: playoffStructureProps[];
    thirdPlace?: playoffStructureProps;
    topLevel?: boolean;
    left?: boolean;
    home?: playoffGroup;
    away?: playoffGroup;
};

export declare function PredictEvent(props: PredictEventProps): JSX_2.Element | null;

declare interface PredictEventProps {
    data: PredictFixtureProps[];
    size?: "small" | "medium" | "large";
    isLoading?: boolean;
    showEventTime?: boolean;
    showTeamSelection?: boolean;
    clickedEventItem?: (id: number | undefined) => void;
    handleSelectTeam?: (id: number, value: number) => void;
}

export declare type PredictFixtureProps = {
    fixture_id: number | null;
    fixture: FixtureProps | null;
    outcome?: number | null;
    disabled?: boolean;
};

export declare function RoundPlayerRanking(props: RoundPlayerRankingProps): JSX_2.Element;

declare interface RoundPlayerRankingProps {
    data: RoundProps;
    vertical: boolean;
    fieldPattern: "stripes" | "circle" | "flat";
    fieldColor: "green" | "black" | "pink";
    showPlayerImages?: boolean;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type RoundProps = {
    id: number | null;
    sport_id: number | null;
    league_id: number | null;
    season_id: number | null;
    stage_id: number | null;
    name: string | null;
    finished: boolean | null;
    is_current: boolean | null;
    starting_at: string | null;
    ending_at: string | null;
    games_in_current_week: boolean | null;
    fixtures: FixtureProps[] | null;
};

export declare type ScoresAnimationProps = {
    oldScores: ScoresProps[] | null;
    newScores: ScoresProps[] | null;
    animate: boolean;
    flashLabel: boolean;
    scorePulsate: boolean;
    scoreReveal: boolean;
};

export declare type ScoresProps = {
    id: number | null;
    fixture_id: number | null;
    type_id: number | null;
    participant_id: number | null;
    score: {
        goals: number | null;
        participant: string | null;
    };
    description: string | null;
};

export declare function SearchResults(props: ListViewProps): JSX_2.Element;

export declare type SeasonProps = {
    id?: number | null;
    sport_id?: number | null;
    league_id?: number | null;
    tie_breaker_rule_id?: number | null;
    name?: string | null;
    finished?: boolean | null;
    pending?: boolean | null;
    is_current?: boolean | null;
    starting_at?: string | null;
    ending_at?: string | null;
    standings_recalculated_at?: string | null;
    games_in_current_week?: boolean | null;
    league?: LeagueProps | null;
};

export declare type SizeProps = "sm" | "md" | "lg" | "xl" | "2xl" | undefined;

export declare function SkeletonLoader(props: SkeletonLoaderProps): JSX_2.Element;

declare interface SkeletonLoaderProps {
    type: string;
    amount: number;
    size?: "small" | "medium" | "large";
    header?: boolean;
}

export declare function SquadList(props: SquadListProps): JSX_2.Element;

declare type SquadListProps = {
    data: LineupProps[];
    showPlayerImages?: boolean;
    showClubLogos?: boolean;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
};

export declare function StadiumCard({ id, image_path, component, vertical, subComponent, clickedEventItem, }: StadiumCardProps): React.ReactNode;

declare interface StadiumCardProps {
    id?: number | null;
    image_path: string | null;
    component: React.ReactNode;
    vertical?: boolean;
    subComponent?: JSX.Element | null;
    clickedEventItem?: (id: number | undefined) => void;
}

export declare type StageProps = {
    ending_at: string | null;
    finished: boolean | null;
    games_in_current_week: boolean | null;
    is_current: boolean | null;
    league_id: number | null;
    name: string | null;
    season_id: number | null;
    sort_order: number | null;
    id: number;
    starting_at: string | null;
    type_id: number | null;
    fixtures?: FixtureProps[] | null;
};

declare enum StatisticsTypes {
    CORNERS = 34,
    CAPTAIN = 40,
    SHOTS_OFF_TARGET = 41,
    SHOTS_TOTAL = 42,
    ATTACKS = 43,
    DANGEROUS_ATTACKS = 44,
    BALL_POSSESSION = 45,
    BALL_SAFE = 46,
    PENALTIES = 47,
    SHOTS_INSIDEBOX = 49,
    SHOTS_OUTSIDEBOX = 50,
    OFFSIDES = 51,
    GOALS = 52,
    GOAL_KICKS = 53,
    GOAL_ATTEMPTS = 54,
    FREE_KICKS = 55,
    FOULS = 56,
    SAVES = 57,
    SHOTS_BLOCKED = 58,
    SUBSTITUTIONS = 59,
    THROWINS = 60,
    BEATS = 61,
    LONG_PASSES = 62,
    SHORT_PASSES = 63,
    HIT_WOODWORK = 64,
    SUCCESSFUL_HEADERS = 65,
    SUCCESSFUL_INTERCEPTIONS = 66,
    SUCCESSFUL_CENTERS = 67,
    SUBSTITUTIONS_OVERTIME = 68,
    OFFSIDES_OVERTIME = 69,
    HEADERS = 70,
    LAST_SUBSTITUTION = 71,
    FIRST_SUBSTITUTION = 72,
    SUCCESSFUL_CENTER = 73,
    CORNERS_OVERTIME = 75,
    GOALKEEPER_COME_OUTS = 76,
    CHALLENGES = 77,
    TACKLES = 78,
    ASSISTS = 79,
    PASSES = 80,
    SUCCESSFUL_PASSES = 81,
    SUCCESSFUL_PASSES_PERCENTAGE = 82,
    REDCARDS = 83,
    YELLOWCARDS = 84,
    YELLOWRED_CARDS = 85,
    SHOTS_ON_TARGET = 86,
    INJURIES = 87,
    GOALS_CONCEDED = 88,
    FIRST_OFFSIDE = 91,
    LAST_OFFSIDE = 92,
    DISPOSSESSED = 94,
    OFFSIDES_PROVOKED = 95,
    FOULS_DRAWN = 96,
    BLOCKED_SHOTS = 97,
    TOTAL_CROSSES = 98,
    ACCURATE_CROSSES = 99,
    INTERCEPTIONS = 100,
    CLEARANCES = 101,
    CLEARANCES_WON = 102,
    PUNCHES = 103,
    SAVES_INSIDE_BOX = 104,
    TOTAL_DUELS = 105,
    DUELS_WON = 106,
    AERIALS_WON = 107,
    DRIBBLED_ATTEMPTS = 108,
    SUCCESSFUL_DRIBBLES = 109,
    DRIBBLED_PAST = 110,
    PENALTIES_SCORED = 111,
    PENALTIES_MISSES = 112,
    PENALTIES_SAVED = 113,
    PENALTIES_COMMITTED = 114,
    PENALTIES_WON = 115,
    ACCURATE_PASSES = 116,
    KEY_PASSES = 117,
    RATING = 118,
    MINUTES_PLAYED = 119,
    TOUCHES = 120,
    TURN_OVER = 121,
    LONG_BALLS = 122,
    LONG_BALLS_WON = 123,
    THROUGH_BALLS = 124,
    THROUGH_BALLS_WON = 125,
    MATCHES = 188,
    TOTAL_TEAMS = 189,
    MATCHES_ENDED_IN_DRAW = 190,
    NUMBER_OF_GOALS = 191,
    BTTS = 192,
    CARDS = 193,
    CLEANSHEET = 194,
    GOALKEEPER_CLEANSHEET = 195,
    SCORING_MINUTES = 196,
    GOAL_LINE = 197,
    WIN_PERCENTAGE = 201,
    DEFEAT_PERCENTAGE = 202,
    DRAW_PERCENTAGE = 203,
    PARTICIPANT_MOST_SCORED = 204,
    PARTICIPANT_MOST_CONCEDED = 205,
    PARTICIPANT_MOST_SCORED_PER_MATCH = 206,
    PARTICIPANT_MOST_CONCEDED_PER_MATCH = 207,
    GOAL_TOPSCORER = 208,
    ASSIST_TOPSCORER = 209,
    CARD_TOPSCORER = 210,
    HIGHEST_RATED_PLAYER = 211,
    HIGHEST_RATED_TEAM = 212,
    CONCEDED_SCORING_MINUTES = 213,
    WIN = 214,
    DRAW = 215,
    LOST = 216,
    VAR_MOMENTS = 314,
    APPEARANCES = 321,
    LINEUPS = 322,
    BENCH = 323,
    OWN_GOALS = 324,
    ERROR_LEAD_TO_GOAL = 571,
    REFEREES = 574,
    FAILED_TO_SCORE = 575,
    BIG_CHANCES_CREATED = 580,
    BIG_CHANCES_MISSED = 581,
    CLEARANCE_OFFLINE = 582,
    LAST_MAN_TACKLE = 583,
    GOOD_HIGH_CLAIM = 584,
    ACCURATE_PASS_PERCENTAGE = 1488,
    TREATMENTS = 1489,
    MAN_OF_MATCH = 1490,
    DUELS_LOST = 1491,
    COUNTER_ATTACKS = 1527,
    SUCCESSFUL_CROSSES_PERCENTAGE = 1533,
    GOALKEEPER_GOALS_CONCEDED = 1535,
    ACCURATE_PASSES_PERCENTAGE = 1584,
    PENALTY_TOPSCORER = 1600,
    MISSED_PENALTY_TOPSCORER = 1601,
    SUCCESSFUL_DRIBBLES_PERCENTAGE = 1605,
    SHOTS = 1677
}

export declare type TableDataHeaderProps = {
    headerImage?: string | undefined;
    headerTitle: string | undefined;
};

export declare type TableDataProps = {
    group_id: number | null;
    endingAt?: Date;
    sortOrder?: number;
    header?: TableDataHeaderProps;
    data: TableDataRowProps[];
};

export declare type TableDataRowProps = {
    rowImage: string | undefined;
    rowTitle: string | undefined;
    sortOrder?: JSX.Element | number | undefined;
    rowSubtitle: JSX.Element | string | undefined;
    rowColor?: string | undefined;
    highlightRow?: boolean | undefined;
    rowId?: number | undefined;
    clickedItemId?: number | undefined;
    clickedSecondaryItemId?: number | undefined;
    disabledRow?: boolean | undefined;
    subImage?: string | undefined;
    rowData?: {
        type_id: number | null;
        value: string | number | boolean | null;
    }[];
};

export declare type TableStatsMapProps = {
    type_id: number;
    icon: JSX.Element | string;
    keyStat: boolean;
    size?: string;
    highlight?: boolean;
    textSize?: SizeProps;
    type?: string;
    onlySeasonal?: boolean;
    onlyFixture?: boolean;
};

export declare function TeamInfo(props: PlayerBioProps_2): JSX_2.Element;

export declare function Toplist(props: TopscorerItemProps): JSX_2.Element | null;

declare interface TopscorerItemProps {
    data: TopscorerProps[];
    hideHeader?: boolean;
    showPlayerImages?: boolean;
    showClubName?: boolean;
    type: number | StatisticsTypes;
    rounded?: boolean;
    title?: string;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare type TopscorerProps = {
    id: number;
    season_id: number;
    player_id: number;
    type_id: number;
    position: number;
    total: number;
    participant_id: number;
    participant: ParticipantProps;
    player: PlayerProps;
};

export declare type TransferProps = {
    id: number;
    sport_id?: number | null;
    player_id?: number | null;
    type_id?: number | null;
    from_team_id?: number | null;
    to_team_id?: number | null;
    position_id?: number | null;
    detailed_position_id?: number | null;
    date?: string | null;
    career_ended?: boolean;
    completed?: boolean;
    amount?: number | null;
    fromteam?: ParticipantProps;
    toteam?: ParticipantProps;
    player?: PlayerProps;
};

export declare function Transfers(props: TransfersProps): JSX_2.Element;

declare interface TransfersProps {
    data: TransferProps[];
    clubId?: number;
    showClubLogos?: boolean;
    transferType?: "all" | "transferIn" | "transferOut" | undefined;
    showPlayer: boolean;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
}

export declare function Trophies(props: TrophyProps_2): JSX_2.Element;

export declare type TrophiesProps = {
    id?: number | null;
    participant_id?: number | null;
    team_id?: number | null;
    league_id?: number | null;
    season_id?: number | null;
    trophy_id?: number | null;
    league?: LeagueProps | null;
    season?: SeasonProps | null;
    trophy?: TrophyProps | null;
};

export declare type TrophyProps = {
    id: number | null;
    sport_id?: number | null;
    position?: number | null;
    name?: string | null;
};

declare type TrophyProps_2 = {
    data?: ParticipantProps | null;
    isLoading?: boolean;
    clickedListItem?: (id: number | {
        primary?: number;
        secondary?: number;
    } | undefined) => void;
};

export declare type VenueProps = {
    id?: number | null;
    country_id?: number | null;
    city_id?: number | null;
    name?: string | null;
    address?: string | null;
    zipcode?: string | null;
    latitude?: string | null;
    longitude?: string | null;
    capacity?: number | null;
    image_path?: string | null;
    city_name?: string | null;
    surface?: string | null;
    national_team?: boolean | null;
};

export { }
