import type { HttpClient as Transport } from '../client/http.js'; import type { YahooTeamResponseDto, YahooTeamsResponseDto } from '../domain/normalized.js'; import { type CollectionParams, type RequestState, Resource, type ResourceParams, type SubResourceParams } from './resource.js'; import type { AppendResponsePath, RequireResponsePath, ResponsePath } from './response-contract.js'; import { RosterResource } from './roster.js'; import type { TeamKeyLike } from './types.js'; export declare const teamSubResources: readonly ['metadata', 'roster', 'matchups', 'stats']; type DateString = `${number}-${number}-${number}`; type StatsCoverageType = 'season' | 'date' | 'week'; type TeamSubResource = (typeof teamSubResources)[number]; type TeamExpansionField = T extends 'stats' ? 'teamStats' : T extends 'roster' | 'matchups' ? T : never; type TeamExpansionPath = TSubResource extends TSubResource ? TeamExpansionField extends infer TField extends string ? AppendResponsePath : never : never; type TeamMatchupsFilters = { weeks?: `${number}`[]; }; type TeamStatsFilters = { week?: `${number}`; date?: DateString; type?: StatsCoverageType; }; type TeamResourceParams = ResourceParams; type TeamsCollectionParams = CollectionParams; type TeamStatsParams = SubResourceParams<'stats'> & TeamStatsFilters; type TeamMatchupsParams = SubResourceParams<'matchups'> & TeamMatchupsFilters; export declare class TeamResource extends Resource> { static create(transport: Transport, state: RequestState, key: TeamKeyLike): TeamResource; roster(): RosterResource>; matchups(): TeamMatchupsResource>; stats(): TeamStatsResource>; include(...subResources: TSubResources): TeamResource>; } export declare class TeamsCollection extends Resource> { static create(transport: Transport, state: RequestState, keys?: TeamKeyLike[]): TeamsCollection; roster(): RosterResource>; matchups(): TeamMatchupsResource>; stats(): TeamStatsResource>; include(...subResources: TSubResources): TeamsCollection>; } export declare class TeamMatchupsResource extends Resource> { static create(transport: Transport, state: RequestState): TeamMatchupsResource; weeks(weeks: readonly (number | `${number}`)[]): this; } export declare class TeamStatsResource extends Resource> { static create(transport: Transport, state: RequestState): TeamStatsResource; week(week: number | `${number}`): Omit; date(date: DateString): Omit; } export {}; //# sourceMappingURL=team.d.ts.map