import type { HttpClient as Transport } from '../client/http.js'; import type { YahooGameResponseDto, YahooGamesResponseDto } from '../domain/normalized.js'; import { LeaguesCollection } from './league.js'; import { PlayersCollection } from './player.js'; import { type CollectionParams, type RequestState, Resource, type ResourceParams } from './resource.js'; import type { AppendResponsePath, RequireResponsePath, ResponsePath } from './response-contract.js'; import { TeamsCollection } from './team.js'; import type { GameKeyLike, LeagueKeyLike, PlayerKeyLike, TeamKeyLike } from './types.js'; declare const gameSubResources: readonly ['game_weeks', 'metadata', 'position_types', 'stat_categories']; type GameSubResource = (typeof gameSubResources)[number]; type GameExpansionField = TSubResource extends 'game_weeks' ? 'gameWeeks' : TSubResource extends 'position_types' ? 'positionTypes' : TSubResource extends 'stat_categories' ? 'statCategories' : never; type GameExpansionPath = TSubResource extends TSubResource ? GameExpansionField extends infer TField extends string ? AppendResponsePath : never : never; type GameTypes = 'full' | 'pickem-group' | 'pickem-team-list' | 'pickem-team'; type GameFilters = { seasons?: `${number}`[]; is_available?: '1'; game_types?: GameTypes[]; }; type GameResourceParams = ResourceParams; type GamesCollectionParams = CollectionParams & GameFilters; type GamesCollectionContext = 'root' | 'user'; type GamesLeagueArguments = TContext extends 'root' ? [key: LeagueKeyLike, ...keys: LeagueKeyLike[]] | [keys: readonly [LeagueKeyLike, ...LeagueKeyLike[]]] : LeagueKeyLike[] | [keys: LeagueKeyLike[]]; declare abstract class GameBase extends Resource> { players(...keys: PlayerKeyLike[]): PlayersCollection>; players(keys: PlayerKeyLike[]): PlayersCollection>; } export declare class GameResource extends GameBase { static create(transport: Transport, state: RequestState, key: GameKeyLike): GameResource; leagues(key: LeagueKeyLike, ...keys: LeagueKeyLike[]): LeaguesCollection>; leagues(keys: readonly [LeagueKeyLike, ...LeagueKeyLike[]]): LeaguesCollection>; include(...subResources: TSubResources): GameResource>; gameWeeks(): GameResource>; positionTypes(): GameResource>; statCategories(): GameResource>; } export declare class GamesCollection extends GameBase { static create(transport: Transport, state: RequestState, keys?: GameKeyLike[]): GamesCollection; static createForUser(transport: Transport, state: RequestState, keys?: GameKeyLike[]): GamesCollection; leagues(...keys: GamesLeagueArguments): LeaguesCollection>; teams(this: GamesCollection, ...keys: TeamKeyLike[]): TeamsCollection>; teams(this: GamesCollection, keys: TeamKeyLike[]): TeamsCollection>; include(...subResources: TSubResources): GamesCollection, TContext>; gameWeeks(): GamesCollection, TContext>; positionTypes(): GamesCollection, TContext>; statCategories(): GamesCollection, TContext>; } export {}; //# sourceMappingURL=game.d.ts.map