export interface ChipOverride {
rules: Record<string, unknown>;
scoring: Record<string, unknown>;
element_types: any[];
pick_multiplier: number | null;
}
export interface Chip {
id: number;
name: string;
number: number;
start_event: number;
stop_event: number;
chip_type: string;
overrides: ChipOverride;
}
export interface ChipPlay {
chip_name: string;
num_played: number;
}
export interface TopElementInfo {
id: number;
points: number;
}
export interface EventOverride {
rules: Record<string, unknown>;
scoring: Record<string, unknown>;
element_types: any[];
pick_multiplier: number | null;
}
export interface Event {
id: number;
name: string;
deadline_time: string;
release_time: string | null;
average_entry_score: number;
finished: boolean;
data_checked: boolean;
highest_scoring_entry: number | null;
deadline_time_epoch: number;
deadline_time_game_offset: number;
highest_score: number | null;
is_previous: boolean;
is_current: boolean;
is_next: boolean;
cup_leagues_created: boolean;
h2h_ko_matches_created: boolean;
can_enter: boolean;
can_manage: boolean;
released: boolean;
ranked_count: number;
overrides: EventOverride;
chip_plays: ChipPlay[];
most_selected: number | null;
most_transferred_in: number | null;
top_element: number | null;
top_element_info: TopElementInfo | null;
transfers_made: number;
most_captained: number | null;
most_vice_captained: number | null;
}
export interface ElementType {
id: number;
plural_name: string;
plural_name_short: string;
singular_name: string;
singular_name_short: string;
squad_min_play: number;
squad_max_play: number;
squad_select: number;
element_count: number;
}
export interface Team {
code: number;
draw: number;
form: string | null;
id: number;
loss: number;
name: string;
played: number;
points: number;
position: number;
short_name: string;
strength: number;
team_division: number | null;
unavailable: boolean;
win: number;
strength_overall_home: number;
strength_overall_away: number;
strength_attack_home: number;
strength_attack_away: number;
strength_defence_home: number;
strength_defence_away: number;
pulse_id: number;
}
export interface Element {
can_transact: boolean;
can_select: boolean;
chance_of_playing_next_round: number | null;
chance_of_playing_this_round: number | null;
code: number;
cost_change_event: number;
cost_change_event_fall: number;
cost_change_start: number;
cost_change_start_fall: number;
dreamteam_count: number;
element_type: number;
ep_next: string;
ep_this: string;
event_points: number;
first_name: string;
form: string;
id: number;
in_dreamteam: boolean;
news: string;
news_added: string | null;
now_cost: number;
photo: string;
points_per_game: string;
removed: boolean;
second_name: string;
selected_by_percent: string;
special: boolean;
squad_number: number | null;
status: string;
team: number;
team_code: number;
total_points: number;
transfers_in: number;
transfers_in_event: number;
transfers_out: number;
transfers_out_event: number;
value_form: string;
value_season: string;
web_name: string;
}
export interface FplApiObject {
chips: Partial<Chip>[];
events: Partial<Event>[];
element_types: Partial<ElementType>[];
teams: Partial<Team>[];
elements: Partial<Element>[];
}