import type { HttpClient as Transport } from '../client/http.js'; import type { YahooPlayerResponseDto, YahooPlayersResponseDto } 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 type { PlayerKeyLike } from './types.js'; type DateString = `${number}-${number}-${number}`; type PlayerStatus = 'A' | 'FA' | 'W' | 'T' | 'K'; type PlayerSort = `${number}` | 'NAME' | 'OR' | 'AR' | 'PTS'; type StatsCoverageType = 'season' | 'date' | 'week' | 'lastweek' | 'lastmonth'; type PlayerSortType = StatsCoverageType; type PlayerExpansion = 'stats' | 'ownership'; type PlayerExpansionField = T extends 'stats' ? 'playerStats' : T extends 'ownership' ? 'ownership' : never; type PlayerExpansionPath = TSubResource extends TSubResource ? PlayerExpansionField extends infer TField extends string ? AppendResponsePath : never : never; type PlayerFilters = { week?: `${number}`; date?: DateString; }; type PlayersCollectionFilters = PlayerFilters & { position?: string; status?: PlayerStatus; search?: string; sort?: PlayerSort; sort_type?: PlayerSortType; sort_season?: `${number}`; sort_week?: `${number}`; sort_date?: DateString; start?: number; count?: number; }; type PlayerResourceParams = ResourceParams & PlayerFilters; type PlayersCollectionParams = CollectionParams & PlayersCollectionFilters; type PlayerStatsResourceParams = SubResourceParams<'stats'> & { type?: StatsCoverageType; week?: `${number}`; date?: DateString; }; type PlayerOwnershipResourceParams = SubResourceParams<'ownership'>; type PlayerPercentOwnedResourceParams = SubResourceParams<'percent_owned'>; declare abstract class PlayerBase extends Resource> { stats(): PlayerStatsResource>; ownership(): PlayerOwnershipResource>; percentOwned(): PlayerPercentOwnedResource>; } export declare class PlayerResource extends PlayerBase { static create(transport: Transport, state: RequestState, key: PlayerKeyLike): PlayerResource; include(...subResources: TSubResources): PlayerResource>; } export declare class PlayersCollection extends PlayerBase { static create(transport: Transport, state: RequestState, keys?: PlayerKeyLike[]): PlayersCollection; include(...subResources: TSubResources): PlayersCollection>; position(position: string): this; status(status: PlayerStatus): this; search(search: string): this; sort(sort: PlayerSort): this; sortType(sort_type: PlayerSortType): this; sortSeason(season: number | `${number}`): this; sortWeek(week: number | `${number}`): this; sortDate(sort_date: DateString): this; week(week: number | `${number}`): this; date(date: DateString): this; start(start: number): this; count(count: number): this; } export declare class PlayerStatsResource extends Resource> { static create(transport: Transport, state: RequestState): PlayerStatsResource; type(coverageType: StatsCoverageType): this; week(week: number | `${number}`): this; date(date: DateString): this; } export declare class PlayerOwnershipResource extends Resource> { static create(transport: Transport, state: RequestState): PlayerOwnershipResource; } export declare class PlayerPercentOwnedResource extends Resource> { static create(transport: Transport, state: RequestState): PlayerPercentOwnedResource; } export {}; //# sourceMappingURL=player.d.ts.map