import { JSX } from 'react';
import { JSX as JSX_2 } from 'react/jsx-runtime';

declare type CountryProps = {
    continent_id?: number | null;
    country_id?: number;
    image_path?: string | null;
    name?: string | null;
};

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;

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;
};

declare type fixtureAggregateProps = {
    id: number;
    name: string;
    detail: string;
    result: string;
    stage_id: number;
    league_id: number;
    season_id: number;
    fixture_ids: number[];
};

declare type fixtureMetadataProps = {
    id: number;
    metadatable_id: number;
    type_id: number;
    value_type: string;
    values: {
        neutral?: boolean;
        confirmed?: boolean;
    };
};

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;
};

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;
};

declare type FormationProps = {
    id: number | null;
    fixture_id: number | null;
    participant_id: number | null;
    formation: string | null;
    location: string | null;
    participant?: ParticipantProps | null;
};

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;
};

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;
    };
};

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;
};

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;
    };
};

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;
};

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;
};

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;
};

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;
    };
};

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;
};

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;
};

declare type ScoresAnimationProps = {
    oldScores: ScoresProps[] | null;
    newScores: ScoresProps[] | null;
    animate: boolean;
    flashLabel: boolean;
    scorePulsate: boolean;
    scoreReveal: boolean;
};

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;
};

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;
};

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 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;
};

declare type TrophyProps = {
    id: number | null;
    sport_id?: number | null;
    position?: number | null;
    name?: string | null;
};

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 { }
