import { IEntrant , IEntrantData , IEntrantDataFull , IEntrantOptions } from './IEntrant' ; import { IAttendee , IAttendeeData , IAttendeeOptions } from './IAttendee' ; import { IGGSet , IGGSetData , IGGSetOptions } from './IGGSet' ; import { ISeed , ISeedData , ISeedOptions } from './ISeed' ; export interface IPhaseGroup { getId ( ) : number ; getPhaseId ( ) : number ; getDisplayIdentifier ( ) : string | null ; getFirstRoundTime ( ) : number | null ; getState ( ) : number | null ; getWaveId ( ) : number | null ; getTiebreakOrder ( ) : object | null ; getSeeds ( options ? ) : Promise < ISeed [ ] > ; getEntrants ( options ? ) : Promise < IEntrant [ ] > ; getAttendees ( options ? ) : Promise < IAttendee [ ] > ; getSets ( options ? ) : Promise < IGGSet [ ] > ; getCompleteSets ( options ? ) : Promise < IGGSet [ ] > ; getIncompleteSets ( options ? ) : Promise < IGGSet [ ] > ; getSetsXMinutesBack ( minutes , options ) : Promise < IGGSet [ ] > ; } export interface IPhaseGroupDataFull { phaseGroup : IPhaseGroupData ; } export interface IPhaseGroupEventData { event : { phaseGroups : IPhaseGroupData [ ] ; } ; } export interface IPhaseGroupData { id : number ; phaseId : number ; displayIdentifier : string | null ; firstRoundTime : number | null ; state : number | null ; waveId : number | null ; tiebreakOrder : object | null ; } export interface IPhaseGroupEntrantData { phaseGroup : { paginatedSeeds : { pageInfo ? : { totalPages : number ; } ; nodes : IEntrantDataFull [ ] ; } ; } ; } export interface IPhaseGroupAttendeeData { phaseGroup : { paginatedSeeds : { pageInfo ? : { totalPages : number ; } ; nodes : { entrant : { participants : IAttendeeData [ ] ; } ; } ; } ; } ; } export interface IPhaseGroupSetData { phaseGroup : { paginatedSets : { pageInfo ? : { totalPages : number ; } ; nodes : IGGSetData [ ] ; } ; } ; } export interface IPhaseGroupSeedData { phaseGroup : { paginatedSeeds : { pageInfo ? : { totalPages : number ; } ; nodes : ISeedData [ ] ; } ; } ; }