import { StageSettings } from './input';
import { MatchResults } from './other';
import { Id, StageType } from './unions';
/**
 * A participant of a stage (team or individual).
 */
export interface Participant {
    /** ID of the participant. */
    id: Id;
    /** ID of the tournament this participant belongs to. */
    tournament_id: Id;
    /** Name of the participant. */
    name: string;
}
/**
 * A stage, which can be a round-robin stage or a single/double elimination stage.
 */
export interface Stage {
    /** ID of the stage. */
    id: Id;
    /** ID of the tournament this stage belongs to. */
    tournament_id: Id;
    /** Name of the stage. */
    name: string;
    /** Type of the stage. */
    type: StageType;
    /** Settings of the stage. */
    settings: StageSettings;
    /** The number of the stage in its tournament. */
    number: number;
}
/**
 * A group of a stage.
 */
export interface Group {
    /** ID of the group. */
    id: Id;
    /** ID of the parent stage. */
    stage_id: Id;
    /** The number of the group in its stage. */
    number: number;
}
/**
 * A round of a group.
 */
export interface Round {
    /** ID of the round. */
    id: Id;
    /** ID of the parent stage. */
    stage_id: Id;
    /** ID of the parent group. */
    group_id: Id;
    /** The number of the round in its group. */
    number: number;
}
/**
 * A match of a round.
 */
export interface Match extends MatchResults {
    /** ID of the match. */
    id: Id;
    /** ID of the parent stage. */
    stage_id: Id;
    /** ID of the parent group. */
    group_id: Id;
    /** ID of the parent round. */
    round_id: Id;
    /** The number of the match in its round. */
    number: number;
    /** The count of match games this match has. Can be `0` if it's a simple match, or a positive number for "Best Of" matches. */
    child_count: number;
}
/**
 * A game of a match.
 */
export interface MatchGame extends MatchResults {
    /** ID of the match game. */
    id: Id;
    /** ID of the parent stage. */
    stage_id: Id;
    /** ID of the parent match. */
    parent_id: Id;
    /** The number of the match game in its parent match. */
    number: number;
}
