nhle-api 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.cts CHANGED
@@ -2,132 +2,10 @@ import * as arktype_internal_variants_number_ts from 'arktype/internal/variants/
2
2
  import * as arktype_internal_variants_string_ts from 'arktype/internal/variants/string.ts';
3
3
  import * as arktype_internal_variants_object_ts from 'arktype/internal/variants/object.ts';
4
4
  import * as arktype from 'arktype';
5
+ import { Out } from 'arktype';
5
6
  import * as arktype_internal_attributes_ts from 'arktype/internal/attributes.ts';
6
-
7
- /** Categories for save location top-10 list */
8
- declare const SaveLocationCategoryEnum: {
9
- /** Save Percentage */
10
- readonly 'SV%': "save-pctg";
11
- /** Saves */
12
- readonly SV: "saves";
13
- /** Shots Against */
14
- readonly SA: "shots-against";
15
- /** Goals Against */
16
- readonly GA: "goals-against";
17
- };
18
- /** Sort options for shot location top-10 list */
19
- declare const ShotLocationSortEnum: {
20
- /** All shot locations */
21
- readonly ALL: "all";
22
- /** High-danger (i.e. close-range) shot locations */
23
- readonly HIGH: "high";
24
- /** Mid-range shot locations */
25
- readonly MID: "mid";
26
- /** Long-range shot locations */
27
- readonly LONG: "long";
28
- };
29
- /** Alias for ShotLocationSortEnum */
30
- declare const SaveLocationSortEnum: {
31
- /** All shot locations */
32
- readonly ALL: "all";
33
- /** High-danger (i.e. close-range) shot locations */
34
- readonly HIGH: "high";
35
- /** Mid-range shot locations */
36
- readonly MID: "mid";
37
- /** Long-range shot locations */
38
- readonly LONG: "long";
39
- };
40
- /** Sort options for 5v5 save percentage top-10 list */
41
- declare const SavePercentage5v5SortEnum: {
42
- /**5v5 Save %: The percentage of shots a goalie stops at even strength (5-on-5). */
43
- readonly '5v5-SV%': "save-pctg";
44
- /**5v5 Save % in Close Situations: A “close situation” is the time during which a game is tied in the first or second period, or within one goal in the third period. This stats helps how goalies perform in high-pressure situations.*/
45
- readonly '5v5-SV%-Close': "save-pctg-close";
46
- /**5v5 Shots Against: The total number of shots a goalie faces at even strength (5-on-5).*/
47
- readonly '5v5-SA': "shots";
48
- /**5v5 Shots Against per 60 Minutes: The total number of shots a goalie faces at even strength (5-on-5) normalized to a 60-minute game. */
49
- readonly '5v5-SA/60': "shots-per-60";
50
- };
51
- /** Sort options for save percentage top-10 list */
52
- declare const SavePercentageSortEnum: {
53
- /** Starts above .900 */
54
- readonly GAMES: "games";
55
- /** Percentage of starts above .900 */
56
- readonly PCTG: "pctg";
57
- };
58
- /** Filter options for player positions */
59
- declare const PositionFilterEnum: {
60
- /** Center */
61
- readonly ALL: "all";
62
- /** Left Wing */
63
- readonly FWD: "forwards";
64
- /** Right Wing */
65
- readonly DEF: "defense";
66
- };
67
- /** Categories for skater strength */
68
- declare const SkatersStrengthEnum: {
69
- /** All strengths */
70
- readonly ALL: "all";
71
- /** Even strength */
72
- readonly ES: "es";
73
- /** Power play */
74
- readonly PP: "pp";
75
- /** Short-handed */
76
- readonly PK: "pk";
77
- };
78
- /** Sorting options for shot speed top-10 list */
79
- declare const ShotSpeedSortEnum: {
80
- /** Hardest shot recorded by player */
81
- readonly MAX: "max";
82
- /** Shots over 100 mph */
83
- readonly 'OVER-100': "over-100";
84
- /** Shots between 90 and 99 mph */
85
- readonly '90-99': "90-99";
86
- /** Shots between 80 and 89 mph */
87
- readonly '80-89': "80-89";
88
- /** Shots between 70 and 79 mph */
89
- readonly '70-79': "70-79";
90
- };
91
- /** Sorting options for skating speed top-10 list */
92
- declare const SkatingSpeedSortEnum: {
93
- /** Fastest skating speed recorded by player */
94
- readonly TOP: "max";
95
- /** Speed bursts recorded over 22 mph */
96
- readonly 'OVER-22': "over-22";
97
- /** Speed bursts recorded between 20 and 22 mph */
98
- readonly '20-22': "20-22";
99
- /** Speed bursts recorded between 18 and 20 mph */
100
- readonly '18-20': "18-20";
101
- };
102
- /** Sorting options for skating distance top-10 list */
103
- declare const SkatingDistanceSortEnum: {
104
- /** Total distance skated */
105
- TOTAL: string;
106
- /** Average distance skated per 60 minutes */
107
- 'PER-60': string;
108
- /** Maximum distance skated in a single period */
109
- 'MAX-PERIOD': string;
110
- /** Maximum distance skated in a single game */
111
- 'MAX-GAME': string;
112
- };
113
- /** Categories for shot location top-10 list */
114
- declare const ShotLocationCategoryEnum: {
115
- /** Total shots on goal */
116
- readonly SOG: "sog";
117
- /** Total goals */
118
- readonly G: "goals";
119
- /** Shooting percentage */
120
- readonly 'SH%': "shooting-pctg";
121
- };
122
- /** Sorting options for zone time top-10 lists. */
123
- declare const ZoneTimeSortEnum: {
124
- /** Percentage of time spent in the offensive zone */
125
- readonly OZ: "offensive";
126
- /** Percentage of time spent in the defensive zone */
127
- readonly DZ: "defensive";
128
- /** Percentage of time spent in the neutral zone */
129
- readonly NZ: "neutral";
130
- };
7
+ import { C as CayenneQueryBuilder } from './nhl-B7Hg7iMB.cjs';
8
+ export { a as CayenneCondition, c as CayenneExpression, d as CayenneGroup, n as NHL, b as buildCayenneExp, e as createCayenneQuery } from './nhl-B7Hg7iMB.cjs';
131
9
 
132
10
  /**
133
11
  * Error handling module for NHL Sports Data API wrapper
@@ -150,6 +28,14 @@ declare const ErrorCategory: {
150
28
  readonly VALIDATION: "VALIDATION";
151
29
  };
152
30
  type ErrorCategory = (typeof ErrorCategory)[keyof typeof ErrorCategory];
31
+ declare const LogLevel$1: {
32
+ NONE: number;
33
+ ERROR: number;
34
+ WARN: number;
35
+ INFO: number;
36
+ DEBUG: number;
37
+ };
38
+ type LogLevel$1 = (typeof LogLevel$1)[keyof typeof LogLevel$1];
153
39
  interface ErrorContext {
154
40
  /** HTTP status code if applicable */
155
41
  statusCode?: number;
@@ -168,6 +54,14 @@ interface ErrorContext {
168
54
  /** Additional metadata */
169
55
  metadata?: Record<string, unknown>;
170
56
  }
57
+ interface ErrorConfig {
58
+ /** Logging level for error output */
59
+ logLevel?: LogLevel$1;
60
+ /** Custom logger function */
61
+ logger?: (level: LogLevel$1, message: string, context?: ErrorContext) => void;
62
+ /** Whether to include stack traces */
63
+ includeStack?: boolean;
64
+ }
171
65
  /**
172
66
  * Base error class for all NHL API errors
173
67
  */
@@ -186,79 +80,1689 @@ declare class NHLError extends Error {
186
80
  context: ErrorContext;
187
81
  };
188
82
  }
189
-
190
- declare const Year$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
191
- declare const NHLMonth$1: arktype_internal_variants_object_ts.ObjectType<(In: string | Date) => arktype.Out<string>, {}>;
192
- declare const NHLDate$1: arktype_internal_variants_object_ts.ObjectType<(In: string | Date) => arktype.Out<string>, {}>;
193
- declare const Season$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => arktype.Out<string>, {}>;
194
- declare const TeamAbbrev$1: arktype_internal_variants_string_ts.StringType<"ANA" | "BOS" | "BUF" | "CGY" | "CAR" | "CHI" | "COL" | "CBJ" | "DAL" | "DET" | "EDM" | "FLA" | "LAK" | "MIN" | "MTL" | "NJD" | "NSH" | "NYI" | "NYR" | "OTT" | "PHI" | "PIT" | "SJS" | "SEA" | "STL" | "TBL" | "TOR" | "UTA" | "VAN" | "VGK" | "WPG" | "WSH" | "AFM" | "ARI" | "ATL" | "BRK" | "CGS" | "CLE" | "CLR" | "DCG" | "DFL" | "HAM" | "HFD" | "KCS" | "MMR" | "MNS" | "MWN" | "NYA" | "OAK" | "PHX" | "PIR" | "QBD" | "QUA" | "QUE" | "SEN" | "SLE" | "TAN" | "TSP" | "WIN", {}>;
195
- declare const TeamId$1: arktype_internal_variants_number_ts.NumberType<1 | 10 | 2 | 3 | 4 | 24 | 6 | 7 | 20 | 12 | 16 | 21 | 29 | 25 | 17 | 22 | 13 | 26 | 30 | 8 | 18 | 9 | 5 | 28 | 55 | 19 | 14 | 59 | 23 | 54 | 52 | 15 | 47 | 53 | 11 | 51 | 56 | 49 | 35 | 40 | 50 | 37 | 34 | 48 | 43 | 31 | 41 | 44 | 46 | 27 | 38 | 42 | 39 | 32 | 36 | 45 | 57 | 58 | 33, {}>;
196
- declare const GameType$1: arktype.BaseType<1 | 2 | 3 | 4 | 19 | ((In: "REG" | "PRE" | "POST" | "ASG" | "INTL") => arktype.Out<1 | 2 | 3 | 4 | 19>), {}>;
197
- declare const GameNumber$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => arktype.Out<string>, {}>;
198
- declare const DraftRound$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => arktype.Out<string>, {}>;
199
- declare const EventId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
200
- declare const GameId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
201
- declare const SeriesLetter$2: arktype_internal_variants_string_ts.StringType<"A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O", {}>;
202
- declare const GameState$2: arktype_internal_variants_string_ts.StringType<"FUT" | "LIV" | "FIN", {}>;
203
- declare const CountryCode$2: arktype_internal_variants_object_ts.ObjectType<(In: string) => arktype.Out<string>, {}>;
204
- declare const PostalCode$1: arktype_internal_variants_string_ts.StringType<string, {}>;
205
- declare const PlayerId$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => arktype.Out<string>, {}>;
206
-
207
83
  /**
208
- * Represents a valid NHL year (e.g., 2023, 2024, ...)
84
+ * Network-level errors (timeouts, connection failures)
209
85
  */
210
- type Year = typeof Year$1.inferIn;
86
+ declare class NetworkError extends NHLError {
87
+ constructor(message: string, context?: ErrorContext);
88
+ }
211
89
  /**
212
- * Represents an NHL season in the format YYYYYYYY (e.g., 20232024)
90
+ * HTTP 4xx client errors
213
91
  */
214
- type Season = typeof Season$1.inferIn;
92
+ declare class ClientError extends NHLError {
93
+ constructor(message: string, context?: ErrorContext);
94
+ }
215
95
  /**
216
- * Represents a valid NHL game type (e.g. REG, PRE, POST)
96
+ * HTTP 404 resource not found
217
97
  */
218
- type GameType = typeof GameType$1.inferIn;
98
+ declare class NotFoundError extends ClientError {
99
+ constructor(message?: string, context?: ErrorContext);
100
+ }
219
101
  /**
220
- * Represents an NHL game ID with regex /\d{10}/
221
- * Breakdown of the ID: (YYYYTTNNNN)
222
- * - First 4 digits: Year of the game (YYYY)
223
- * - Next 2 digits: Game type (TT)(01 for preseason, 02 for regular
224
- * season, 03 for playoffs)
225
- * - Next 4 digits: Game number of the season (NNNN)
102
+ * HTTP 5xx server errors
226
103
  */
227
- type GameId = typeof GameId$1.inferIn;
104
+ declare class ServerError extends NHLError {
105
+ constructor(message: string, context?: ErrorContext);
106
+ }
228
107
  /**
229
- * Represents a valid NHL team abbreviation (e.g., NYR, MTL, ...)
108
+ * HTTP 429 rate limit errors
230
109
  */
231
- type TeamAbbrev = typeof TeamAbbrev$1.inferIn | (string & {});
110
+ declare class RateLimitError extends NHLError {
111
+ readonly retryAfter?: number;
112
+ constructor(message?: string, context?: ErrorContext, retryAfter?: number);
113
+ }
232
114
  /**
233
- * Represents a valid NHL team ID
115
+ * API returned 200 but with error message in JSON payload
234
116
  */
235
- type TeamId = typeof TeamId$1.inferIn | (number & {});
117
+ declare class APIError extends NHLError {
118
+ constructor(message: string, context?: ErrorContext);
119
+ }
236
120
  /**
237
- * Represents a valid NHL game number
121
+ * Response parsing or validation failures
238
122
  */
239
- type GameNumber = typeof GameNumber$1.inferIn;
123
+ declare class ParseError extends NHLError {
124
+ constructor(message: string, context?: ErrorContext);
125
+ }
240
126
  /**
241
- * Represents a valid NHL game state
127
+ * Invalid user input or configuration
242
128
  */
243
- type GameState$1 = typeof GameState$2.inferIn;
129
+ declare class ValidationError extends NHLError {
130
+ constructor(message: string, context?: ErrorContext);
131
+ }
244
132
  /**
245
- * Represents a valid draft round (1-7)
133
+ * Error handler utility class
246
134
  */
247
- type DraftRound = typeof DraftRound$1.inferIn;
135
+ declare class ErrorHandler {
136
+ private overrides;
137
+ /**
138
+ * @param config - Overrides; an unset `logLevel` follows the shared
139
+ * `config.logLevel` at log time.
140
+ */
141
+ constructor(config?: ErrorConfig);
142
+ private get config();
143
+ /**
144
+ * Default console-based logger
145
+ */
146
+ private defaultLogger;
147
+ /**
148
+ * Log an error based on configuration
149
+ */
150
+ log(error: NHLError): void;
151
+ /**
152
+ * Determine log level based on error category
153
+ */
154
+ private getLogLevel;
155
+ /**
156
+ * Create error from HTTP response
157
+ */
158
+ fromResponse(response: Response, context?: Omit<ErrorContext, 'statusCode'>): Promise<NHLError>;
159
+ /**
160
+ * Create error from caught exception
161
+ */
162
+ fromError(error: unknown, context?: ErrorContext): NHLError;
163
+ /**
164
+ * Update configuration
165
+ */
166
+ configure(config: Partial<ErrorConfig>): void;
167
+ }
168
+
248
169
  /**
249
- * Represents a valid NHL event ID
170
+ * NHL API Client Type Definitions
250
171
  */
251
- type EventId = typeof EventId$1.inferIn;
172
+
252
173
  /**
253
- * Represents a valid NHL date in the format YYYY-MM-DD
174
+ * Configuration options for the NHL API client
254
175
  */
255
- type NHLDate = typeof NHLDate$1.inferIn;
176
+ interface NHLClientConfig {
177
+ /**
178
+ * Base URL for the NHL API
179
+ * @default 'https://api-web.nhle.com/v1'
180
+ */
181
+ baseUrl?: string;
182
+ /**
183
+ * Request timeout in milliseconds
184
+ * @default 5000 (5 seconds)
185
+ */
186
+ timeout?: number;
187
+ /**
188
+ * Additional headers to include with every request
189
+ */
190
+ headers?: Record<string, string>;
191
+ /**
192
+ * Language code for localized responses
193
+ * @default 'en' (English)
194
+ */
195
+ language?: 'en' | 'fr';
196
+ }
197
+ type APIResult<T> = {
198
+ success: true;
199
+ data: T;
200
+ } | {
201
+ success: false;
202
+ error: NHLError;
203
+ };
204
+
256
205
  /**
257
- * Represents a valid NHL month in the format YYYY-MM
206
+ * Common types used in Gamecenter API responses
258
207
  */
259
- type NHLMonth = typeof NHLMonth$1.inferIn;
208
+ /** The current state of the game. */
209
+ type GameState$2 = 'OFF' | 'FUT' | 'LIVE' | 'PRE' | 'CRIT' | 'FINAL';
210
+ /** The current state of the game. */
211
+ type GameScheduleState = 'OK' | 'TBD' | 'CNCL' | (string & {});
212
+ /** The type of period in the game. */
213
+ type PeriodType = 'REG' | 'OT' | 'SO';
214
+ /** Abbreviated day of the week. (MON = Monday, TUE = Tuesday ...) */
215
+ type DayAbbrev = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';
216
+ /** The type of penalty. (MIN = Minor, BEN = Bench, MAJ = Major ...) */
217
+ type PenaltyTypeCode = 'MIN' | 'BEN' | 'MAJ' | (string & {});
218
+ /** The market for this broadcast. (H = Home, A = Away, N = National, S = Satellite Radio) */
219
+ type Market = 'H' | 'A' | 'N' | 'S';
220
+ /** The country code for this broadcast. (CA = Canada, US = United States) */
221
+ type CountryCode$2 = 'CA' | 'US';
222
+ /** The position code for a player. (C = Center, L[W] = Left Wing, R[W] = Right Wing, D = Defenseman, G = Goalie) */
223
+ type PositionCode = 'C' | 'LW' | 'L' | 'RW' | 'R' | 'D' | 'G';
224
+ /** Player's shooting/catching handedness. (L = Left, R = Right) */
225
+ type ShootsCatches = 'L' | 'R';
226
+ type HexColorCode = `#${string}`;
227
+ type UTCOffset = `+${number}:${number}` | `-${number}:${number}`;
228
+ type GoalModifier = 'none' | 'empty-net' | 'awarded-empty-net';
229
+ type DefendingSide = 'left' | 'right';
230
+ type Strength = 'ev' | 'pp' | 'sh';
231
+ type ZoneCode = 'N' | 'D' | 'O';
232
+ type ShotType = 'backhand' | 'bat' | 'between-legs' | 'deflected' | 'poke' | 'slap' | 'snap' | 'tip-in' | 'wrap-around' | 'wrist' | (string & {});
233
+ type PenaltyDescKey = 'tripping' | 'hooking' | 'interference' | 'high-sticking' | 'roughing' | 'unsportsmanlike-conduct' | 'slashing' | 'delaying-game-puck-over-glass' | 'holding' | 'holding-the-stick' | 'too-many-men-on-the-ice' | 'fighting' | 'minor' | 'cross-checking' | (string & {});
234
+ type Reason = 'blocked' | 'failed-bank-attempt' | 'wide-right' | 'goalie-stopped-after-sog' | 'offside' | 'teammate-blocked' | 'icing' | 'puck-in-netting' | 'wide-left' | 'high-and-wide-left' | 'puck-frozen' | 'above-crossbar' | 'tv-timeout' | 'hand-pass' | 'skater-puck-frozen' | 'high-stick' | 'high-and-wide-right' | 'hit-crossbar' | 'puck-in-benches' | 'hit-right-post' | 'short' | 'referee-or-linesman' | 'puck-in-crowd' | 'hit-left-post' | 'player-equipment' | 'net-dislodged-defensive-skater' | 'home-timeout' | 'chlg-hm-goal-interference' | 'video-review' | 'chlg-league-missed-stoppage' | 'visitor-timeout' | 'official-injury' | (string & {});
235
+ type EventTypeDescKey = 'period-start' | 'faceoff' | 'blocked-shot' | 'goal' | 'hit' | 'giveaway' | 'missed-shot' | 'shot-on-goal' | 'stoppage' | 'takeaway' | 'penalty' | 'period-end' | 'delayed-penalty' | 'game-end' | (string & {});
236
+ /** An object containing a default string an optional localized strings. */
237
+ interface LocalizedText {
238
+ /** Default */
239
+ default: string;
240
+ /** French */
241
+ fr?: string;
242
+ /** Czech */
243
+ cs?: string;
244
+ /** German */
245
+ de?: string;
246
+ /** Spanish */
247
+ es?: string;
248
+ /** Finnish */
249
+ fi?: string;
250
+ /** Slovak */
251
+ sk?: string;
252
+ /** Swedish */
253
+ sv?: string;
254
+ }
255
+ interface TvBroadcast {
256
+ id: number;
257
+ market: Market;
258
+ countryCode: CountryCode$2;
259
+ network: string;
260
+ sequenceNumber: number;
261
+ }
262
+
260
263
  /**
261
- * Represents a valid NHL series letter (A-O)
264
+ * Response types for the NHL Edge advanced stats endpoints
265
+ * (api-web.nhle.com/v1/edge/*), exposed as the `adv` namespace.
266
+ *
267
+ * Generated from live responses for two seasons (regular season and
268
+ * playoffs) and kept in step by the API drift check.
269
+ */
270
+
271
+ /** A measurement in both unit systems (mph/km/h, feet/metres or miles/km) */
272
+ interface EdgeMeasurement {
273
+ imperial: number;
274
+ metric: number;
275
+ }
276
+ /** A season with Edge data and the game types it covers */
277
+ interface EdgeSeason {
278
+ id: number;
279
+ gameTypes: number[];
280
+ }
281
+ /** The game a stat was recorded in, shown as an overlay on nhl.com/edge */
282
+ interface EdgeOverlay {
283
+ player?: {
284
+ firstName: LocalizedText;
285
+ lastName: LocalizedText;
286
+ };
287
+ gameDate: string;
288
+ awayTeam: {
289
+ abbrev: string;
290
+ score: number;
291
+ };
292
+ homeTeam: {
293
+ abbrev: string;
294
+ score: number;
295
+ };
296
+ gameOutcome: {
297
+ lastPeriodType: string;
298
+ otPeriods?: number;
299
+ };
300
+ periodDescriptor: EdgePeriodDescriptor;
301
+ timeInPeriod?: string;
302
+ gameType: number;
303
+ }
304
+ /** Period of a game event */
305
+ interface EdgePeriodDescriptor {
306
+ maxRegulationPeriods: number;
307
+ number: number;
308
+ periodType: string;
309
+ }
310
+ /** Team logo URLs for light and dark backgrounds */
311
+ interface EdgeTeamLogos {
312
+ light: string;
313
+ dark: string;
314
+ }
315
+ /**
316
+ * A team as Edge responses nest it. Detail and landing endpoints add
317
+ * the optional fields; game rows carry only names, abbrev and logos.
318
+ */
319
+ interface EdgeTeam {
320
+ commonName: LocalizedText;
321
+ placeNameWithPreposition: LocalizedText;
322
+ abbrev?: string;
323
+ teamLogo: EdgeTeamLogos;
324
+ id?: number;
325
+ slug?: string;
326
+ conference?: string;
327
+ division?: string;
328
+ wins?: number;
329
+ losses?: number;
330
+ otLosses?: number;
331
+ gamesPlayed?: number;
332
+ points?: number;
333
+ }
334
+ /**
335
+ * A player as Edge responses nest it. Detail endpoints add season totals
336
+ * (skater or goalie); top-10 rows carry only names, slug and team.
337
+ */
338
+ interface EdgePlayer {
339
+ birthDate?: string;
340
+ id?: number;
341
+ firstName: LocalizedText;
342
+ lastName: LocalizedText;
343
+ sweaterNumber?: number;
344
+ position?: string;
345
+ slug: string;
346
+ headshot?: string;
347
+ shootsCatches?: string;
348
+ team?: EdgeTeam;
349
+ goals?: number;
350
+ assists?: number;
351
+ points?: number;
352
+ gamesPlayed?: number;
353
+ wins?: number;
354
+ losses?: number;
355
+ overtimeLosses?: number;
356
+ goalsAgainstAvg?: number;
357
+ savePctg?: number;
358
+ }
359
+ /** Response of `adv.byTheNumbers` */
360
+ interface EdgeByTheNumbers {
361
+ games: number;
362
+ gameDate: string;
363
+ hardestShotSkater: {
364
+ player: EdgePlayer;
365
+ overlay: EdgeOverlay;
366
+ shotSpeed: EdgeMeasurement;
367
+ };
368
+ maxSkatingSpeedSkater: {
369
+ player: EdgePlayer;
370
+ overlay: EdgeOverlay;
371
+ skatingSpeed: EdgeMeasurement;
372
+ };
373
+ totalDistanceSkatedSkater: {
374
+ player: EdgePlayer;
375
+ distanceSkated: {
376
+ imperial: number;
377
+ metric: number;
378
+ overlay: EdgeOverlay;
379
+ };
380
+ };
381
+ totalDistanceSkatedTeam: {
382
+ team: EdgeTeam;
383
+ game: {
384
+ gameCenterLink: string;
385
+ gameDate: string;
386
+ isHomeTeam: boolean;
387
+ homeTeam: EdgeTeam;
388
+ awayTeam: EdgeTeam;
389
+ distanceSkated: EdgeMeasurement;
390
+ };
391
+ topFiveSkaters: {
392
+ gameCenterLink: string;
393
+ gameDate: string;
394
+ playerOnHomeTeam: boolean;
395
+ distanceSkated: EdgeMeasurement;
396
+ toi: number;
397
+ homeTeam: {
398
+ id: number;
399
+ commonName: LocalizedText;
400
+ placeNameWithPreposition: LocalizedText;
401
+ abbrev: string;
402
+ slug: string;
403
+ teamLogo: EdgeTeamLogos;
404
+ conference: string;
405
+ division: string;
406
+ };
407
+ awayTeam: {
408
+ id: number;
409
+ commonName: LocalizedText;
410
+ placeNameWithPreposition: LocalizedText;
411
+ abbrev: string;
412
+ slug: string;
413
+ teamLogo: EdgeTeamLogos;
414
+ conference: string;
415
+ division: string;
416
+ };
417
+ player: {
418
+ name: LocalizedText;
419
+ };
420
+ }[];
421
+ };
422
+ totalDistanceSkatedLeague: {
423
+ distanceSkated: EdgeMeasurement;
424
+ topFiveSkaters: {
425
+ gameCenterLink: string;
426
+ gameDate: string;
427
+ playerOnHomeTeam: boolean;
428
+ distanceSkated: EdgeMeasurement;
429
+ toi: number;
430
+ homeTeam: {
431
+ id: number;
432
+ commonName: LocalizedText;
433
+ placeNameWithPreposition: LocalizedText;
434
+ abbrev: string;
435
+ slug: string;
436
+ teamLogo: EdgeTeamLogos;
437
+ conference: string;
438
+ division: string;
439
+ };
440
+ awayTeam: {
441
+ id: number;
442
+ commonName: LocalizedText;
443
+ placeNameWithPreposition: LocalizedText;
444
+ abbrev: string;
445
+ slug: string;
446
+ teamLogo: EdgeTeamLogos;
447
+ conference: string;
448
+ division: string;
449
+ };
450
+ player: {
451
+ name: LocalizedText;
452
+ };
453
+ }[];
454
+ };
455
+ sogTeam: {
456
+ team: EdgeTeam;
457
+ shots: number;
458
+ sogDetails: {
459
+ area: string;
460
+ shots: number;
461
+ }[];
462
+ };
463
+ }
464
+ /** Response of `adv.skaters.detail` */
465
+ interface EdgeSkaterDetail {
466
+ player: EdgePlayer;
467
+ seasonsWithEdgeStats: EdgeSeason[];
468
+ topShotSpeed: {
469
+ imperial: number;
470
+ metric: number;
471
+ percentile: number;
472
+ leagueAvg: EdgeMeasurement;
473
+ overlay: EdgeOverlay;
474
+ };
475
+ skatingSpeed: {
476
+ speedMax: {
477
+ imperial: number;
478
+ metric: number;
479
+ percentile: number;
480
+ leagueAvg: EdgeMeasurement;
481
+ overlay: EdgeOverlay;
482
+ };
483
+ burstsOver20: {
484
+ value: number;
485
+ percentile: number;
486
+ leagueAvg: {
487
+ value: number;
488
+ };
489
+ };
490
+ };
491
+ totalDistanceSkated: {
492
+ imperial: number;
493
+ metric: number;
494
+ percentile: number;
495
+ leagueAvg: EdgeMeasurement;
496
+ };
497
+ distanceMaxGame: {
498
+ imperial: number;
499
+ metric: number;
500
+ percentile: number;
501
+ leagueAvg: EdgeMeasurement;
502
+ overlay: EdgeOverlay;
503
+ };
504
+ sogSummary: {
505
+ locationCode: string;
506
+ shots: number;
507
+ shotsPercentile: number;
508
+ shotsLeagueAvg: number;
509
+ goals: number;
510
+ goalsPercentile: number;
511
+ goalsLeagueAvg: number;
512
+ shootingPctg: number;
513
+ shootingPctgPercentile: number;
514
+ shootingPctgLeagueAvg: number;
515
+ }[];
516
+ sogDetails: {
517
+ area: string;
518
+ shots: number;
519
+ shotsPercentile: number;
520
+ }[];
521
+ zoneTimeDetails: {
522
+ offensiveZonePctg: number;
523
+ offensiveZonePercentile: number;
524
+ offensiveZoneLeagueAvg: number;
525
+ offensiveZoneEvPctg: number;
526
+ offensiveZoneEvPercentile: number;
527
+ offensiveZoneEvLeagueAvg: number;
528
+ neutralZonePctg: number;
529
+ neutralZonePercentile: number;
530
+ neutralZoneLeagueAvg: number;
531
+ defensiveZonePctg: number;
532
+ defensiveZonePercentile: number;
533
+ defensiveZoneLeagueAvg: number;
534
+ };
535
+ }
536
+ /** Response of `adv.skaters.comparison` */
537
+ interface EdgeSkaterComparison {
538
+ player: EdgePlayer;
539
+ seasonsWithEdgeStats: EdgeSeason[];
540
+ shotSpeedDetails: {
541
+ topShotSpeed: {
542
+ imperial: number;
543
+ metric: number;
544
+ overlay: EdgeOverlay;
545
+ };
546
+ avgShotSpeed: EdgeMeasurement;
547
+ shotAttemptsOver100: number;
548
+ shotAttempts90To100: number;
549
+ shotAttempts80To90: number;
550
+ shotAttempts70To80: number;
551
+ };
552
+ skatingSpeedDetails: {
553
+ maxSkatingSpeed: {
554
+ imperial: number;
555
+ metric: number;
556
+ overlay: EdgeOverlay;
557
+ };
558
+ burstsOver22: number;
559
+ bursts20To22: number;
560
+ bursts18To20: number;
561
+ };
562
+ skatingDistanceLast10: {
563
+ gameCenterLink: string;
564
+ gameDate: string;
565
+ playerOnHomeTeam: boolean;
566
+ distanceSkated: EdgeMeasurement;
567
+ toi: number;
568
+ homeTeam: EdgeTeam;
569
+ awayTeam: EdgeTeam;
570
+ }[];
571
+ skatingDistanceDetails: {
572
+ distanceTotal: EdgeMeasurement;
573
+ distancePer60: EdgeMeasurement;
574
+ distanceMaxGame: {
575
+ imperial: number;
576
+ metric: number;
577
+ overlay: EdgeOverlay;
578
+ };
579
+ distanceMaxPeriod: {
580
+ imperial: number;
581
+ metric: number;
582
+ overlay: EdgeOverlay;
583
+ };
584
+ };
585
+ shotLocationDetails: {
586
+ area: string;
587
+ sog: number;
588
+ goals: number;
589
+ shootingPctg: number;
590
+ }[];
591
+ shotLocationTotals: {
592
+ locationCode: string;
593
+ sog: number;
594
+ goals: number;
595
+ shootingPctg: number;
596
+ }[];
597
+ zoneTimeDetails: {
598
+ offensiveZonePctg: number;
599
+ offensiveZoneLeagueAvg: number;
600
+ neutralZonePctg: number;
601
+ neutralZoneLeagueAvg: number;
602
+ defensiveZonePctg: number;
603
+ defensiveZoneLeagueAvg: number;
604
+ };
605
+ zoneStarts: {
606
+ offensiveZoneStarts: number;
607
+ neutralZoneStarts: number;
608
+ defensiveZoneStarts: number;
609
+ };
610
+ }
611
+ /** Response of `adv.skaters.leaders` */
612
+ interface EdgeSkaterLanding {
613
+ seasonsWithEdgeStats: EdgeSeason[];
614
+ leaders: {
615
+ hardestShot: {
616
+ player: EdgePlayer;
617
+ overlay: EdgeOverlay;
618
+ shotSpeed: EdgeMeasurement;
619
+ };
620
+ maxSkatingSpeed: {
621
+ player: EdgePlayer;
622
+ overlay: EdgeOverlay;
623
+ skatingSpeed: EdgeMeasurement;
624
+ };
625
+ totalDistanceSkated: {
626
+ player: EdgePlayer;
627
+ distanceSkated: EdgeMeasurement;
628
+ };
629
+ distanceMaxGame: {
630
+ player: EdgePlayer;
631
+ distanceSkated: EdgeMeasurement;
632
+ overlay: EdgeOverlay;
633
+ };
634
+ highDangerSOG: {
635
+ player: EdgePlayer;
636
+ sog: number;
637
+ shotLocationDetails: {
638
+ area: string;
639
+ sog: number;
640
+ sogPercentile: number;
641
+ }[];
642
+ };
643
+ offensiveZoneTime: {
644
+ player: EdgePlayer;
645
+ zoneTime: number;
646
+ };
647
+ defensiveZoneTime: {
648
+ player: EdgePlayer;
649
+ zoneTime: number;
650
+ };
651
+ };
652
+ }
653
+ /** Response of `adv.skaters.shotLocation` */
654
+ interface EdgeSkaterShotLocation {
655
+ shotLocationDetails: {
656
+ area: string;
657
+ sog: number;
658
+ goals: number;
659
+ shootingPctg: number | null;
660
+ sogPercentile: number;
661
+ goalsPercentile: number;
662
+ shootingPctgPercentile: number | null;
663
+ }[];
664
+ shotLocationTotals: {
665
+ locationCode: string;
666
+ sog: number;
667
+ goals: number;
668
+ shootingPctg: number;
669
+ sogPercentile: number;
670
+ goalsPercentile: number;
671
+ shootingPctgPercentile: number;
672
+ sogLeagueAvg: number;
673
+ goalsLeagueAvg: number;
674
+ shootingPctgLeagueAvg: number;
675
+ }[];
676
+ }
677
+ /** Response of `adv.skaters.shotSpeed` */
678
+ interface EdgeSkaterShotSpeed {
679
+ hardestShots: {
680
+ gameCenterLink: string;
681
+ gameDate: string;
682
+ gameType: number;
683
+ playerOnHomeTeam: boolean;
684
+ shotSpeed: EdgeMeasurement;
685
+ timeInPeriod: string;
686
+ periodDescriptor: EdgePeriodDescriptor;
687
+ homeTeam: EdgeTeam;
688
+ awayTeam: EdgeTeam;
689
+ }[];
690
+ shotSpeedDetails: {
691
+ topShotSpeed: {
692
+ imperial: number;
693
+ metric: number;
694
+ percentile: number;
695
+ leagueAvg: EdgeMeasurement;
696
+ overlay: EdgeOverlay;
697
+ };
698
+ avgShotSpeed: {
699
+ imperial: number;
700
+ metric: number;
701
+ percentile: number;
702
+ leagueAvg: EdgeMeasurement;
703
+ };
704
+ shotAttemptsOver100: {
705
+ value: number;
706
+ percentile: number;
707
+ leagueAvg: number;
708
+ };
709
+ shotAttempts90To100: {
710
+ value: number;
711
+ percentile: number;
712
+ leagueAvg: number;
713
+ };
714
+ shotAttempts80To90: {
715
+ value: number;
716
+ percentile: number;
717
+ leagueAvg: number;
718
+ };
719
+ shotAttempts70To80: {
720
+ value: number;
721
+ percentile: number;
722
+ leagueAvg: number;
723
+ };
724
+ };
725
+ }
726
+ /** Response of `adv.skaters.skatingDistance` */
727
+ interface EdgeSkaterSkatingDistance {
728
+ skatingDistanceLast10: {
729
+ gameCenterLink: string;
730
+ gameDate: string;
731
+ playerOnHomeTeam: boolean;
732
+ distanceSkatedAll: EdgeMeasurement;
733
+ toiAll: number;
734
+ distanceSkatedEven: EdgeMeasurement;
735
+ toiEven: number;
736
+ distanceSkatedPP: EdgeMeasurement;
737
+ toiPP: number;
738
+ homeTeam: EdgeTeam;
739
+ awayTeam: EdgeTeam;
740
+ distanceSkatedPK?: EdgeMeasurement;
741
+ toiPK?: number;
742
+ }[];
743
+ skatingDistanceDetails: {
744
+ strengthCode: string;
745
+ distanceTotal: {
746
+ imperial: number;
747
+ metric: number;
748
+ percentile: number;
749
+ leagueAvg: EdgeMeasurement;
750
+ };
751
+ distancePer60: {
752
+ imperial: number;
753
+ metric: number;
754
+ percentile: number;
755
+ leagueAvg: EdgeMeasurement;
756
+ };
757
+ distanceMaxGame: {
758
+ imperial: number;
759
+ metric: number;
760
+ percentile: number;
761
+ leagueAvg: EdgeMeasurement;
762
+ overlay: EdgeOverlay;
763
+ };
764
+ distanceMaxPeriod: {
765
+ imperial: number;
766
+ metric: number;
767
+ percentile: number;
768
+ leagueAvg: EdgeMeasurement;
769
+ overlay: EdgeOverlay;
770
+ };
771
+ }[];
772
+ }
773
+ /** Response of `adv.skaters.skatingSpeed` */
774
+ interface EdgeSkaterSkatingSpeed {
775
+ topSkatingSpeeds: {
776
+ gameCenterLink: string;
777
+ gameDate: string;
778
+ gameType: number;
779
+ playerOnHomeTeam: boolean;
780
+ skatingSpeed: EdgeMeasurement;
781
+ timeInPeriod: string;
782
+ periodDescriptor: EdgePeriodDescriptor;
783
+ homeTeam: EdgeTeam;
784
+ awayTeam: EdgeTeam;
785
+ }[];
786
+ skatingSpeedDetails: {
787
+ maxSkatingSpeed: {
788
+ imperial: number;
789
+ metric: number;
790
+ percentile: number;
791
+ leagueAvg: EdgeMeasurement;
792
+ overlay: EdgeOverlay;
793
+ };
794
+ burstsOver22: {
795
+ value: number;
796
+ percentile: number;
797
+ leagueAvg: number;
798
+ };
799
+ bursts20To22: {
800
+ value: number;
801
+ percentile: number;
802
+ leagueAvg: number;
803
+ };
804
+ bursts18To20: {
805
+ value: number;
806
+ percentile: number;
807
+ leagueAvg: number;
808
+ };
809
+ };
810
+ }
811
+ /** Response of `adv.skaters.zoneTime` */
812
+ interface EdgeSkaterZoneTime {
813
+ zoneTimeDetails: {
814
+ strengthCode: string;
815
+ offensiveZonePctg: number;
816
+ offensiveZonePercentile: number;
817
+ offensiveZoneLeagueAvg: number;
818
+ neutralZonePctg: number;
819
+ neutralZonePercentile: number;
820
+ neutralZoneLeagueAvg: number;
821
+ defensiveZonePctg: number;
822
+ defensiveZonePercentile: number;
823
+ defensiveZoneLeagueAvg: number;
824
+ }[];
825
+ zoneStarts: {
826
+ offensiveZoneStartsPctg: number;
827
+ offensiveZoneStartsPctgPercentile: number;
828
+ neutralZoneStartsPctg: number;
829
+ neutralZoneStartsPctgPercentile: number;
830
+ defensiveZoneStartsPctg: number;
831
+ defensiveZoneStartsPctgPercentile: number;
832
+ };
833
+ }
834
+ /** One row of `adv.skaters.top10.distance` */
835
+ interface EdgeSkaterDistanceTop10Entry {
836
+ player: EdgePlayer;
837
+ distanceTotal: EdgeMeasurement;
838
+ distancePer60: EdgeMeasurement;
839
+ distanceMaxPerGame: {
840
+ imperial: number;
841
+ metric: number;
842
+ overlay: EdgeOverlay;
843
+ };
844
+ distanceMaxPerPeriod: {
845
+ imperial: number;
846
+ metric: number;
847
+ overlay: EdgeOverlay;
848
+ };
849
+ }
850
+ /** Response of `adv.skaters.top10.distance` */
851
+ type EdgeSkaterDistanceTop10 = EdgeSkaterDistanceTop10Entry[];
852
+ /** One row of `adv.skaters.top10.shotLocation` */
853
+ interface EdgeSkaterShotLocationTop10Entry {
854
+ player: EdgePlayer;
855
+ all: number;
856
+ highDanger: number;
857
+ midRange: number;
858
+ longRange: number;
859
+ }
860
+ /** Response of `adv.skaters.top10.shotLocation` */
861
+ type EdgeSkaterShotLocationTop10 = EdgeSkaterShotLocationTop10Entry[];
862
+ /** One row of `adv.skaters.top10.shotSpeed` */
863
+ interface EdgeSkaterShotSpeedTop10Entry {
864
+ player: EdgePlayer;
865
+ hardestShot: {
866
+ imperial: number;
867
+ metric: number;
868
+ overlay: EdgeOverlay;
869
+ };
870
+ shotAttemptsOver100: number;
871
+ shotAttempts90To100: number;
872
+ shotAttempts80To90: number;
873
+ shotAttempts70To80: number;
874
+ }
875
+ /** Response of `adv.skaters.top10.shotSpeed` */
876
+ type EdgeSkaterShotSpeedTop10 = EdgeSkaterShotSpeedTop10Entry[];
877
+ /** One row of `adv.skaters.top10.speed` */
878
+ interface EdgeSkaterSpeedTop10Entry {
879
+ player: EdgePlayer;
880
+ maxSpeed: {
881
+ imperial: number;
882
+ metric: number;
883
+ overlay: EdgeOverlay;
884
+ };
885
+ burstsOver22: number;
886
+ bursts20To22: number;
887
+ bursts18To20: number;
888
+ }
889
+ /** Response of `adv.skaters.top10.speed` */
890
+ type EdgeSkaterSpeedTop10 = EdgeSkaterSpeedTop10Entry[];
891
+ /** One row of `adv.skaters.top10.zoneTime` */
892
+ interface EdgeSkaterZoneTimeTop10Entry {
893
+ player: EdgePlayer;
894
+ offensiveZoneTime: number;
895
+ neutralZoneTime: number;
896
+ defensiveZoneTime: number;
897
+ }
898
+ /** Response of `adv.skaters.top10.zoneTime` */
899
+ type EdgeSkaterZoneTimeTop10 = EdgeSkaterZoneTimeTop10Entry[];
900
+ /** Response of `adv.goalies.player` */
901
+ interface EdgeGoalieDetail {
902
+ player: EdgePlayer;
903
+ seasonsWithEdgeStats: EdgeSeason[];
904
+ stats: {
905
+ goalsAgainstAvg: {
906
+ value: number;
907
+ percentile: number;
908
+ leagueAvg: number;
909
+ };
910
+ gamesAbove900: {
911
+ value: number;
912
+ percentile: number;
913
+ leagueAvg: number;
914
+ };
915
+ goalDifferentialPer60: {
916
+ value: number;
917
+ percentile: number;
918
+ leagueAvg: number;
919
+ };
920
+ goalSupportAvg: {
921
+ value: number;
922
+ percentile: number;
923
+ leagueAvg: number;
924
+ };
925
+ pointPctg: {
926
+ value: number;
927
+ percentile: number;
928
+ leagueAvg: number;
929
+ };
930
+ };
931
+ shotLocationSummary: {
932
+ locationCode: string;
933
+ goalsAgainst: number;
934
+ goalsAgainstPercentile: number;
935
+ goalsAgainstLeagueAvg: number;
936
+ saves: number;
937
+ savesPercentile: number;
938
+ savesLeagueAvg: number;
939
+ savePctg: number;
940
+ savePctgPercentile: number;
941
+ savePctgLeagueAvg: number;
942
+ }[];
943
+ shotLocationDetails: {
944
+ area: string;
945
+ saves: number;
946
+ savesPercentile: number;
947
+ savePctg: number;
948
+ savePctgPercentile: number;
949
+ }[];
950
+ }
951
+ /** Response of `adv.goalies.compare` */
952
+ interface EdgeGoalieComparison {
953
+ player: EdgePlayer;
954
+ seasonsWithEdgeStats: EdgeSeason[];
955
+ shotLocationSummary: {
956
+ locationCode: string;
957
+ shotsAgainst: number;
958
+ goalsAgainst: number;
959
+ saves: number;
960
+ savePctg: number;
961
+ }[];
962
+ shotLocationDetails: {
963
+ area: string;
964
+ goalsAgainst: number;
965
+ shotsAgainst: number;
966
+ saves: number;
967
+ savePctg: number;
968
+ }[];
969
+ savePctg5v5Last10: unknown[];
970
+ savePctg5v5Details: {
971
+ savePctg: number;
972
+ savePctgClose: number;
973
+ shots: number;
974
+ shotsPer60: number;
975
+ };
976
+ savePctgLast10: unknown[];
977
+ savePctgDetails: {
978
+ gamesAbove900: number;
979
+ pctgGamesAbove900: number;
980
+ pointPctg: number;
981
+ goalsAgainstAvg: number;
982
+ savePctg: number;
983
+ };
984
+ }
985
+ /** Response of `adv.goalies.leaders` */
986
+ interface EdgeGoalieLanding {
987
+ seasonsWithEdgeStats: EdgeSeason[];
988
+ minimumGamesPlayed?: number;
989
+ leaders: {
990
+ highDangerSavePctg: {
991
+ player: EdgePlayer;
992
+ savePctg: number;
993
+ shotLocationDetails: {
994
+ area: string;
995
+ savePctg: number;
996
+ savePctgPercentile: number;
997
+ }[];
998
+ };
999
+ highDangerSaves: {
1000
+ player: EdgePlayer;
1001
+ saves: number;
1002
+ shotLocationDetails: {
1003
+ area: string;
1004
+ saves: number;
1005
+ savesPercentile: number;
1006
+ }[];
1007
+ };
1008
+ highDangerGoalsAgainst: {
1009
+ player: EdgePlayer;
1010
+ goalsAgainst: number;
1011
+ };
1012
+ savePctg5v5: {
1013
+ player: EdgePlayer;
1014
+ savePctg: number;
1015
+ };
1016
+ gamesAbove900: {
1017
+ player: EdgePlayer;
1018
+ games: number;
1019
+ };
1020
+ };
1021
+ minimumMinutesPlayed?: number;
1022
+ }
1023
+ /** Response of `adv.goalies.savePercentage` */
1024
+ interface EdgeGoalieSavePercentage {
1025
+ savePctgLast10: {
1026
+ gameCenterLink: string;
1027
+ savePctg: number;
1028
+ gameDate: string;
1029
+ decision: string;
1030
+ playerOnHomeTeam: boolean;
1031
+ homeTeam: EdgeTeam;
1032
+ awayTeam: EdgeTeam;
1033
+ }[];
1034
+ savePctgDetails: {
1035
+ gamesAbove900: {
1036
+ value: number;
1037
+ percentile: number;
1038
+ leagueAvg: number;
1039
+ };
1040
+ pctgGamesAbove900: {
1041
+ value: number;
1042
+ percentile: number;
1043
+ leagueAvg: number;
1044
+ };
1045
+ };
1046
+ }
1047
+ /** Response of `adv.goalies.savePercentage5v5` */
1048
+ interface EdgeGoalieSavePercentage5v5 {
1049
+ savePctg5v5Last10: unknown[];
1050
+ savePctg5v5Details: {
1051
+ savePctg: {
1052
+ value: number;
1053
+ leagueAvg: number;
1054
+ percentile: number;
1055
+ };
1056
+ savePctgClose: {
1057
+ value: number;
1058
+ leagueAvg: number;
1059
+ percentile: number;
1060
+ };
1061
+ shots: {
1062
+ value: number;
1063
+ leagueAvg: number;
1064
+ percentile: number;
1065
+ };
1066
+ shotsPer60: {
1067
+ value: number;
1068
+ leagueAvg: number;
1069
+ percentile: number;
1070
+ };
1071
+ };
1072
+ }
1073
+ /** Response of `adv.goalies.saveLocation` */
1074
+ interface EdgeGoalieShotLocation {
1075
+ shotLocationDetails: {
1076
+ area: string;
1077
+ shotsAgainst: number;
1078
+ saves: number;
1079
+ goalsAgainst: number;
1080
+ savePctg: number;
1081
+ shotsAgainstPercentile: number;
1082
+ savesPercentile: number;
1083
+ goalsAgainstPercentile: number;
1084
+ savePctgPercentile: number;
1085
+ }[];
1086
+ shotLocationTotals: {
1087
+ locationCode: string;
1088
+ shotsAgainst: number;
1089
+ goalsAgainst: number;
1090
+ saves: number;
1091
+ savePctg: number;
1092
+ shotsAgainstPercentile: number;
1093
+ goalsAgainstPercentile: number;
1094
+ savesPercentile: number;
1095
+ savePctgPercentile: number;
1096
+ shotsAgainstLeagueAvg: number;
1097
+ goalsAgainstLeagueAvg: number;
1098
+ savesLeagueAvg: number;
1099
+ savePctgLeagueAvg: number;
1100
+ }[];
1101
+ }
1102
+ /** One row of `adv.goalies.top10.savePercentage` */
1103
+ interface EdgeGoalieSavePercentageTop10Entry {
1104
+ player: EdgePlayer;
1105
+ gamesOver900: number;
1106
+ pctgGamesOver900: number;
1107
+ }
1108
+ /** Response of `adv.goalies.top10.savePercentage` */
1109
+ type EdgeGoalieSavePercentageTop10 = EdgeGoalieSavePercentageTop10Entry[];
1110
+ /** One row of `adv.goalies.top10.savePercentage5v5` */
1111
+ interface EdgeGoalieSavePercentage5v5Top10Entry {
1112
+ player: EdgePlayer;
1113
+ savePctg: number;
1114
+ savePctgClose: number;
1115
+ shots: number;
1116
+ shotsPer60: number;
1117
+ }
1118
+ /** Response of `adv.goalies.top10.savePercentage5v5` */
1119
+ type EdgeGoalieSavePercentage5v5Top10 = EdgeGoalieSavePercentage5v5Top10Entry[];
1120
+ /** One row of `adv.goalies.top10.saveLocation` */
1121
+ interface EdgeGoalieShotLocationTop10Entry {
1122
+ player: EdgePlayer;
1123
+ all: number;
1124
+ highDanger: number;
1125
+ midRange: number;
1126
+ longRange: number;
1127
+ }
1128
+ /** Response of `adv.goalies.top10.saveLocation` */
1129
+ type EdgeGoalieShotLocationTop10 = EdgeGoalieShotLocationTop10Entry[];
1130
+ /** Response of `adv.teams.stats` */
1131
+ interface EdgeTeamDetail {
1132
+ team: EdgeTeam;
1133
+ seasonsWithEdgeStats: EdgeSeason[];
1134
+ shotSpeed: {
1135
+ shotAttemptsOver90: {
1136
+ value: number;
1137
+ rank: number;
1138
+ };
1139
+ topShotSpeed: {
1140
+ imperial: number;
1141
+ metric: number;
1142
+ rank: number;
1143
+ leagueAvg: EdgeMeasurement;
1144
+ overlay: EdgeOverlay;
1145
+ };
1146
+ };
1147
+ skatingSpeed: {
1148
+ burstsOver22: {
1149
+ value: number;
1150
+ rank: number;
1151
+ };
1152
+ burstsOver20: {
1153
+ value: number;
1154
+ rank: number;
1155
+ leagueAvg: {
1156
+ value: number;
1157
+ };
1158
+ };
1159
+ speedMax: {
1160
+ imperial: number;
1161
+ metric: number;
1162
+ rank: number;
1163
+ leagueAvg: EdgeMeasurement;
1164
+ overlay: EdgeOverlay;
1165
+ };
1166
+ };
1167
+ distanceSkated: {
1168
+ total: {
1169
+ imperial: number;
1170
+ metric: number;
1171
+ rank: number;
1172
+ leagueAvg: EdgeMeasurement;
1173
+ };
1174
+ };
1175
+ sogSummary: {
1176
+ locationCode: string;
1177
+ shots: number;
1178
+ shotsRank: number;
1179
+ shotsLeagueAvg: number;
1180
+ shootingPctg: number;
1181
+ shootingPctgRank: number;
1182
+ shootingPctgLeagueAvg: number;
1183
+ goals: number;
1184
+ goalsRank: number;
1185
+ goalsLeagueAvg: number;
1186
+ }[];
1187
+ sogDetails: {
1188
+ area: string;
1189
+ shots: number;
1190
+ shotsRank: number;
1191
+ }[];
1192
+ zoneTimeDetails: {
1193
+ offensiveZonePctg: number;
1194
+ offensiveZoneRank: number;
1195
+ offensiveZoneLeagueAvg: number;
1196
+ offensiveZoneEvPctg: number;
1197
+ offensiveZoneEvRank: number;
1198
+ offensiveZoneEvLeagueAvg: number;
1199
+ neutralZonePctg: number;
1200
+ neutralZoneRank: number;
1201
+ neutralZoneLeagueAvg: number;
1202
+ defensiveZonePctg: number;
1203
+ defensiveZoneRank: number;
1204
+ defensiveZoneLeagueAvg: number;
1205
+ };
1206
+ }
1207
+ /** Response of `adv.teams.compare` */
1208
+ interface EdgeTeamComparison {
1209
+ team: EdgeTeam;
1210
+ seasonsWithEdgeStats: EdgeSeason[];
1211
+ shotSpeedDetails: {
1212
+ topShotSpeed: {
1213
+ imperial: number;
1214
+ metric: number;
1215
+ overlay: EdgeOverlay;
1216
+ };
1217
+ avgShotSpeed: EdgeMeasurement;
1218
+ shotAttemptsOver100: number;
1219
+ shotAttempts90To100: number;
1220
+ shotAttempts80To90: number;
1221
+ shotAttempts70To80: number;
1222
+ };
1223
+ skatingSpeedDetails: {
1224
+ maxSkatingSpeed: {
1225
+ imperial: number;
1226
+ metric: number;
1227
+ overlay: EdgeOverlay;
1228
+ };
1229
+ burstsOver22: number;
1230
+ bursts20To22: number;
1231
+ bursts18To20: number;
1232
+ };
1233
+ skatingDistanceLast10: {
1234
+ gameCenterLink: string;
1235
+ gameDate: string;
1236
+ isHomeTeam: boolean;
1237
+ distanceSkated: EdgeMeasurement;
1238
+ homeTeam: EdgeTeam;
1239
+ awayTeam: EdgeTeam;
1240
+ }[];
1241
+ skatingDistanceDetails: {
1242
+ distanceTotal: EdgeMeasurement;
1243
+ distancePer60: EdgeMeasurement;
1244
+ distanceMaxGame: {
1245
+ imperial: number;
1246
+ metric: number;
1247
+ overlay: EdgeOverlay;
1248
+ };
1249
+ distanceMaxPeriod: {
1250
+ imperial: number;
1251
+ metric: number;
1252
+ overlay: EdgeOverlay;
1253
+ };
1254
+ };
1255
+ shotLocationDetails: {
1256
+ area: string;
1257
+ sog: number;
1258
+ goals: number;
1259
+ shootingPctg: number;
1260
+ }[];
1261
+ shotLocationTotals: {
1262
+ locationCode: string;
1263
+ sog: number;
1264
+ goals: number;
1265
+ shootingPctg: number;
1266
+ }[];
1267
+ zoneTimeDetails: {
1268
+ offensiveZonePctg: number;
1269
+ offensiveZoneLeagueAvg: number;
1270
+ neutralZonePctg: number;
1271
+ neutralZoneLeagueAvg: number;
1272
+ defensiveZonePctg: number;
1273
+ defensiveZoneLeagueAvg: number;
1274
+ };
1275
+ shotDifferential: {
1276
+ shotAttemptDifferential: number;
1277
+ sogDifferential: number;
1278
+ };
1279
+ }
1280
+ /** Response of `adv.teams.leaders` */
1281
+ interface EdgeTeamLanding {
1282
+ seasonsWithEdgeStats: EdgeSeason[];
1283
+ leaders: {
1284
+ shotAttemptsOver90: {
1285
+ team: EdgeTeam;
1286
+ attempts: number;
1287
+ };
1288
+ burstsOver22: {
1289
+ team: EdgeTeam;
1290
+ bursts: number;
1291
+ };
1292
+ distancePer60: {
1293
+ team: EdgeTeam;
1294
+ distanceSkated: EdgeMeasurement;
1295
+ };
1296
+ highDangerSOG: {
1297
+ team: EdgeTeam;
1298
+ sog: number;
1299
+ shotLocationDetails: {
1300
+ area: string;
1301
+ sog: number;
1302
+ rank: number;
1303
+ }[];
1304
+ };
1305
+ offensiveZoneTime: {
1306
+ team: EdgeTeam;
1307
+ zoneTime: number;
1308
+ };
1309
+ neutralZoneTime: {
1310
+ team: EdgeTeam;
1311
+ zoneTime: number;
1312
+ };
1313
+ defensiveZoneTime: {
1314
+ team: EdgeTeam;
1315
+ zoneTime: number;
1316
+ };
1317
+ };
1318
+ }
1319
+ /** Response of `adv.teams.shotLocation` */
1320
+ interface EdgeTeamShotLocation {
1321
+ shotLocationDetails: {
1322
+ area: string;
1323
+ sog: number;
1324
+ sogRank: number;
1325
+ goals: number;
1326
+ goalsRank: number;
1327
+ shootingPctg: number | null;
1328
+ shootingPctgRank: number | null;
1329
+ }[];
1330
+ shotLocationTotals: {
1331
+ locationCode: string;
1332
+ position: string;
1333
+ sog: number;
1334
+ sogRank: number;
1335
+ sogLeagueAvg: number;
1336
+ goals: number;
1337
+ goalsRank: number;
1338
+ goalsLeagueAvg: number;
1339
+ shootingPctg: number;
1340
+ shootingPctgRank: number;
1341
+ shootingPctgLeagueAvg: number;
1342
+ }[];
1343
+ }
1344
+ /** Response of `adv.teams.shotSpeed` */
1345
+ interface EdgeTeamShotSpeed {
1346
+ hardestShots: {
1347
+ player: EdgePlayer;
1348
+ gameCenterLink: string;
1349
+ gameDate: string;
1350
+ gameType: number;
1351
+ isHomeTeam: boolean;
1352
+ shotSpeed: EdgeMeasurement;
1353
+ timeInPeriod: string;
1354
+ periodDescriptor: EdgePeriodDescriptor;
1355
+ homeTeam: EdgeTeam;
1356
+ awayTeam: EdgeTeam;
1357
+ }[];
1358
+ shotSpeedDetails: {
1359
+ position: string;
1360
+ topShotSpeed: {
1361
+ imperial: number;
1362
+ metric: number;
1363
+ rank: number;
1364
+ leagueAvg: EdgeMeasurement;
1365
+ overlay: EdgeOverlay;
1366
+ };
1367
+ avgShotSpeed: {
1368
+ imperial: number;
1369
+ metric: number;
1370
+ rank: number;
1371
+ leagueAvg: EdgeMeasurement;
1372
+ };
1373
+ shotAttemptsOver100: {
1374
+ value: number;
1375
+ rank: number;
1376
+ leagueAvg: number;
1377
+ };
1378
+ shotAttempts90To100: {
1379
+ value: number;
1380
+ rank: number;
1381
+ leagueAvg: number;
1382
+ };
1383
+ shotAttempts80To90: {
1384
+ value: number;
1385
+ leagueAvg: number;
1386
+ };
1387
+ shotAttempts70To80: {
1388
+ value: number;
1389
+ leagueAvg: number;
1390
+ };
1391
+ }[];
1392
+ }
1393
+ /** Response of `adv.teams.skatingDistance` */
1394
+ interface EdgeTeamSkatingDistance {
1395
+ skatingDistanceLast10: {
1396
+ gameCenterLink: string;
1397
+ gameDate: string;
1398
+ isHomeTeam: boolean;
1399
+ toiAll: number;
1400
+ distanceSkatedAll: EdgeMeasurement;
1401
+ toiEven: number;
1402
+ distanceSkatedEven: EdgeMeasurement;
1403
+ toiPP?: number;
1404
+ distanceSkatedPP?: EdgeMeasurement;
1405
+ toiPK: number;
1406
+ distanceSkatedPK: EdgeMeasurement;
1407
+ homeTeam: EdgeTeam;
1408
+ awayTeam: EdgeTeam;
1409
+ }[];
1410
+ skatingDistanceDetails: {
1411
+ strengthCode: string;
1412
+ positionCode: string;
1413
+ distanceTotal: {
1414
+ imperial: number;
1415
+ metric: number;
1416
+ rank: number;
1417
+ leagueAvg: EdgeMeasurement;
1418
+ };
1419
+ distancePer60: {
1420
+ imperial: number;
1421
+ metric: number;
1422
+ rank: number;
1423
+ leagueAvg: EdgeMeasurement;
1424
+ };
1425
+ distanceMaxGame: {
1426
+ imperial: number;
1427
+ metric: number;
1428
+ rank: number;
1429
+ leagueAvg: EdgeMeasurement;
1430
+ overlay: EdgeOverlay;
1431
+ };
1432
+ distanceMaxPeriod: {
1433
+ imperial: number;
1434
+ metric: number;
1435
+ rank: number;
1436
+ leagueAvg: EdgeMeasurement;
1437
+ overlay: EdgeOverlay;
1438
+ };
1439
+ }[];
1440
+ }
1441
+ /** Response of `adv.teams.skatingSpeed` */
1442
+ interface EdgeTeamSkatingSpeed {
1443
+ topSkatingSpeeds: {
1444
+ player: EdgePlayer;
1445
+ gameCenterLink: string;
1446
+ gameDate: string;
1447
+ gameType: number;
1448
+ isHomeTeam: boolean;
1449
+ skatingSpeed: EdgeMeasurement;
1450
+ timeInPeriod: string;
1451
+ periodDescriptor: EdgePeriodDescriptor;
1452
+ homeTeam: EdgeTeam;
1453
+ awayTeam: EdgeTeam;
1454
+ }[];
1455
+ skatingSpeedDetails: {
1456
+ positionCode: string;
1457
+ maxSkatingSpeed: {
1458
+ imperial: number;
1459
+ metric: number;
1460
+ rank: number;
1461
+ leagueAvg: EdgeMeasurement;
1462
+ overlay: EdgeOverlay;
1463
+ };
1464
+ burstsOver22: {
1465
+ value: number;
1466
+ rank: number;
1467
+ leagueAvg: number;
1468
+ };
1469
+ bursts20To22: {
1470
+ value: number;
1471
+ rank: number;
1472
+ leagueAvg: number;
1473
+ };
1474
+ bursts18To20: {
1475
+ value: number;
1476
+ rank: number;
1477
+ leagueAvg: number;
1478
+ };
1479
+ }[];
1480
+ }
1481
+ /** Response of `adv.teams.zoneTime` */
1482
+ interface EdgeTeamZoneTime {
1483
+ zoneTimeDetails: {
1484
+ strengthCode: string;
1485
+ offensiveZonePctg: number;
1486
+ offensiveZoneRank: number;
1487
+ offensiveZoneLeagueAvg: number;
1488
+ neutralZonePctg: number;
1489
+ neutralZoneRank: number;
1490
+ neutralZoneLeagueAvg: number;
1491
+ defensiveZonePctg: number;
1492
+ defensiveZoneRank: number;
1493
+ defensiveZoneLeagueAvg: number;
1494
+ }[];
1495
+ shotDifferential: {
1496
+ shotAttemptDifferential: number;
1497
+ shotAttemptDifferentialRank: number;
1498
+ sogDifferential: number;
1499
+ sogDifferentialRank: number;
1500
+ };
1501
+ }
1502
+ /** One row of `adv.teams.top10.shotLocation` */
1503
+ interface EdgeTeamShotLocationTop10Entry {
1504
+ team: EdgeTeam;
1505
+ all: number;
1506
+ highDanger: number;
1507
+ midRange: number;
1508
+ longRange: number;
1509
+ }
1510
+ /** Response of `adv.teams.top10.shotLocation` */
1511
+ type EdgeTeamShotLocationTop10 = EdgeTeamShotLocationTop10Entry[];
1512
+ /** One row of `adv.teams.top10.shotSpeed` */
1513
+ interface EdgeTeamShotSpeedTop10Entry {
1514
+ team: EdgeTeam;
1515
+ hardestShot: {
1516
+ imperial: number;
1517
+ metric: number;
1518
+ overlay: EdgeOverlay;
1519
+ };
1520
+ shotAttemptsOver100: number;
1521
+ shotAttempts90To100: number;
1522
+ shotAttempts80To90: number;
1523
+ shotAttempts70To80: number;
1524
+ }
1525
+ /** Response of `adv.teams.top10.shotSpeed` */
1526
+ type EdgeTeamShotSpeedTop10 = EdgeTeamShotSpeedTop10Entry[];
1527
+ /** One row of `adv.teams.top10.skatingDistance` */
1528
+ interface EdgeTeamSkatingDistanceTop10Entry {
1529
+ team: EdgeTeam;
1530
+ distanceTotal: EdgeMeasurement;
1531
+ distancePer60: EdgeMeasurement;
1532
+ distanceMaxPerGame: {
1533
+ imperial: number;
1534
+ metric: number;
1535
+ overlay: EdgeOverlay;
1536
+ };
1537
+ distanceMaxPerPeriod: {
1538
+ imperial: number;
1539
+ metric: number;
1540
+ overlay: EdgeOverlay;
1541
+ };
1542
+ }
1543
+ /** Response of `adv.teams.top10.skatingDistance` */
1544
+ type EdgeTeamSkatingDistanceTop10 = EdgeTeamSkatingDistanceTop10Entry[];
1545
+ /** One row of `adv.teams.top10.skatingSpeed` */
1546
+ interface EdgeTeamSkatingSpeedTop10Entry {
1547
+ team: EdgeTeam;
1548
+ maxSkatingSpeed: {
1549
+ imperial: number;
1550
+ metric: number;
1551
+ overlay: EdgeOverlay;
1552
+ };
1553
+ burstsOver22: number;
1554
+ bursts20To22: number;
1555
+ bursts18To20: number;
1556
+ }
1557
+ /** Response of `adv.teams.top10.skatingSpeed` */
1558
+ type EdgeTeamSkatingSpeedTop10 = EdgeTeamSkatingSpeedTop10Entry[];
1559
+ /** One row of `adv.teams.top10.zoneTime` */
1560
+ interface EdgeTeamZoneTimeTop10Entry {
1561
+ team: EdgeTeam;
1562
+ offensiveZoneTime: number;
1563
+ neutralZoneTime: number;
1564
+ defensiveZoneTime: number;
1565
+ }
1566
+ /** Response of `adv.teams.top10.zoneTime` */
1567
+ type EdgeTeamZoneTimeTop10 = EdgeTeamZoneTimeTop10Entry[];
1568
+
1569
+ /** Categories for save location top-10 list */
1570
+ declare const SaveLocationCategoryEnum: {
1571
+ /** Save Percentage */
1572
+ readonly 'SV%': "save-pctg";
1573
+ /** Saves */
1574
+ readonly SV: "saves";
1575
+ /** Shots Against */
1576
+ readonly SA: "shots-against";
1577
+ /** Goals Against */
1578
+ readonly GA: "goals-against";
1579
+ };
1580
+ /** Sort options for shot location top-10 list */
1581
+ declare const ShotLocationSortEnum: {
1582
+ /** All shot locations */
1583
+ readonly ALL: "all";
1584
+ /** High-danger (i.e. close-range) shot locations */
1585
+ readonly HIGH: "high";
1586
+ /** Mid-range shot locations */
1587
+ readonly MID: "mid";
1588
+ /** Long-range shot locations */
1589
+ readonly LONG: "long";
1590
+ };
1591
+ /** Alias for ShotLocationSortEnum */
1592
+ declare const SaveLocationSortEnum: {
1593
+ /** All shot locations */
1594
+ readonly ALL: "all";
1595
+ /** High-danger (i.e. close-range) shot locations */
1596
+ readonly HIGH: "high";
1597
+ /** Mid-range shot locations */
1598
+ readonly MID: "mid";
1599
+ /** Long-range shot locations */
1600
+ readonly LONG: "long";
1601
+ };
1602
+ /** Sort options for 5v5 save percentage top-10 list */
1603
+ declare const SavePercentage5v5SortEnum: {
1604
+ /**5v5 Save %: The percentage of shots a goalie stops at even strength (5-on-5). */
1605
+ readonly '5v5-SV%': "save-pctg";
1606
+ /**5v5 Save % in Close Situations: A “close situation” is the time during which a game is tied in the first or second period, or within one goal in the third period. This stats helps how goalies perform in high-pressure situations.*/
1607
+ readonly '5v5-SV%-Close': "save-pctg-close";
1608
+ /**5v5 Shots Against: The total number of shots a goalie faces at even strength (5-on-5).*/
1609
+ readonly '5v5-SA': "shots";
1610
+ /**5v5 Shots Against per 60 Minutes: The total number of shots a goalie faces at even strength (5-on-5) normalized to a 60-minute game. */
1611
+ readonly '5v5-SA/60': "shots-per-60";
1612
+ };
1613
+ /** Sort options for save percentage top-10 list */
1614
+ declare const SavePercentageSortEnum: {
1615
+ /** Starts above .900 */
1616
+ readonly GAMES: "games";
1617
+ /** Percentage of starts above .900 */
1618
+ readonly PCTG: "pctg";
1619
+ };
1620
+ /** Filter options for player positions */
1621
+ declare const PositionFilterEnum: {
1622
+ /** Center */
1623
+ readonly ALL: "all";
1624
+ /** Left Wing */
1625
+ readonly FWD: "forwards";
1626
+ /** Right Wing */
1627
+ readonly DEF: "defense";
1628
+ };
1629
+ /** Categories for skater strength */
1630
+ declare const SkatersStrengthEnum: {
1631
+ /** All strengths */
1632
+ readonly ALL: "all";
1633
+ /** Even strength */
1634
+ readonly ES: "es";
1635
+ /** Power play */
1636
+ readonly PP: "pp";
1637
+ /** Short-handed */
1638
+ readonly PK: "pk";
1639
+ };
1640
+ /** Sorting options for shot speed top-10 list */
1641
+ declare const ShotSpeedSortEnum: {
1642
+ /** Hardest shot recorded by player */
1643
+ readonly MAX: "max";
1644
+ /** Shots over 100 mph */
1645
+ readonly 'OVER-100': "over-100";
1646
+ /** Shots between 90 and 99 mph */
1647
+ readonly '90-99': "90-99";
1648
+ /** Shots between 80 and 89 mph */
1649
+ readonly '80-89': "80-89";
1650
+ /** Shots between 70 and 79 mph */
1651
+ readonly '70-79': "70-79";
1652
+ };
1653
+ /** Sorting options for skating speed top-10 list */
1654
+ declare const SkatingSpeedSortEnum: {
1655
+ /** Fastest skating speed recorded by player */
1656
+ readonly TOP: "max";
1657
+ /** Speed bursts recorded over 22 mph */
1658
+ readonly 'OVER-22': "over-22";
1659
+ /** Speed bursts recorded between 20 and 22 mph */
1660
+ readonly '20-22': "20-22";
1661
+ /** Speed bursts recorded between 18 and 20 mph */
1662
+ readonly '18-20': "18-20";
1663
+ };
1664
+ /** Sorting options for skating distance top-10 list */
1665
+ declare const SkatingDistanceSortEnum: {
1666
+ /** Total distance skated */
1667
+ TOTAL: string;
1668
+ /** Average distance skated per 60 minutes */
1669
+ 'PER-60': string;
1670
+ /** Maximum distance skated in a single period */
1671
+ 'MAX-PERIOD': string;
1672
+ /** Maximum distance skated in a single game */
1673
+ 'MAX-GAME': string;
1674
+ };
1675
+ /** Categories for shot location top-10 list */
1676
+ declare const ShotLocationCategoryEnum: {
1677
+ /** Total shots on goal */
1678
+ readonly SOG: "sog";
1679
+ /** Total goals */
1680
+ readonly G: "goals";
1681
+ /** Shooting percentage */
1682
+ readonly 'SH%': "shooting-pctg";
1683
+ };
1684
+ /** Sorting options for zone time top-10 lists. */
1685
+ declare const ZoneTimeSortEnum: {
1686
+ /** Percentage of time spent in the offensive zone */
1687
+ readonly OZ: "offensive";
1688
+ /** Percentage of time spent in the defensive zone */
1689
+ readonly DZ: "defensive";
1690
+ /** Percentage of time spent in the neutral zone */
1691
+ readonly NZ: "neutral";
1692
+ };
1693
+
1694
+ declare const Year$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
1695
+ declare const NHLMonth$1: arktype_internal_variants_object_ts.ObjectType<(In: string | Date) => Out<string>, {}>;
1696
+ declare const NHLDate$1: arktype_internal_variants_object_ts.ObjectType<(In: string | Date) => Out<string>, {}>;
1697
+ declare const Season$2: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => Out<string>, {}>;
1698
+ declare const TeamAbbrev$1: arktype_internal_variants_string_ts.StringType<"MIN" | "ANA" | "BOS" | "BUF" | "CGY" | "CAR" | "CHI" | "COL" | "CBJ" | "DAL" | "DET" | "EDM" | "FLA" | "LAK" | "MTL" | "NJD" | "NSH" | "NYI" | "NYR" | "OTT" | "PHI" | "PIT" | "SJS" | "SEA" | "STL" | "TBL" | "TOR" | "UTA" | "VAN" | "VGK" | "WPG" | "WSH" | "AFM" | "ARI" | "ATL" | "BRK" | "CGS" | "CLE" | "CLR" | "DCG" | "DFL" | "HAM" | "HFD" | "KCS" | "MMR" | "MNS" | "MWN" | "NYA" | "OAK" | "PHX" | "PIR" | "QBD" | "QUA" | "QUE" | "SEN" | "SLE" | "TAN" | "TSP" | "WIN", {}>;
1699
+ declare const TeamId$1: arktype_internal_variants_number_ts.NumberType<1 | 2 | 3 | 4 | 10 | 8 | 7 | 24 | 6 | 20 | 12 | 16 | 21 | 29 | 25 | 17 | 22 | 13 | 26 | 30 | 18 | 9 | 5 | 28 | 55 | 19 | 14 | 59 | 23 | 54 | 52 | 15 | 47 | 53 | 11 | 51 | 56 | 49 | 35 | 40 | 50 | 37 | 34 | 48 | 43 | 31 | 41 | 44 | 46 | 27 | 38 | 42 | 39 | 32 | 36 | 45 | 57 | 58 | 33, {}>;
1700
+ declare const GameType$1: arktype.BaseType<1 | 2 | 3 | 4 | 19 | ((In: "PRE" | "REG" | "POST" | "ASG" | "INTL") => Out<1 | 2 | 3 | 4 | 19>), {}>;
1701
+ declare const GameNumber$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => Out<string>, {}>;
1702
+ declare const DraftRound$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => Out<string>, {}>;
1703
+ declare const EventId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
1704
+ declare const GameId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
1705
+ declare const SeriesLetter$2: arktype_internal_variants_string_ts.StringType<"H" | "A" | "N" | "C" | "L" | "D" | "G" | "O" | "B" | "E" | "F" | "I" | "J" | "K" | "M", {}>;
1706
+ declare const GameState$1: arktype_internal_variants_string_ts.StringType<"FUT" | "LIV" | "FIN", {}>;
1707
+ declare const CountryCode$1: arktype_internal_variants_object_ts.ObjectType<(In: string) => Out<string>, {}>;
1708
+ declare const PostalCode$1: arktype_internal_variants_object_ts.ObjectType<(In: string) => Out<string>, {}>;
1709
+ declare const PlayerId$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => Out<string>, {}>;
1710
+
1711
+ /**
1712
+ * Represents a valid NHL year (e.g., 2023, 2024, ...)
1713
+ */
1714
+ type Year = typeof Year$1.inferIn;
1715
+ /**
1716
+ * Represents an NHL season in the format YYYYYYYY (e.g., 20232024)
1717
+ */
1718
+ type Season$1 = typeof Season$2.inferIn;
1719
+ /**
1720
+ * Represents a valid NHL game type (e.g. REG, PRE, POST)
1721
+ */
1722
+ type GameType = typeof GameType$1.inferIn;
1723
+ /**
1724
+ * Represents an NHL game ID with regex /\d{10}/
1725
+ * Breakdown of the ID: (YYYYTTNNNN)
1726
+ * - First 4 digits: Year of the game (YYYY)
1727
+ * - Next 2 digits: Game type (TT)(01 for preseason, 02 for regular
1728
+ * season, 03 for playoffs)
1729
+ * - Next 4 digits: Game number of the season (NNNN)
1730
+ */
1731
+ type GameId = typeof GameId$1.inferIn;
1732
+ /**
1733
+ * Represents a valid NHL team abbreviation (e.g., NYR, MTL, ...)
1734
+ */
1735
+ type TeamAbbrev = typeof TeamAbbrev$1.inferIn | (string & {});
1736
+ /**
1737
+ * Represents a valid NHL team ID
1738
+ */
1739
+ type TeamId = typeof TeamId$1.inferIn | (number & {});
1740
+ /**
1741
+ * Represents a valid NHL game number
1742
+ */
1743
+ type GameNumber = typeof GameNumber$1.inferIn;
1744
+ /**
1745
+ * Represents a valid NHL game state
1746
+ */
1747
+ type GameState = typeof GameState$1.inferIn;
1748
+ /**
1749
+ * Represents a valid draft round (1-7)
1750
+ */
1751
+ type DraftRound = typeof DraftRound$1.inferIn;
1752
+ /**
1753
+ * Represents a valid NHL event ID
1754
+ */
1755
+ type EventId = typeof EventId$1.inferIn;
1756
+ /**
1757
+ * Represents a valid NHL date in the format YYYY-MM-DD
1758
+ */
1759
+ type NHLDate = typeof NHLDate$1.inferIn;
1760
+ /**
1761
+ * Represents a valid NHL month in the format YYYY-MM
1762
+ */
1763
+ type NHLMonth = typeof NHLMonth$1.inferIn;
1764
+ /**
1765
+ * Represents a valid NHL series letter (A-O)
262
1766
  */
263
1767
  type SeriesLetter$1 = typeof SeriesLetter$2.inferIn;
264
1768
  /**
@@ -268,7 +1772,7 @@ type PlayoffRound = 1 | 2 | 3 | 4;
268
1772
  /**
269
1773
  * Represents a valid country code (e.g., CAN, USA, SWE, ...)
270
1774
  */
271
- type CountryCode$1 = typeof CountryCode$2.inferIn;
1775
+ type CountryCode = typeof CountryCode$1.inferIn;
272
1776
  /**
273
1777
  * Represents a valid country code (e.g., CAN, USA, SWE, ...)
274
1778
  */
@@ -307,374 +1811,1269 @@ type ZoneTimeSort = keyof typeof ZoneTimeSortEnum;
307
1811
 
308
1812
  /**
309
1813
  * ======================================================================
310
- * API endpoints for goalie-related data.
311
- * Base url: api-web.nhle.com/v1/edge
312
- *
313
- * Notes:
314
- * - Convenience endpoints using 'now' for season have been
315
- * excluded in favor of using calculated current season. You can optionally
316
- * configure the switch over date for how current season is calculated.
317
- * See README for details.
318
- * - There is an extra endpoint that appears to duplicate
319
- * the functionality of /skater-detail at `v1/cat/edge/skater-detail`
320
- * As such, it has been excluded from this implementation.
1814
+ * API endpoints for goalie-related data.
1815
+ * Base url: api-web.nhle.com/v1/edge
1816
+ *
1817
+ * Notes:
1818
+ * - Convenience endpoints using 'now' for season have been
1819
+ * excluded in favor of using calculated current season. You can optionally
1820
+ * configure the switch over date for how current season is calculated.
1821
+ * See README for details.
1822
+ * - There is an extra endpoint that appears to duplicate
1823
+ * the functionality of /skater-detail at `v1/cat/edge/skater-detail`
1824
+ * As such, it has been excluded from this implementation.
1825
+ * ======================================================================
1826
+ */
1827
+
1828
+ /**
1829
+ * Goalie Edge Advanced Stats API helpers.
1830
+ *
1831
+ * Lightweight wrapper exposing functions that call the underlying nhlClient
1832
+ * for goalie-related endpoints. Each function resolves to an APIResult; invalid
1833
+ * parameters give a ValidationError result without a request.
1834
+ */
1835
+ /**
1836
+ * Get goalie detail for a player.
1837
+ * @param playerId - The player's numeric id.
1838
+ * @param season - Optional season (numeric season format or 'now' via argParse).
1839
+ * @param gameType - Optional game type id.
1840
+ * @returns Promise resolving to an APIResult with the response data.
1841
+ */
1842
+ declare function player$1(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeGoalieDetail>>;
1843
+ /**
1844
+ * Get goalie comparison data for a player.
1845
+ * @param playerId - The player's numeric id.
1846
+ * @param season - Optional season (numeric season format or 'now' via argParse).
1847
+ * @param gameType - Optional game type id.
1848
+ * @returns Promise resolving to an APIResult with the response data.
1849
+ */
1850
+ declare function compare$1(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeGoalieComparison>>;
1851
+ /**
1852
+ * Get goalie landing / leaders for a season.
1853
+ * @param season - Optional season (numeric season format or 'now' via argParse).
1854
+ * @param gameType - Optional game type id.
1855
+ * @returns Promise resolving to an APIResult with the response data.
1856
+ */
1857
+ declare function leaders$2(season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeGoalieLanding>>;
1858
+ /**
1859
+ * Get 5v5 save percentage details for a goalie.
1860
+ * @param playerId - The player's numeric id.
1861
+ * @param season - Optional season (numeric season format or 'now' via argParse).
1862
+ * @param gameType - Optional game type id.
1863
+ * @returns Promise resolving to an APIResult with the response data.
1864
+ */
1865
+ declare function savePercentage5v5(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeGoalieSavePercentage5v5>>;
1866
+ /**
1867
+ * Get save percentage details for a goalie.
1868
+ * @param playerId - The player's numeric id.
1869
+ * @param season - Optional season (numeric season format or 'now' via argParse).
1870
+ * @param gameType - Optional game type id.
1871
+ * @returns Promise resolving to an APIResult with the response data.
1872
+ */
1873
+ declare function savePercentage(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeGoalieSavePercentage>>;
1874
+ /**
1875
+ * Get save location details for a goalie.
1876
+ * @param playerId - The player's numeric id.
1877
+ * @param season - Optional season (numeric season format or 'now' via argParse).
1878
+ * @param gameType - Optional game type id.
1879
+ * @returns Promise resolving to an APIResult with the response data.
1880
+ */
1881
+ declare function saveLocation(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeGoalieShotLocation>>;
1882
+ /**
1883
+ * Accessor for top-10 leaderboards.
1884
+ * @returns Object with methods to fetch various top-10 lists.
1885
+ */
1886
+ declare const top10$2: {
1887
+ savePercentage: typeof top10SavePercentage;
1888
+ savePercentage5v5: typeof top10SavePercentage5v5;
1889
+ saveLocation: typeof top10SaveLocation;
1890
+ };
1891
+ /**
1892
+ * Top-10 edge save percentage lists.
1893
+ * @param sortBy - Sorting key for the leaderboard.
1894
+ * @param season - Optional season (numeric or 'now').
1895
+ * @param gameType - Optional game type id.
1896
+ * @returns Promise resolving to an APIResult with the response data.
1897
+ */
1898
+ declare function top10SavePercentage(season?: Season$1, gameType?: GameType, sortBy?: SavePercentageSort): Promise<APIResult<EdgeGoalieSavePercentageTop10>>;
1899
+ /**
1900
+ * Top-10 5v5 save percentage lists.
1901
+ * @param sortBy - Sorting key for the leaderboard.
1902
+ * @param season - Optional season (numeric or 'now').
1903
+ * @param gameType - Optional game type id.
1904
+ * @returns Promise resolving to an APIResult with the response data.
1905
+ */
1906
+ declare function top10SavePercentage5v5(season?: Season$1, gameType?: GameType, sortBy?: SavePercentage5v5Sort): Promise<APIResult<EdgeGoalieSavePercentage5v5Top10>>;
1907
+ /**
1908
+ * Top-10 save location lists.
1909
+ * @param category - Category key (see SaveLocationCategoryEnum).
1910
+ * @param sortBy - Sorting key for the leaderboard (see SaveLocationSortEnum).
1911
+ * @param season - Optional season (e.g. 20242025).
1912
+ * @param gameType - Optional game type.
1913
+ * @returns Promise resolving to an APIResult with the response data.
1914
+ */
1915
+ declare function top10SaveLocation(season?: Season$1, gameType?: GameType, category?: SaveLocationCategory, sortBy?: SaveLocationSort): Promise<APIResult<EdgeGoalieShotLocationTop10>>;
1916
+
1917
+ declare const goalies$1_saveLocation: typeof saveLocation;
1918
+ declare const goalies$1_savePercentage: typeof savePercentage;
1919
+ declare const goalies$1_savePercentage5v5: typeof savePercentage5v5;
1920
+ declare namespace goalies$1 {
1921
+ export { compare$1 as compare, leaders$2 as leaders, player$1 as player, goalies$1_saveLocation as saveLocation, goalies$1_savePercentage as savePercentage, goalies$1_savePercentage5v5 as savePercentage5v5, top10$2 as top10 };
1922
+ }
1923
+
1924
+ /**
1925
+ * ======================================================================
1926
+ * API endpoints for skater-related data.
1927
+ * Base url: api-web.nhle.com/v1/edge
1928
+ *
1929
+ * Notes:
1930
+ * - Convenience endpoints using 'now' for season have been
1931
+ * excluded in favor of using calculated current season. You can optionally
1932
+ * configure the switch over date for how current season is calculated.
1933
+ * See README for details.
1934
+ * - There is an extra endpoint that appears to duplicate
1935
+ * the functionality of /skater-detail at `v1/cat/edge/skater-detail`
1936
+ * As such, it has been excluded from this implementation.
1937
+ * =====================================================================
1938
+ */
1939
+
1940
+ /**
1941
+ * Skater Edge Advanced Stats API helpers.
1942
+ *
1943
+ * Lightweight wrapper exposing functions that call the underlying nhlClient
1944
+ * for skater-related endpoints. Each function resolves to an APIResult; invalid
1945
+ * parameters give a ValidationError result without a request.
1946
+ */
1947
+ /** Get skater detail for a player. */
1948
+ declare function detail(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterDetail>>;
1949
+ /** Get skater shot location details for a player. */
1950
+ declare function shotLocation$1(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterShotLocation>>;
1951
+ /** Get skater shot speed details for a player. */
1952
+ declare function shotSpeed$1(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterShotSpeed>>;
1953
+ /** Get skater skating distance details for a player. */
1954
+ declare function skatingDistance$1(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterSkatingDistance>>;
1955
+ /** Get skater skating speed details for a player. */
1956
+ declare function skatingSpeed$1(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterSkatingSpeed>>;
1957
+ /** Get skater zone time for a player. */
1958
+ declare function zoneTime$1(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterZoneTime>>;
1959
+ /** Get skater comparison data for a player. */
1960
+ declare function comparison(playerId: PlayerId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterComparison>>;
1961
+ /** Get skater landing / leaders for a season. */
1962
+ declare function leaders$1(season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeSkaterLanding>>;
1963
+ declare const top10$1: {
1964
+ distance: typeof top10Distance;
1965
+ shotLocation: typeof top10ShotLocation$1;
1966
+ shotSpeed: typeof top10ShotSpeed$1;
1967
+ speed: typeof top10Speed;
1968
+ zoneTime: typeof top10ZoneTime$1;
1969
+ };
1970
+ /** Top-10 skating distance lists. */
1971
+ declare function top10Distance(season?: Season$1, gameType?: GameType, position?: PositionFilter, strength?: SkatersStrength, sortBy?: SkatingDistanceSort): Promise<APIResult<EdgeSkaterDistanceTop10>>;
1972
+ /** Top-10 shot location lists. */
1973
+ declare function top10ShotLocation$1(season?: Season$1, gameType?: GameType, position?: PositionFilter, category?: ShotLocationCategory, sortBy?: ShotLocationSort): Promise<APIResult<EdgeSkaterShotLocationTop10>>;
1974
+ /** Top-10 shot speed lists. */
1975
+ declare function top10ShotSpeed$1(season?: Season$1, gameType?: GameType, position?: PositionFilter, sortBy?: ShotSpeedSort): Promise<APIResult<EdgeSkaterShotSpeedTop10>>;
1976
+ /** Top-10 skating speed lists. */
1977
+ declare function top10Speed(season?: Season$1, gameType?: GameType, position?: PositionFilter, sortBy?: SkatingSpeedSort): Promise<APIResult<EdgeSkaterSpeedTop10>>;
1978
+ /** Top-10 zone time lists. */
1979
+ declare function top10ZoneTime$1(season?: Season$1, gameType?: GameType, position?: PositionFilter, strength?: SkatersStrength, sortBy?: ZoneTimeSort): Promise<APIResult<EdgeSkaterZoneTimeTop10>>;
1980
+
1981
+ declare const skaters$1_comparison: typeof comparison;
1982
+ declare const skaters$1_detail: typeof detail;
1983
+ declare namespace skaters$1 {
1984
+ export { skaters$1_comparison as comparison, skaters$1_detail as detail, leaders$1 as leaders, shotLocation$1 as shotLocation, shotSpeed$1 as shotSpeed, skatingDistance$1 as skatingDistance, skatingSpeed$1 as skatingSpeed, top10$1 as top10, zoneTime$1 as zoneTime };
1985
+ }
1986
+
1987
+ /**
1988
+ * Edge Advanced Stats API helpers.
1989
+ *
1990
+ * Lightweight wrapper exposing functions that call the underlying nhlClient
1991
+ * for related endpoints. Each function resolves to an APIResult; invalid
1992
+ * parameters give a ValidationError result without a request.
1993
+ */
1994
+ /**
1995
+ * Get the "by the numbers" data for the current day, updated daily with
1996
+ * insights from the previous days games.
1997
+ * @returns A promise that resolves to the "by the numbers" data.
1998
+ */
1999
+ declare function byTheNumbers(): Promise<APIResult<EdgeByTheNumbers>>;
2000
+
2001
+ /**
2002
+ * ======================================================================
2003
+ * API endpoints for team-related data.
2004
+ * Base url: api-web.nhle.com/v1/edge
2005
+ *
2006
+ * note: the season and game-type params on any endpoint can
2007
+ * be replaced with 'now' to get current season data.
2008
+ * ex. `/team-detail/{team-id}/now`
2009
+ * ======================================================================
2010
+ */
2011
+
2012
+ /**
2013
+ * Team Edge Advanced Stats API helpers.
2014
+ *
2015
+ * Lightweight wrapper exposing functions that call the underlying nhlClient
2016
+ * for team-related endpoints. Each function resolves to an APIResult; invalid
2017
+ * parameters give a ValidationError result without a request.
2018
+ */
2019
+ /**
2020
+ * Get team detail stats for a team.
2021
+ * @param teamId - Team numeric id.
2022
+ * @param season - Optional season (numeric season format or 'now').
2023
+ * @param gameType - Optional game type id (defaults to Regular Season).
2024
+ */
2025
+ declare function stats$1(teamId: TeamId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamDetail>>;
2026
+ /**
2027
+ * Get team comparison data for a single team.
2028
+ */
2029
+ declare function compare(teamId: TeamId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamComparison>>;
2030
+ /**
2031
+ * Get team landing/leaders for a season.
2032
+ */
2033
+ declare function leaders(season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamLanding>>;
2034
+ /**
2035
+ * Get shot location details for a team.
2036
+ */
2037
+ declare function shotLocation(teamId: TeamId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamShotLocation>>;
2038
+ /**
2039
+ * Get shot speed details for a team.
2040
+ */
2041
+ declare function shotSpeed(teamId: TeamId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamShotSpeed>>;
2042
+ /**
2043
+ * Get skating distance details for a team.
2044
+ */
2045
+ declare function skatingDistance(teamId: TeamId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamSkatingDistance>>;
2046
+ /**
2047
+ * Get skating speed details for a team.
2048
+ */
2049
+ declare function skatingSpeed(teamId: TeamId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamSkatingSpeed>>;
2050
+ /**
2051
+ * Get zone time details for a team.
2052
+ */
2053
+ declare function zoneTime(teamId: TeamId, season?: Season$1, gameType?: GameType): Promise<APIResult<EdgeTeamZoneTime>>;
2054
+ declare const top10: {
2055
+ shotLocation: typeof top10ShotLocation;
2056
+ shotSpeed: typeof top10ShotSpeed;
2057
+ skatingDistance: typeof top10SkatingDistance;
2058
+ skatingSpeed: typeof top10SkatingSpeed;
2059
+ zoneTime: typeof top10ZoneTime;
2060
+ };
2061
+ /**
2062
+ * Top-10 team shot location lists.
2063
+ */
2064
+ declare function top10ShotLocation(season?: Season$1, gameType?: GameType, position?: PositionFilter, category?: ShotLocationCategory, sortBy?: ShotLocationSort): Promise<APIResult<EdgeTeamShotLocationTop10>>;
2065
+ /**
2066
+ * Top-10 team shot speed lists.
2067
+ */
2068
+ declare function top10ShotSpeed(season?: Season$1, gameType?: GameType, position?: PositionFilter, sortBy?: ShotSpeedSort): Promise<APIResult<EdgeTeamShotSpeedTop10>>;
2069
+ /**
2070
+ * Top-10 team skating distance lists.
2071
+ */
2072
+ declare function top10SkatingDistance(season?: Season$1, gameType?: GameType, position?: PositionFilter, strength?: SkatersStrength, sortBy?: SkatingDistanceSort): Promise<APIResult<EdgeTeamSkatingDistanceTop10>>;
2073
+ /**
2074
+ * Top-10 team skating speed lists.
2075
+ */
2076
+ declare function top10SkatingSpeed(season?: Season$1, gameType?: GameType, position?: PositionFilter, sortBy?: SkatingSpeedSort): Promise<APIResult<EdgeTeamSkatingSpeedTop10>>;
2077
+ /**
2078
+ * Top-10 team zone time lists.
2079
+ */
2080
+ declare function top10ZoneTime(season?: Season$1, gameType?: GameType, strength?: SkatersStrength, sortBy?: ZoneTimeSort): Promise<APIResult<EdgeTeamZoneTimeTop10>>;
2081
+
2082
+ declare const teams$1_compare: typeof compare;
2083
+ declare const teams$1_leaders: typeof leaders;
2084
+ declare const teams$1_shotLocation: typeof shotLocation;
2085
+ declare const teams$1_shotSpeed: typeof shotSpeed;
2086
+ declare const teams$1_skatingDistance: typeof skatingDistance;
2087
+ declare const teams$1_skatingSpeed: typeof skatingSpeed;
2088
+ declare const teams$1_top10: typeof top10;
2089
+ declare const teams$1_zoneTime: typeof zoneTime;
2090
+ declare namespace teams$1 {
2091
+ export { teams$1_compare as compare, teams$1_leaders as leaders, teams$1_shotLocation as shotLocation, teams$1_shotSpeed as shotSpeed, teams$1_skatingDistance as skatingDistance, teams$1_skatingSpeed as skatingSpeed, stats$1 as stats, teams$1_top10 as top10, teams$1_zoneTime as zoneTime };
2092
+ }
2093
+
2094
+ /**
2095
+ * ========================================================================
2096
+ * NHL Edge Advanced Stats API Module Exports
2097
+ * Base URL: https://api.nhle.com/stats/rest
2098
+ * ========================================================================
2099
+ * Complete NHL Edge Advanced Stats API implementation with modules for:
2100
+ * - Players (skaters, goalies)
2101
+ * - Teams and franchises
2102
+ * - Advanced statistical numbers
2103
+ * ========================================================================
2104
+ */
2105
+
2106
+ declare const index$2_byTheNumbers: typeof byTheNumbers;
2107
+ declare namespace index$2 {
2108
+ export { index$2_byTheNumbers as byTheNumbers, goalies$1 as goalies, skaters$1 as skaters, teams$1 as teams };
2109
+ }
2110
+
2111
+ /**
2112
+ * ======================================================================
2113
+ * NHL Edge Stats API - Endpoint Paths
2114
+ * Base URL: https://api.nhle.com/stats/rest
321
2115
  * ======================================================================
2116
+ * Defines the endpoint paths for all categories of data in the NHL Edge
2117
+ * Stats API. These paths are used by the various API functions to
2118
+ * construct the correct URLs for making requests to the API.
2119
+ *
2120
+ * Note: These endpoints generally return entire datasets (tabular data)
2121
+ * as arrays of objects. The API expects query parameters to be used for
2122
+ * filtering and column selection (namely through cayenneExp). Some
2123
+ * endpoints will return empty arrays or 'not found' errors when queried
2124
+ * without parameters.
322
2125
  */
2126
+ declare const dataPaths: {
2127
+ /** Goalie-related statistics and reports. */
2128
+ goalie: {
2129
+ /** Goalie leader boards by stat category. */
2130
+ leaders: {
2131
+ /** Goals-against average leaders. */
2132
+ gaa: string;
2133
+ /** Save percentage leaders. */
2134
+ savePctg: string;
2135
+ /** Shutouts leaders. */
2136
+ shutouts: string;
2137
+ };
2138
+ /** Goalie statistical reports. */
2139
+ report: string;
2140
+ /** Goalie career milestones. */
2141
+ milestones: string;
2142
+ };
2143
+ /** Skater/player-related statistics and reports. */
2144
+ skater: {
2145
+ /** Player directory and information. */
2146
+ players: string;
2147
+ /** Skater leader boards by stat category. */
2148
+ leaders: {
2149
+ /** Assists leaders. */
2150
+ assists: string;
2151
+ /** Goals leaders. */
2152
+ goals: string;
2153
+ /** Points leaders. */
2154
+ points: string;
2155
+ };
2156
+ /** Skater career milestones. */
2157
+ milestones: string;
2158
+ /** Skater statistical reports. */
2159
+ report: string;
2160
+ };
2161
+ /** Team-related statistics and reports. */
2162
+ team: {
2163
+ /** All teams data. */
2164
+ all: string;
2165
+ /** Team data by team ID. */
2166
+ byId: string;
2167
+ /** Team statistical reports. */
2168
+ report: string;
2169
+ };
2170
+ /** Season-related data. */
2171
+ season: string;
2172
+ /** Game-related data. */
2173
+ game: string;
2174
+ /** Draft-related data. */
2175
+ draft: string;
2176
+ /** Configuration data for skater, goalie, and team reports. */
2177
+ config: string;
2178
+ /** Country data. */
2179
+ countries: string;
2180
+ /** Shift chart data. */
2181
+ shiftCharts: string;
2182
+ /** Glossary data. */
2183
+ glossary: string;
2184
+ /** Franchise data. */
2185
+ franchises: string;
2186
+ };
323
2187
 
324
2188
  /**
325
- * Goalie Edge Advanced Stats API helpers.
2189
+ * Response and parameter types for the NHL Stats API
2190
+ * (https://api.nhle.com/stats/rest)
326
2191
  *
327
- * Lightweight wrapper exposing functions that call the underlying nhlClient
328
- * for goalie-related endpoints. Each method returns the raw Promise from the
329
- * client.get call.
2192
+ * Every list endpoint answers `{ data: T[], total }`. Report rows (skater,
2193
+ * goalie and team reports) vary with the report and with `isAggregate` /
2194
+ * `isGame`, so their types list the `summary` fields and keep an index
2195
+ * signature for the rest.
2196
+ *
2197
+ * With `isAggregate=true`, report rows drop per-instance fields (seasonId,
2198
+ * teamId, gameId) and team reports add franchise fields; see
2199
+ * TeamStatsWithFranchise.
330
2200
  */
2201
+
2202
+ /** List response returned by every Stats API list endpoint */
2203
+ interface PaginatedData<T> {
2204
+ data: T[];
2205
+ /** Number of rows matching the query, before `limit` */
2206
+ total: number;
2207
+ }
2208
+ type APIResultPaginated<T> = APIResult<PaginatedData<T>>;
331
2209
  /**
332
- * Get goalie detail for a player.
333
- * @param playerId - The player's numeric id.
334
- * @param season - Optional season (numeric season format or 'now' via argParse).
335
- * @param gameType - Optional game type id.
336
- * @returns Promise resolving to the raw API response.
2210
+ * Skater report names listed by `/config` (`playerReportData`).
2211
+ * Any other string is accepted for reports added later.
337
2212
  */
338
- declare function player$1(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
2213
+ type SkaterReport = 'bios' | 'faceoffpercentages' | 'faceoffwins' | 'goalsForAgainst' | 'penalties' | 'penaltyShots' | 'penaltykill' | 'percentages' | 'powerplay' | 'puckPossessions' | 'realtime' | 'scoringRates' | 'scoringpergame' | 'shootout' | 'shottype' | 'summary' | 'summaryshooting' | 'timeonice' | (string & {});
2214
+ /** Goalie report names listed by `/config` (`goalieReportData`) */
2215
+ type GoalieReport = 'advanced' | 'bios' | 'daysrest' | 'penaltyShots' | 'savesByStrength' | 'shootout' | 'startedVsRelieved' | 'summary' | (string & {});
2216
+ /** Team report names listed by `/config` (`teamReportData`) */
2217
+ type TeamReport = 'daysbetweengames' | 'faceoffpercentages' | 'faceoffwins' | 'goalgames' | 'goalsagainstbystrength' | 'goalsagainstbystrengthgoaliepull' | 'goalsbyperiod' | 'goalsforbystrength' | 'goalsforbystrengthgoaliepull' | 'leadingtrailing' | 'outshootoutshotby' | 'penalties' | 'penaltykill' | 'penaltykilltime' | 'percentages' | 'powerplay' | 'powerplaytime' | 'realtime' | 'savePercentage' | 'scoretrailfirst' | 'shootout' | 'shottype' | 'summary' | 'summaryshooting' | (string & {});
2218
+ /** A player as listed by `/players` and nested in leader rows */
2219
+ interface PlayerInfo {
2220
+ id: number;
2221
+ currentTeamId: number | null;
2222
+ firstName: string;
2223
+ fullName: string;
2224
+ lastName: string;
2225
+ positionCode: string;
2226
+ sweaterNumber: number | null;
2227
+ }
2228
+ /** A team logo, included with `include=logos` */
2229
+ interface TeamLogo {
2230
+ id: number;
2231
+ background: string;
2232
+ endSeason: number;
2233
+ secureUrl: string;
2234
+ startSeason: number;
2235
+ teamId: number;
2236
+ url: string;
2237
+ }
2238
+ /** A team as listed by `/team` and `/team/id/{id}` */
2239
+ interface Team$b {
2240
+ id: number;
2241
+ franchiseId: number | null;
2242
+ fullName: string;
2243
+ leagueId: number;
2244
+ rawTricode: string;
2245
+ triCode: string;
2246
+ /** Present with `include=logos`, and on leader rows */
2247
+ logos?: TeamLogo[];
2248
+ }
2249
+ /** Row of a skater report (fields of the `summary` report) */
2250
+ interface SkaterStats {
2251
+ playerId: number;
2252
+ skaterFullName?: string;
2253
+ lastName?: string;
2254
+ seasonId?: number;
2255
+ teamAbbrevs?: string;
2256
+ positionCode?: string;
2257
+ shootsCatches?: string;
2258
+ gamesPlayed?: number;
2259
+ goals?: number;
2260
+ assists?: number;
2261
+ points?: number;
2262
+ plusMinus?: number;
2263
+ pointsPerGame?: number;
2264
+ penaltyMinutes?: number;
2265
+ evGoals?: number;
2266
+ evPoints?: number;
2267
+ ppGoals?: number;
2268
+ ppPoints?: number;
2269
+ shGoals?: number;
2270
+ shPoints?: number;
2271
+ otGoals?: number;
2272
+ gameWinningGoals?: number;
2273
+ shots?: number;
2274
+ shootingPct?: number | null;
2275
+ faceoffWinPct?: number | null;
2276
+ timeOnIcePerGame?: number;
2277
+ [key: string]: unknown;
2278
+ }
2279
+ /** Row of a goalie report (fields of the `summary` report) */
2280
+ interface GoalieStats {
2281
+ playerId: number;
2282
+ goalieFullName?: string;
2283
+ lastName?: string;
2284
+ seasonId?: number;
2285
+ teamAbbrevs?: string;
2286
+ shootsCatches?: string;
2287
+ gamesPlayed?: number;
2288
+ gamesStarted?: number;
2289
+ wins?: number;
2290
+ losses?: number;
2291
+ otLosses?: number | null;
2292
+ ties?: number | null;
2293
+ shutouts?: number;
2294
+ goalsAgainst?: number;
2295
+ goalsAgainstAverage?: number;
2296
+ saves?: number;
2297
+ shotsAgainst?: number;
2298
+ savePct?: number | null;
2299
+ timeOnIce?: number;
2300
+ goals?: number;
2301
+ assists?: number;
2302
+ points?: number;
2303
+ penaltyMinutes?: number;
2304
+ [key: string]: unknown;
2305
+ }
2306
+ /** Row of a team report (fields of the `summary` report) */
2307
+ interface TeamStats$1 {
2308
+ teamId?: number;
2309
+ teamFullName?: string;
2310
+ seasonId?: number;
2311
+ gamesPlayed?: number;
2312
+ wins?: number;
2313
+ losses?: number;
2314
+ otLosses?: number | null;
2315
+ ties?: number | null;
2316
+ points?: number;
2317
+ pointPct?: number;
2318
+ regulationAndOtWins?: number;
2319
+ winsInRegulation?: number;
2320
+ winsInShootout?: number;
2321
+ goalsFor?: number;
2322
+ goalsAgainst?: number;
2323
+ goalsForPerGame?: number;
2324
+ goalsAgainstPerGame?: number;
2325
+ shotsForPerGame?: number;
2326
+ shotsAgainstPerGame?: number;
2327
+ powerPlayPct?: number | null;
2328
+ powerPlayNetPct?: number | null;
2329
+ penaltyKillPct?: number | null;
2330
+ penaltyKillNetPct?: number | null;
2331
+ faceoffWinPct?: number | null;
2332
+ teamShutouts?: number;
2333
+ [key: string]: unknown;
2334
+ }
339
2335
  /**
340
- * Get goalie comparison data for a player.
341
- * @param playerId - The player's numeric id.
342
- * @param season - Optional season (numeric season format or 'now' via argParse).
343
- * @param gameType - Optional game type id.
344
- * @returns Promise resolving to the raw API response.
2336
+ * Row of a team report requested with `isAggregate=true`: per-team and
2337
+ * per-season fields are dropped and franchise fields added.
345
2338
  */
346
- declare function compare$1(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
2339
+ interface TeamStatsWithFranchise extends TeamStats$1 {
2340
+ franchiseId: number;
2341
+ franchiseName: string;
2342
+ }
2343
+ /** Skater leader row; the stat field is named after the category */
2344
+ interface SkaterLeader$1 {
2345
+ player: PlayerInfo;
2346
+ team: Team$b;
2347
+ goals?: number;
2348
+ assists?: number;
2349
+ points?: number;
2350
+ }
2351
+ /** Goalie leader row; the stat field is named after the category */
2352
+ interface GoalieLeader$1 {
2353
+ player: PlayerInfo;
2354
+ team: Team$b;
2355
+ gaa?: number | null;
2356
+ savePctg?: number | null;
2357
+ shutouts?: number;
2358
+ }
2359
+ /** Shared fields of a milestone row */
2360
+ interface Milestone {
2361
+ id: number;
2362
+ playerId: number;
2363
+ firstName: string;
2364
+ lastName: string;
2365
+ playerFullName: string;
2366
+ currentTeamId: number;
2367
+ teamAbbrev: string;
2368
+ teamCommonName: string;
2369
+ teamFullName: string;
2370
+ teamPlaceName: string;
2371
+ gameTypeId: number;
2372
+ gamesPlayed: number;
2373
+ /** The stat being approached, e.g. "Goals" or "Shutouts" */
2374
+ milestone: string;
2375
+ milestoneAmount: number;
2376
+ }
2377
+ /** A skater approaching a career milestone */
2378
+ interface SkaterMilestone extends Milestone {
2379
+ goals: number;
2380
+ assists: number;
2381
+ points: number;
2382
+ }
2383
+ /** A goalie approaching a career milestone */
2384
+ interface GoalieMilestone extends Milestone {
2385
+ wins: number;
2386
+ so: number;
2387
+ toiMinutes: number;
2388
+ }
2389
+ /** A franchise from `/franchise` */
2390
+ interface Franchise {
2391
+ id: number;
2392
+ fullName: string;
2393
+ teamCommonName: string;
2394
+ teamPlaceName: string;
2395
+ }
2396
+ /** A season from `/season` */
2397
+ interface Season {
2398
+ /** Season id, e.g. 20242025 */
2399
+ id: number;
2400
+ formattedSeasonId: string;
2401
+ seasonOrdinal: number;
2402
+ startDate: string;
2403
+ endDate: string;
2404
+ preseasonStartdate: string | null;
2405
+ regularSeasonEndDate: string;
2406
+ numberOfGames: number;
2407
+ totalRegularSeasonGames: number;
2408
+ totalPlayoffGames: number;
2409
+ allStarGameInUse: number;
2410
+ conferencesInUse: number;
2411
+ divisionsInUse: number;
2412
+ entryDraftInUse: number;
2413
+ nhlStanleyCupOwner: number;
2414
+ olympicsParticipation: number;
2415
+ pointForOTLossInUse: number;
2416
+ rowInUse: number;
2417
+ supplementalDraftInUse: number;
2418
+ tiesInUse: number;
2419
+ wildcardInUse: number;
2420
+ minimumPlayoffMinutesForGoalieStatsLeaders: number;
2421
+ minimumRegularGamesForGoalieStatsLeaders: number;
2422
+ }
2423
+ /** A game from `/game` */
2424
+ interface Game$6 {
2425
+ /** Game id, e.g. 2024020001 */
2426
+ id: number;
2427
+ season: number;
2428
+ /** 1 = preseason, 2 = regular season, 3 = playoffs */
2429
+ gameType: number;
2430
+ gameNumber: number;
2431
+ gameDate: string;
2432
+ easternStartTime: string;
2433
+ gameScheduleStateId: number;
2434
+ gameStateId: number;
2435
+ period: number | null;
2436
+ homeTeamId: number;
2437
+ homeScore: number | null;
2438
+ visitingTeamId: number;
2439
+ visitingScore: number | null;
2440
+ }
2441
+ /** A draft year from `/draft` */
2442
+ interface Draft {
2443
+ id: number;
2444
+ draftYear: number;
2445
+ rounds: number;
2446
+ }
347
2447
  /**
348
- * Get goalie landing / leaders for a season.
349
- * @param season - Optional season (numeric season format or 'now' via argParse).
350
- * @param gameType - Optional game type id.
351
- * @returns Promise resolving to the raw API response.
2448
+ * Report configuration from `/config`: the columns, filters and sort keys
2449
+ * of every skater, goalie and team report.
352
2450
  */
353
- declare function leaders$2(season?: Season, gameType?: GameType): Promise<unknown>;
2451
+ interface Config {
2452
+ playerReportData: Record<string, unknown>;
2453
+ goalieReportData: Record<string, unknown>;
2454
+ teamReportData: Record<string, unknown>;
2455
+ [key: string]: unknown;
2456
+ }
2457
+ /** A country from `/country` */
2458
+ interface Country {
2459
+ /** Three-letter code, same as country3Code */
2460
+ id: string;
2461
+ country3Code: string;
2462
+ countryCode: string;
2463
+ countryName: string;
2464
+ nationalityName: string;
2465
+ iocCode: string | null;
2466
+ hasPlayerStats: number;
2467
+ isActive: number;
2468
+ imageUrl: string | null;
2469
+ thumbnailUrl: string | null;
2470
+ olympicUrl: string | null;
2471
+ }
2472
+ /** One shift (or goal event) from `/shiftcharts` */
2473
+ interface ShiftChart {
2474
+ id: number;
2475
+ gameId: number;
2476
+ playerId: number;
2477
+ firstName: string;
2478
+ lastName: string;
2479
+ teamId: number;
2480
+ teamAbbrev: string;
2481
+ teamName: string;
2482
+ hexValue: string;
2483
+ period: number;
2484
+ shiftNumber: number;
2485
+ startTime: string;
2486
+ endTime: string;
2487
+ duration: string | null;
2488
+ /** 517 = shift, 505 = goal */
2489
+ typeCode: number;
2490
+ detailCode: number;
2491
+ eventNumber: number | null;
2492
+ eventDescription: string | null;
2493
+ eventDetails: string | null;
2494
+ }
2495
+ /** A stat definition from `/glossary` */
2496
+ interface GlossaryEntry {
2497
+ id: number;
2498
+ abbreviation: string;
2499
+ fullName: string;
2500
+ definition: string;
2501
+ firstSeasonForStat: number | null;
2502
+ languageCode: string;
2503
+ lastUpdated: string;
2504
+ }
354
2505
  /**
355
- * Get 5v5 save percentage details for a goalie.
356
- * @param playerId - The player's numeric id.
357
- * @param season - Optional season (numeric season format or 'now' via argParse).
358
- * @param gameType - Optional game type id.
359
- * @returns Promise resolving to the raw API response.
2506
+ * Query parameters for Stats API list endpoints
360
2507
  */
361
- declare function savePercentage5v5(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
2508
+ interface StatsQueryParams extends Record<string, unknown> {
2509
+ /**
2510
+ * Cayenne expression for filtering. Skater and goalie reports fail
2511
+ * (HTTP 500) without one, so the report functions send an empty
2512
+ * expression when none is given.
2513
+ */
2514
+ cayenneExp?: string;
2515
+ /** Sort field, or a JSON array of `{property, direction}` */
2516
+ sort?: string;
2517
+ /** Sort direction: 'asc' or 'desc' */
2518
+ dir?: 'asc' | 'desc';
2519
+ /** Number of results to return; -1 returns all results */
2520
+ limit?: number;
2521
+ /** Starting index for pagination */
2522
+ start?: number;
2523
+ /** Include related data, e.g. 'logos' on teams */
2524
+ include?: string;
2525
+ /** Exclude certain fields */
2526
+ exclude?: string;
2527
+ /** Cayenne expression applied to the underlying facts (e.g. gamesPlayed>=10) */
2528
+ factCayenneExp?: string;
2529
+ /** Aggregate rows across seasons and teams */
2530
+ isAggregate?: boolean;
2531
+ /** Return one row per game */
2532
+ isGame?: boolean;
2533
+ }
2534
+ /** Convenience filters for the `getStatsWithFilters` functions */
2535
+ interface StatsFilters {
2536
+ seasonId?: string | number;
2537
+ gameTypeId?: number;
2538
+ playerId?: number;
2539
+ teamId?: number;
2540
+ /** Any other field, matched with equality */
2541
+ [key: string]: string | number | undefined;
2542
+ }
2543
+ /** Sorting for the `getStatsWithFilters` functions */
2544
+ interface StatsSorting {
2545
+ sortBy?: string;
2546
+ direction?: 'asc' | 'desc';
2547
+ }
2548
+ /** Pagination for the `getStatsWithFilters` functions */
2549
+ interface StatsPagination {
2550
+ limit?: number;
2551
+ start?: number;
2552
+ }
2553
+
362
2554
  /**
363
- * Get save percentage details for a goalie.
364
- * @param playerId - The player's numeric id.
365
- * @param season - Optional season (numeric season format or 'now' via argParse).
366
- * @param gameType - Optional game type id.
367
- * @returns Promise resolving to the raw API response.
2555
+ * ======================================================================
2556
+ * NHL Stats API - Goalie Endpoints
2557
+ * Base URL: https://api.nhle.com/stats/rest
2558
+ * ======================================================================
2559
+ * Provides functions for retrieving goalie statistics and information
2560
+ * from the NHL Stats API.
368
2561
  */
369
- declare function savePercentage(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
2562
+
370
2563
  /**
371
- * Get save location details for a goalie.
372
- * @param playerId - The player's numeric id.
373
- * @param season - Optional season (numeric season format or 'now' via argParse).
374
- * @param gameType - Optional game type id.
375
- * @returns Promise resolving to the raw API response.
2564
+ * Get goalie leaders for a stat category
2565
+ *
2566
+ * Without a filter the leaders are all-time; filter by season with
2567
+ * `{ cayenneExp: 'season=20242025 and gameType=2' }`.
2568
+ *
2569
+ * @param statCategory - 'gaa', 'savePctg' or 'shutouts'
2570
+ * @param params - Query parameters (the endpoint ignores `limit`)
2571
+ * @param lang - Language code (default: configured language)
2572
+ * @returns Promise resolving to goalie leaders
2573
+ *
2574
+ * @example
2575
+ * const leaders = await stats.goalies.getLeaders('gaa', {
2576
+ * cayenneExp: 'season=20242025 and gameType=2',
2577
+ * });
376
2578
  */
377
- declare function saveLocation(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
2579
+ declare function getLeaders$1(statCategory: keyof typeof dataPaths.goalie.leaders, params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<GoalieLeader$1>>;
378
2580
  /**
379
- * Accessor for top-10 leaderboards.
380
- * @returns Object with methods to fetch various top-10 lists.
2581
+ * Get a goalie report
2582
+ *
2583
+ * @param report - The report name (default: 'summary')
2584
+ * @param params - Query parameters including cayenneExp for filtering
2585
+ * @param lang - Language code (default: configured language)
2586
+ * @returns Promise resolving to goalie statistics
2587
+ *
2588
+ * @example
2589
+ * const result = await stats.goalies.getStats('summary', {
2590
+ * cayenneExp: 'seasonId=20242025 and gameTypeId=2',
2591
+ * sort: 'wins',
2592
+ * dir: 'desc',
2593
+ * limit: 10,
2594
+ * });
381
2595
  */
382
- declare const top10$2: {
383
- savePercentage: typeof top10SavePercentage;
384
- savePercentage5v5: typeof top10SavePercentage5v5;
385
- saveLocation: typeof top10SaveLocation;
386
- };
2596
+ declare function getStats$2(report?: GoalieReport, params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<GoalieStats>>;
387
2597
  /**
388
- * Top-10 edge save percentage lists.
389
- * @param sortBy - Sorting key for the leaderboard.
390
- * @param season - Optional season (numeric or 'now').
391
- * @param gameType - Optional game type id.
392
- * @returns Promise resolving to the raw API response.
2598
+ * Get goalie stats with low-level query parameters
2599
+ * This is the most flexible approach - you build the query parameters yourself
2600
+ *
2601
+ * @param report - The report name (e.g., 'summary', 'advanced')
2602
+ * @param params - Query parameters including cayenneExp for filtering
2603
+ * @param lang - Language code (default: configured language)
2604
+ * @returns Promise resolving to goalie statistics
2605
+ *
2606
+ * @example
2607
+ * const result = await stats.goalies.getStatsWithParams('summary', {
2608
+ * cayenneExp: 'seasonId=20232024 and gameTypeId=2',
2609
+ * sort: 'wins',
2610
+ * limit: 10,
2611
+ * dir: 'desc',
2612
+ * });
393
2613
  */
394
- declare function top10SavePercentage(season?: Season, gameType?: GameType, sortBy?: SavePercentageSort): Promise<unknown>;
2614
+ declare function getStatsWithParams$2(report: GoalieReport, params: StatsQueryParams, lang?: string): Promise<APIResultPaginated<GoalieStats>>;
395
2615
  /**
396
- * Top-10 5v5 save percentage lists.
397
- * @param sortBy - Sorting key for the leaderboard.
398
- * @param season - Optional season (numeric or 'now').
399
- * @param gameType - Optional game type id.
400
- * @returns Promise resolving to the raw API response.
2616
+ * Get goalie stats using a fluent query builder
2617
+ *
2618
+ * @param report - The report name (e.g., 'summary', 'advanced')
2619
+ * @param buildQuery - Function that receives a CayenneQueryBuilder and returns params
2620
+ * @param lang - Language code (default: configured language)
2621
+ * @returns Promise resolving to goalie statistics
2622
+ *
2623
+ * @example
2624
+ * const result = await stats.goalies.getStatsWithBuilder('summary', (q) => ({
2625
+ * cayenneExp: q.equals('seasonId', 20232024).equals('gameTypeId', 2).build(),
2626
+ * sort: 'wins',
2627
+ * limit: 10,
2628
+ * dir: 'desc' as const,
2629
+ * }));
401
2630
  */
402
- declare function top10SavePercentage5v5(season?: Season, gameType?: GameType, sortBy?: SavePercentage5v5Sort): Promise<unknown>;
2631
+ declare function getStatsWithBuilder$2(report: GoalieReport, buildQuery: (builder: CayenneQueryBuilder) => StatsQueryParams, lang?: string): Promise<APIResultPaginated<GoalieStats>>;
403
2632
  /**
404
- * Top-10 save location lists.
405
- * @param category - Category key (see SaveLocationCategoryEnum).
406
- * @param sortBy - Sorting key for the leaderboard (see SaveLocationSortEnum).
407
- * @param season - Optional season (e.g. 20242025).
408
- * @param gameType - Optional game type.
409
- * @returns Promise resolving to the raw API response.
2633
+ * Get goalie stats with high-level convenience parameters
2634
+ * Every filter is matched with equality.
2635
+ *
2636
+ * @param report - The report name (e.g., 'summary', 'advanced')
2637
+ * @param filters - Field filters, e.g. `{ seasonId: 20232024, gameTypeId: 2 }`
2638
+ * @param sorting - Sorting options
2639
+ * @param pagination - Pagination options
2640
+ * @param lang - Language code (default: configured language)
2641
+ * @returns Promise resolving to goalie statistics
2642
+ *
2643
+ * @example
2644
+ * const result = await stats.goalies.getStatsWithFilters(
2645
+ * 'summary',
2646
+ * { seasonId: '20232024', gameTypeId: 2 },
2647
+ * { sortBy: 'wins', direction: 'desc' },
2648
+ * { limit: 10, start: 0 },
2649
+ * );
410
2650
  */
411
- declare function top10SaveLocation(season?: Season, gameType?: GameType, category?: SaveLocationCategory, sortBy?: SaveLocationSort): Promise<unknown>;
2651
+ declare function getStatsWithFilters$2(report: GoalieReport, filters?: StatsFilters, sorting?: StatsSorting, pagination?: StatsPagination, lang?: string): Promise<APIResultPaginated<GoalieStats>>;
2652
+ /**
2653
+ * Get active goalies approaching a career milestone
2654
+ *
2655
+ * @param lang - Language code (default: configured language)
2656
+ * @returns Promise resolving to goalie milestones
2657
+ *
2658
+ * @example
2659
+ * const milestones = await stats.goalies.getMilestones();
2660
+ */
2661
+ declare function getMilestones$1(lang?: string): Promise<APIResultPaginated<GoalieMilestone>>;
412
2662
 
413
- declare const goalies_saveLocation: typeof saveLocation;
414
- declare const goalies_savePercentage: typeof savePercentage;
415
- declare const goalies_savePercentage5v5: typeof savePercentage5v5;
416
2663
  declare namespace goalies {
417
- export { compare$1 as compare, leaders$2 as leaders, player$1 as player, goalies_saveLocation as saveLocation, goalies_savePercentage as savePercentage, goalies_savePercentage5v5 as savePercentage5v5, top10$2 as top10 };
2664
+ export { getLeaders$1 as getLeaders, getMilestones$1 as getMilestones, getStats$2 as getStats, getStatsWithBuilder$2 as getStatsWithBuilder, getStatsWithFilters$2 as getStatsWithFilters, getStatsWithParams$2 as getStatsWithParams };
418
2665
  }
419
2666
 
420
2667
  /**
421
2668
  * ======================================================================
422
- * API endpoints for skater-related data.
423
- * Base url: api-web.nhle.com/v1/edge
424
- *
425
- * Notes:
426
- * - Convenience endpoints using 'now' for season have been
427
- * excluded in favor of using calculated current season. You can optionally
428
- * configure the switch over date for how current season is calculated.
429
- * See README for details.
430
- * - There is an extra endpoint that appears to duplicate
431
- * the functionality of /skater-detail at `v1/cat/edge/skater-detail`
432
- * As such, it has been excluded from this implementation.
433
- * =====================================================================
2669
+ * NHL Stats API - Miscellaneous Endpoints
2670
+ * Base URL: https://api.nhle.com/stats/rest
2671
+ * ======================================================================
2672
+ * Provides functions for miscellaneous operations including configuration,
2673
+ * country information, shift charts, glossary, and content modules.
434
2674
  */
435
2675
 
436
2676
  /**
437
- * Skater Edge Advanced Stats API helpers.
2677
+ * Get configuration information
438
2678
  *
439
- * Lightweight wrapper exposing functions that call the underlying nhlClient
440
- * for skater-related endpoints. Each method returns the raw Promise from the
441
- * client.get call.
2679
+ * @param lang - Language code (default: configured language)
2680
+ * @returns Promise resolving to configuration data
2681
+ *
2682
+ * @example
2683
+ * const config = await getConfig('en');
442
2684
  */
443
- /** Get skater detail for a player. */
444
- declare function detail(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
445
- /** Get skater shot location details for a player. */
446
- declare function shotLocation$1(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
447
- /** Get skater shot speed details for a player. */
448
- declare function shotSpeed$1(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
449
- /** Get skater skating distance details for a player. */
450
- declare function skatingDistance$1(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
451
- /** Get skater skating speed details for a player. */
452
- declare function skatingSpeed$1(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
453
- /** Get skater zone time for a player. */
454
- declare function zoneTime$1(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
455
- /** Get skater comparison data for a player. */
456
- declare function comparison(playerId: PlayerId, season?: Season, gameType?: GameType): Promise<unknown>;
457
- /** Get skater landing / leaders for a season. */
458
- declare function leaders$1(season?: Season, gameType?: GameType): Promise<unknown>;
459
- declare const top10$1: {
460
- distance: typeof top10Distance;
461
- shotLocation: typeof top10ShotLocation$1;
462
- shotSpeed: typeof top10ShotSpeed$1;
463
- speed: typeof top10Speed;
464
- zoneTime: typeof top10ZoneTime$1;
465
- };
466
- /** Top-10 skating distance lists. */
467
- declare function top10Distance(season?: Season, gameType?: GameType, position?: PositionFilter, strength?: SkatersStrength, sortBy?: SkatingDistanceSort): Promise<unknown>;
468
- /** Top-10 shot location lists. */
469
- declare function top10ShotLocation$1(season?: Season, gameType?: GameType, position?: PositionFilter, category?: ShotLocationCategory, sortBy?: ShotLocationSort): Promise<unknown>;
470
- /** Top-10 shot speed lists. */
471
- declare function top10ShotSpeed$1(season?: Season, gameType?: GameType, position?: PositionFilter, sortBy?: ShotSpeedSort): Promise<unknown>;
472
- /** Top-10 skating speed lists. */
473
- declare function top10Speed(season?: Season, gameType?: GameType, position?: PositionFilter, sortBy?: SkatingSpeedSort): Promise<unknown>;
474
- /** Top-10 zone time lists. */
475
- declare function top10ZoneTime$1(season?: Season, gameType?: GameType, position?: PositionFilter, strength?: SkatersStrength, sortBy?: ZoneTimeSort): Promise<unknown>;
2685
+ declare function getConfig(lang?: string): Promise<APIResult<Config>>;
2686
+ /**
2687
+ * Get country information
2688
+ * Returns list of all countries with a hockey presence
2689
+ *
2690
+ * @param lang - Language code (default: configured language)
2691
+ * @returns Promise resolving to country data
2692
+ *
2693
+ * @example
2694
+ * const countries = await getCountries('en');
2695
+ */
2696
+ declare function getCountries(lang?: string): Promise<APIResultPaginated<Country>>;
2697
+ /**
2698
+ * Get the glossary for a specific language
2699
+ *
2700
+ * @param lang - Language code (default: configured language)
2701
+ * @returns Promise resolving to glossary data
2702
+ *
2703
+ * @example
2704
+ * const glossary = await glossary.get('en');
2705
+ */
2706
+ declare function getGlossary(lang?: string): Promise<APIResultPaginated<GlossaryEntry>>;
2707
+ /**
2708
+ * Get franchise information
2709
+ *
2710
+ * @param lang - Language code (default: configured language)
2711
+ * @returns Promise resolving to franchise data
2712
+ *
2713
+ * @example
2714
+ * const allFranchises = await getFranchises('en');
2715
+ */
2716
+ declare function getFranchises(lang?: string): Promise<APIResultPaginated<Franchise>>;
476
2717
 
477
- declare const skaters_comparison: typeof comparison;
478
- declare const skaters_detail: typeof detail;
479
- declare namespace skaters {
480
- export { skaters_comparison as comparison, skaters_detail as detail, leaders$1 as leaders, shotLocation$1 as shotLocation, shotSpeed$1 as shotSpeed, skatingDistance$1 as skatingDistance, skatingSpeed$1 as skatingSpeed, top10$1 as top10, zoneTime$1 as zoneTime };
2718
+ declare const misc$1_getConfig: typeof getConfig;
2719
+ declare const misc$1_getCountries: typeof getCountries;
2720
+ declare const misc$1_getFranchises: typeof getFranchises;
2721
+ declare const misc$1_getGlossary: typeof getGlossary;
2722
+ declare namespace misc$1 {
2723
+ export { misc$1_getConfig as getConfig, misc$1_getCountries as getCountries, misc$1_getFranchises as getFranchises, misc$1_getGlossary as getGlossary };
481
2724
  }
482
2725
 
483
2726
  /**
484
- * NHL API Client Type Definitions
2727
+ * ======================================================================
2728
+ * NHL Stats API - Season and Game Endpoints
2729
+ * Base URL: https://api.nhle.com/stats/rest
2730
+ * ======================================================================
2731
+ * Provides functions for retrieving season and game information
2732
+ * from the NHL Stats API.
485
2733
  */
486
2734
 
487
- type APIResponse<T> = {
488
- success: true;
489
- data: T;
490
- } | {
491
- success: false;
492
- error: NHLError;
493
- };
494
-
495
2735
  /**
496
- * Edge Advanced Stats API helpers.
2736
+ * Get every season's settings (dates, game counts, rules in use)
497
2737
  *
498
- * Lightweight wrapper exposing functions that call the underlying nhlClient
499
- * for related endpoints. Each method returns the raw Promise from the
500
- * client.get call.
2738
+ * @param lang - Language code (default: configured language)
2739
+ * @returns Promise resolving to season data
2740
+ *
2741
+ * @example
2742
+ * const seasons = await stats.season.getSeasons();
501
2743
  */
2744
+ declare function getSeasons(lang?: string): Promise<APIResultPaginated<Season>>;
502
2745
  /**
503
- * Get the "by the numbers" data for the current day, updated daily with
504
- * insights from the previous days games.
505
- * @returns A promise that resolves to the "by the numbers" data.
2746
+ * Get games
2747
+ *
2748
+ * Without a filter this downloads every game since 1917 (about 19 MB),
2749
+ * so filter by season or date.
2750
+ *
2751
+ * @param params - Query parameters, e.g. `{ cayenneExp: 'season=20242025 and gameType=2' }`
2752
+ * @param lang - Language code (default: configured language)
2753
+ * @returns Promise resolving to game data
2754
+ *
2755
+ * @example
2756
+ * const games = await stats.season.getGames({
2757
+ * cayenneExp: 'gameDate="2025-01-15"',
2758
+ * });
2759
+ */
2760
+ declare function getGames(params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<Game$6>>;
2761
+ /**
2762
+ * Get every shift (and goal event) of a game
2763
+ *
2764
+ * @param gameId - The game ID
2765
+ * @param lang - Language code (default: configured language)
2766
+ * @returns Promise resolving to shift chart data
2767
+ *
2768
+ * @example
2769
+ * const shifts = await stats.season.getShiftChart(2024020500);
2770
+ */
2771
+ declare function getShiftChart(gameId: string | number, lang?: string): Promise<APIResultPaginated<ShiftChart>>;
2772
+ /**
2773
+ * Get the draft years and their number of rounds
2774
+ *
2775
+ * @param lang - Language code (default: configured language)
2776
+ * @returns Promise resolving to draft data
2777
+ *
2778
+ * @example
2779
+ * const drafts = await stats.season.getDraft();
506
2780
  */
507
- declare function byTheNumbers(): Promise<APIResponse<unknown>>;
2781
+ declare function getDraft(lang?: string): Promise<APIResultPaginated<Draft>>;
2782
+
2783
+ declare const seasonGame_getDraft: typeof getDraft;
2784
+ declare const seasonGame_getGames: typeof getGames;
2785
+ declare const seasonGame_getSeasons: typeof getSeasons;
2786
+ declare const seasonGame_getShiftChart: typeof getShiftChart;
2787
+ declare namespace seasonGame {
2788
+ export { seasonGame_getDraft as getDraft, seasonGame_getGames as getGames, seasonGame_getSeasons as getSeasons, seasonGame_getShiftChart as getShiftChart };
2789
+ }
508
2790
 
509
2791
  /**
510
2792
  * ======================================================================
511
- * API endpoints for team-related data.
512
- * Base url: api-web.nhle.com/v1/edge
513
- *
514
- * note: the season and game-type params on any endpoint can
515
- * be replaced with 'now' to get current season data.
516
- * ex. `/team-detail/{team-id}/now`
2793
+ * NHL Stats API - Skater Endpoints
2794
+ * Base URL: https://api.nhle.com/stats/rest
517
2795
  * ======================================================================
2796
+ * Provides functions for retrieving skater (player) statistics and information
2797
+ * from the NHL Stats API.
518
2798
  */
519
2799
 
520
2800
  /**
521
- * Team Edge Advanced Stats API helpers.
2801
+ * Look up players (skaters and goalies)
522
2802
  *
523
- * Lightweight wrapper exposing functions that call the underlying nhlClient
524
- * for team-related endpoints. Each method returns the raw Promise from the
525
- * client.get call.
2803
+ * The endpoint returns nothing without a filter, so pass a `cayenneExp`.
2804
+ *
2805
+ * @param params - Query parameters, e.g. `{ cayenneExp: 'id=8478402' }`
2806
+ * @param lang - Language code (default: configured language)
2807
+ * @returns Promise resolving to matching players
2808
+ *
2809
+ * @example
2810
+ * const players = await stats.skaters.getPlayerInfo({
2811
+ * cayenneExp: 'lastName="McDavid"',
2812
+ * });
526
2813
  */
2814
+ declare function getPlayerInfo(params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<PlayerInfo>>;
527
2815
  /**
528
- * Get team detail stats for a team.
529
- * @param teamId - Team numeric id.
530
- * @param season - Optional season (numeric season format or 'now').
531
- * @param gameType - Optional game type id (defaults to Regular Season).
2816
+ * Get skater leaders for a stat category
2817
+ *
2818
+ * Without a filter the leaders are all-time; filter by season with
2819
+ * `{ cayenneExp: 'season=20242025 and gameType=2' }`.
2820
+ *
2821
+ * @param statCategory - 'points', 'goals' or 'assists'
2822
+ * @param params - Query parameters (the endpoint ignores `limit`)
2823
+ * @param lang - Language code (default: configured language)
2824
+ * @returns Promise resolving to skater leaders
2825
+ *
2826
+ * @example
2827
+ * const leaders = await stats.skaters.getLeaders('points', {
2828
+ * cayenneExp: 'season=20242025 and gameType=2',
2829
+ * });
532
2830
  */
533
- declare function stats$1(teamId: TeamId, season?: Season, gameType?: GameType): Promise<unknown>;
2831
+ declare function getLeaders(statCategory: keyof typeof dataPaths.skater.leaders, params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<SkaterLeader$1>>;
534
2832
  /**
535
- * Get team comparison data for a single team.
2833
+ * Get active skaters approaching a career milestone
2834
+ *
2835
+ * @param lang - Language code (default: configured language)
2836
+ * @returns Promise resolving to skater milestones
2837
+ *
2838
+ * @example
2839
+ * const milestones = await stats.skaters.getMilestones();
536
2840
  */
537
- declare function compare(teamId: TeamId, season?: Season, gameType?: GameType): Promise<unknown>;
2841
+ declare function getMilestones(lang?: string): Promise<APIResultPaginated<SkaterMilestone>>;
538
2842
  /**
539
- * Get team landing/leaders for a season.
2843
+ * Get a skater report
2844
+ *
2845
+ * @param report - The report name (default: 'summary')
2846
+ * @param params - Query parameters including cayenneExp for filtering
2847
+ * @param lang - Language code (default: configured language)
2848
+ * @returns Promise resolving to skater statistics
2849
+ *
2850
+ * @example
2851
+ * const result = await stats.skaters.getStats('summary', {
2852
+ * cayenneExp: 'seasonId=20242025 and gameTypeId=2',
2853
+ * sort: 'points',
2854
+ * dir: 'desc',
2855
+ * limit: 10,
2856
+ * });
540
2857
  */
541
- declare function leaders(season?: Season, gameType?: GameType): Promise<unknown>;
2858
+ declare function getStats$1(report?: SkaterReport, params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<SkaterStats>>;
542
2859
  /**
543
- * Get shot location details for a team.
2860
+ * Get skater stats with low-level query parameters
2861
+ * This is the most flexible approach - you build the query parameters yourself
2862
+ *
2863
+ * @param report - The report name (e.g., 'summary', 'realtime')
2864
+ * @param params - Query parameters including cayenneExp for filtering
2865
+ * @param lang - Language code (default: configured language)
2866
+ * @returns Promise resolving to skater statistics
2867
+ *
2868
+ * @example
2869
+ * const result = await stats.skaters.getStatsWithParams('summary', {
2870
+ * cayenneExp: 'seasonId=20232024 and gameTypeId=2',
2871
+ * sort: 'points',
2872
+ * limit: 10,
2873
+ * dir: 'desc',
2874
+ * });
544
2875
  */
545
- declare function shotLocation(teamId: TeamId, season?: Season, gameType?: GameType): Promise<unknown>;
2876
+ declare function getStatsWithParams$1(report: SkaterReport, params: StatsQueryParams, lang?: string): Promise<APIResultPaginated<SkaterStats>>;
546
2877
  /**
547
- * Get shot speed details for a team.
2878
+ * Get skater stats using a fluent query builder
2879
+ *
2880
+ * @param report - The report name (e.g., 'summary', 'realtime')
2881
+ * @param buildQuery - Function that receives a CayenneQueryBuilder and returns params
2882
+ * @param lang - Language code (default: configured language)
2883
+ * @returns Promise resolving to skater statistics
2884
+ *
2885
+ * @example
2886
+ * const result = await stats.skaters.getStatsWithBuilder('summary', (q) => ({
2887
+ * cayenneExp: q.equals('seasonId', 20232024).equals('gameTypeId', 2).build(),
2888
+ * sort: 'points',
2889
+ * limit: 10,
2890
+ * dir: 'desc' as const,
2891
+ * }));
548
2892
  */
549
- declare function shotSpeed(teamId: TeamId, season?: Season, gameType?: GameType): Promise<unknown>;
2893
+ declare function getStatsWithBuilder$1(report: SkaterReport, buildQuery: (builder: CayenneQueryBuilder) => StatsQueryParams, lang?: string): Promise<APIResultPaginated<SkaterStats>>;
550
2894
  /**
551
- * Get skating distance details for a team.
2895
+ * Get skater stats with high-level convenience parameters
2896
+ * Every filter is matched with equality.
2897
+ *
2898
+ * @param report - The report name (e.g., 'summary', 'realtime')
2899
+ * @param filters - Field filters, e.g. `{ seasonId: 20232024, gameTypeId: 2 }`
2900
+ * @param sorting - Sorting options
2901
+ * @param pagination - Pagination options
2902
+ * @param lang - Language code (default: configured language)
2903
+ * @returns Promise resolving to skater statistics
2904
+ *
2905
+ * @example
2906
+ * const result = await stats.skaters.getStatsWithFilters(
2907
+ * 'summary',
2908
+ * { seasonId: '20232024', gameTypeId: 2 },
2909
+ * { sortBy: 'points', direction: 'desc' },
2910
+ * { limit: 10, start: 0 },
2911
+ * );
552
2912
  */
553
- declare function skatingDistance(teamId: TeamId, season?: Season, gameType?: GameType): Promise<unknown>;
2913
+ declare function getStatsWithFilters$1(report: SkaterReport, filters?: StatsFilters, sorting?: StatsSorting, pagination?: StatsPagination, lang?: string): Promise<APIResultPaginated<SkaterStats>>;
2914
+
2915
+ declare const skaters_getLeaders: typeof getLeaders;
2916
+ declare const skaters_getMilestones: typeof getMilestones;
2917
+ declare const skaters_getPlayerInfo: typeof getPlayerInfo;
2918
+ declare namespace skaters {
2919
+ export { skaters_getLeaders as getLeaders, skaters_getMilestones as getMilestones, skaters_getPlayerInfo as getPlayerInfo, getStats$1 as getStats, getStatsWithBuilder$1 as getStatsWithBuilder, getStatsWithFilters$1 as getStatsWithFilters, getStatsWithParams$1 as getStatsWithParams };
2920
+ }
2921
+
554
2922
  /**
555
- * Get skating speed details for a team.
2923
+ * ======================================================================
2924
+ * NHL Stats API - Team Endpoints
2925
+ * Base URL: https://api.nhle.com/stats/rest
2926
+ * ======================================================================
2927
+ * Provides functions for retrieving team statistics and information
2928
+ * from the NHL Stats API.
556
2929
  */
557
- declare function skatingSpeed(teamId: TeamId, season?: Season, gameType?: GameType): Promise<unknown>;
2930
+
558
2931
  /**
559
- * Get zone time details for a team.
2932
+ * Get every team, past and present
2933
+ *
2934
+ * @param params - Query parameters, e.g. `{ include: 'logos' }`
2935
+ * @param lang - Language code (default: configured language)
2936
+ * @returns Promise resolving to the team list
2937
+ *
2938
+ * @example
2939
+ * const allTeams = await stats.teams.getAll();
560
2940
  */
561
- declare function zoneTime(teamId: TeamId, season?: Season, gameType?: GameType): Promise<unknown>;
562
- declare const top10: {
563
- shotLocation: typeof top10ShotLocation;
564
- shotSpeed: typeof top10ShotSpeed;
565
- skatingDistance: typeof top10SkatingDistance;
566
- skatingSpeed: typeof top10SkatingSpeed;
567
- zoneTime: typeof top10ZoneTime;
568
- };
2941
+ declare function getAll(params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<Team$b>>;
569
2942
  /**
570
- * Top-10 team shot location lists.
2943
+ * Get a team by ID
2944
+ *
2945
+ * The API answers with a one-row list.
2946
+ *
2947
+ * @param teamId - The team ID
2948
+ * @param params - Query parameters, e.g. `{ include: 'logos' }`
2949
+ * @param lang - Language code (default: configured language)
2950
+ * @returns Promise resolving to a list holding the team
2951
+ *
2952
+ * @example
2953
+ * const result = await stats.teams.getById(10);
2954
+ * if (result.success) console.log(result.data.data[0]?.fullName);
571
2955
  */
572
- declare function top10ShotLocation(season?: Season, gameType?: GameType, position?: PositionFilter, category?: ShotLocationCategory, sortBy?: ShotLocationSort): Promise<unknown>;
2956
+ declare function getById(teamId: number, params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<Team$b>>;
573
2957
  /**
574
- * Top-10 team shot speed lists.
2958
+ * Get a team report
2959
+ *
2960
+ * @param report - The report name (default: 'summary')
2961
+ * @param params - Query parameters including cayenneExp for filtering
2962
+ * @param lang - Language code (default: configured language)
2963
+ * @returns Promise resolving to team statistics
2964
+ *
2965
+ * @example
2966
+ * const result = await stats.teams.getStats('summary', {
2967
+ * cayenneExp: 'seasonId=20242025 and gameTypeId=2',
2968
+ * sort: 'points',
2969
+ * dir: 'desc',
2970
+ * });
575
2971
  */
576
- declare function top10ShotSpeed(season?: Season, gameType?: GameType, position?: PositionFilter, sortBy?: ShotSpeedSort): Promise<unknown>;
2972
+ declare function getStats(report?: TeamReport, params?: StatsQueryParams, lang?: string): Promise<APIResultPaginated<TeamStats$1>>;
577
2973
  /**
578
- * Top-10 team skating distance lists.
2974
+ * Get team stats with low-level query parameters
2975
+ * This is the most flexible approach - you build the query parameters yourself
2976
+ *
2977
+ * @param report - The report name (e.g., 'summary', 'powerplay')
2978
+ * @param params - Query parameters including cayenneExp for filtering
2979
+ * @param lang - Language code (default: configured language)
2980
+ * @returns Promise resolving to team statistics
2981
+ *
2982
+ * @example
2983
+ * const result = await stats.teams.getStatsWithParams('summary', {
2984
+ * cayenneExp: 'seasonId=20232024 and gameTypeId=2',
2985
+ * sort: 'shotsForPerGame',
2986
+ * });
579
2987
  */
580
- declare function top10SkatingDistance(season?: Season, gameType?: GameType, position?: PositionFilter, strength?: SkatersStrength, sortBy?: SkatingDistanceSort): Promise<unknown>;
2988
+ declare function getStatsWithParams(report: TeamReport, params: StatsQueryParams, lang?: string): Promise<APIResultPaginated<TeamStats$1>>;
581
2989
  /**
582
- * Top-10 team skating speed lists.
2990
+ * Get team stats using a fluent query builder
2991
+ *
2992
+ * @param report - The report name (e.g., 'summary', 'powerplay')
2993
+ * @param buildQuery - Function that receives a CayenneQueryBuilder and returns params
2994
+ * @param lang - Language code (default: configured language)
2995
+ * @returns Promise resolving to team statistics
2996
+ *
2997
+ * @example
2998
+ * const result = await stats.teams.getStatsWithBuilder('summary', (q) => ({
2999
+ * cayenneExp: q.equals('seasonId', 20232024).equals('gameTypeId', 2).build(),
3000
+ * sort: 'shotsForPerGame',
3001
+ * limit: 10,
3002
+ * dir: 'desc' as const,
3003
+ * }));
583
3004
  */
584
- declare function top10SkatingSpeed(season?: Season, gameType?: GameType, position?: PositionFilter, sortBy?: SkatingSpeedSort): Promise<unknown>;
3005
+ declare function getStatsWithBuilder(report: TeamReport, buildQuery: (builder: CayenneQueryBuilder) => StatsQueryParams, lang?: string): Promise<APIResultPaginated<TeamStats$1>>;
585
3006
  /**
586
- * Top-10 team zone time lists.
3007
+ * Get team stats with high-level convenience parameters
3008
+ * Every filter is matched with equality.
3009
+ *
3010
+ * @param report - The report name (e.g., 'summary', 'powerplay')
3011
+ * @param filters - Field filters, e.g. `{ seasonId: 20232024, gameTypeId: 2 }`
3012
+ * @param sorting - Sorting options
3013
+ * @param pagination - Pagination options
3014
+ * @param lang - Language code (default: configured language)
3015
+ * @returns Promise resolving to team statistics
3016
+ *
3017
+ * @example
3018
+ * const result = await stats.teams.getStatsWithFilters(
3019
+ * 'summary',
3020
+ * { seasonId: '20232024', gameTypeId: 2 },
3021
+ * { sortBy: 'shotsForPerGame', direction: 'desc' },
3022
+ * { limit: 10, start: 0 },
3023
+ * );
587
3024
  */
588
- declare function top10ZoneTime(season?: Season, gameType?: GameType, strength?: SkatersStrength, sortBy?: ZoneTimeSort): Promise<unknown>;
3025
+ declare function getStatsWithFilters(report: TeamReport, filters?: StatsFilters, sorting?: StatsSorting, pagination?: StatsPagination, lang?: string): Promise<APIResultPaginated<TeamStats$1>>;
589
3026
 
590
- declare const teams_compare: typeof compare;
591
- declare const teams_leaders: typeof leaders;
592
- declare const teams_shotLocation: typeof shotLocation;
593
- declare const teams_shotSpeed: typeof shotSpeed;
594
- declare const teams_skatingDistance: typeof skatingDistance;
595
- declare const teams_skatingSpeed: typeof skatingSpeed;
596
- declare const teams_top10: typeof top10;
597
- declare const teams_zoneTime: typeof zoneTime;
3027
+ declare const teams_getAll: typeof getAll;
3028
+ declare const teams_getById: typeof getById;
3029
+ declare const teams_getStats: typeof getStats;
3030
+ declare const teams_getStatsWithBuilder: typeof getStatsWithBuilder;
3031
+ declare const teams_getStatsWithFilters: typeof getStatsWithFilters;
3032
+ declare const teams_getStatsWithParams: typeof getStatsWithParams;
598
3033
  declare namespace teams {
599
- export { teams_compare as compare, teams_leaders as leaders, teams_shotLocation as shotLocation, teams_shotSpeed as shotSpeed, teams_skatingDistance as skatingDistance, teams_skatingSpeed as skatingSpeed, stats$1 as stats, teams_top10 as top10, teams_zoneTime as zoneTime };
3034
+ export { teams_getAll as getAll, teams_getById as getById, teams_getStats as getStats, teams_getStatsWithBuilder as getStatsWithBuilder, teams_getStatsWithFilters as getStatsWithFilters, teams_getStatsWithParams as getStatsWithParams };
600
3035
  }
601
3036
 
602
3037
  /**
603
- * ========================================================================
604
- * NHL Edge Advanced Stats API Module Exports
3038
+ * ======================================================================
3039
+ * NHL Stats API Module Exports
605
3040
  * Base URL: https://api.nhle.com/stats/rest
606
- * ========================================================================
607
- * Complete NHL Edge Advanced Stats API implementation with modules for:
608
- * - Players (skaters, goalies)
3041
+ * ======================================================================
3042
+ * Complete NHL Stats API implementation with modules for:
3043
+ * - Players (skaters, goalies, draft info)
609
3044
  * - Teams and franchises
610
- * - Advanced statistical numbers
611
- * ========================================================================
3045
+ * - Seasons and games
3046
+ * - Miscellaneous (config, shifts, glossary, etc.)
612
3047
  */
613
3048
 
614
- declare const index$1_byTheNumbers: typeof byTheNumbers;
3049
+ type index$1_APIResultPaginated<T> = APIResultPaginated<T>;
3050
+ type index$1_Config = Config;
3051
+ type index$1_Country = Country;
3052
+ type index$1_Draft = Draft;
3053
+ type index$1_Franchise = Franchise;
3054
+ type index$1_GlossaryEntry = GlossaryEntry;
3055
+ type index$1_GoalieMilestone = GoalieMilestone;
3056
+ type index$1_GoalieReport = GoalieReport;
3057
+ type index$1_GoalieStats = GoalieStats;
3058
+ type index$1_PaginatedData<T> = PaginatedData<T>;
3059
+ type index$1_PlayerInfo = PlayerInfo;
3060
+ type index$1_Season = Season;
3061
+ type index$1_ShiftChart = ShiftChart;
3062
+ type index$1_SkaterMilestone = SkaterMilestone;
3063
+ type index$1_SkaterReport = SkaterReport;
3064
+ type index$1_SkaterStats = SkaterStats;
3065
+ type index$1_StatsFilters = StatsFilters;
3066
+ type index$1_StatsPagination = StatsPagination;
3067
+ type index$1_StatsQueryParams = StatsQueryParams;
3068
+ type index$1_StatsSorting = StatsSorting;
3069
+ type index$1_TeamLogo = TeamLogo;
3070
+ type index$1_TeamReport = TeamReport;
3071
+ type index$1_TeamStatsWithFranchise = TeamStatsWithFranchise;
615
3072
  declare const index$1_goalies: typeof goalies;
616
3073
  declare const index$1_skaters: typeof skaters;
617
3074
  declare const index$1_teams: typeof teams;
618
3075
  declare namespace index$1 {
619
- export { index$1_byTheNumbers as byTheNumbers, index$1_goalies as goalies, index$1_skaters as skaters, index$1_teams as teams };
620
- }
621
-
622
- /**
623
- * Common types used in Gamecenter API responses
624
- */
625
- /** The current state of the game. */
626
- type GameState = 'OFF' | 'FUT' | 'LIVE' | 'PRE' | 'CRIT' | 'FINAL';
627
- /** The current state of the game. */
628
- type GameScheduleState = 'OK' | 'TBD' | 'CNCL' | (string & {});
629
- /** The type of period in the game. */
630
- type PeriodType = 'REG' | 'OT' | 'SO';
631
- /** Abbreviated day of the week. (MON = Monday, TUE = Tuesday ...) */
632
- type DayAbbrev = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';
633
- /** The type of penalty. (MIN = Minor, BEN = Bench, MAJ = Major ...) */
634
- type PenaltyTypeCode = 'MIN' | 'BEN' | 'MAJ' | (string & {});
635
- /** The market for this broadcast. (H = Home, A = Away, N = National, S = Satellite Radio) */
636
- type Market = 'H' | 'A' | 'N' | 'S';
637
- /** The country code for this broadcast. (CA = Canada, US = United States) */
638
- type CountryCode = 'CA' | 'US';
639
- /** The position code for a player. (C = Center, L[W] = Left Wing, R[W] = Right Wing, D = Defenseman, G = Goalie) */
640
- type PositionCode = 'C' | 'LW' | 'L' | 'RW' | 'R' | 'D' | 'G';
641
- /** Player's shooting/catching handedness. (L = Left, R = Right) */
642
- type ShootsCatches = 'L' | 'R';
643
- type HexColorCode = `#${string}`;
644
- type UTCOffset = `+${number}:${number}` | `-${number}:${number}`;
645
- type GoalModifier = 'none' | 'empty-net' | 'awarded-empty-net';
646
- type DefendingSide = 'left' | 'right';
647
- type Strength = 'ev' | 'pp' | 'sh';
648
- type ZoneCode = 'N' | 'D' | 'O';
649
- type ShotType = 'backhand' | 'bat' | 'between-legs' | 'deflected' | 'poke' | 'slap' | 'snap' | 'tip-in' | 'wrap-around' | 'wrist' | (string & {});
650
- type PenaltyDescKey = 'tripping' | 'hooking' | 'interference' | 'high-sticking' | 'roughing' | 'unsportsmanlike-conduct' | 'slashing' | 'delaying-game-puck-over-glass' | 'holding' | 'holding-the-stick' | 'too-many-men-on-the-ice' | 'fighting' | 'minor' | 'cross-checking' | (string & {});
651
- type Reason = 'blocked' | 'failed-bank-attempt' | 'wide-right' | 'goalie-stopped-after-sog' | 'offside' | 'teammate-blocked' | 'icing' | 'puck-in-netting' | 'wide-left' | 'high-and-wide-left' | 'puck-frozen' | 'above-crossbar' | 'tv-timeout' | 'hand-pass' | 'skater-puck-frozen' | 'high-stick' | 'high-and-wide-right' | 'hit-crossbar' | 'puck-in-benches' | 'hit-right-post' | 'short' | 'referee-or-linesman' | 'puck-in-crowd' | 'hit-left-post' | 'player-equipment' | 'net-dislodged-defensive-skater' | 'home-timeout' | 'chlg-hm-goal-interference' | 'video-review' | 'chlg-league-missed-stoppage' | 'visitor-timeout' | 'official-injury' | (string & {});
652
- type EventTypeDescKey = 'period-start' | 'faceoff' | 'blocked-shot' | 'goal' | 'hit' | 'giveaway' | 'missed-shot' | 'shot-on-goal' | 'stoppage' | 'takeaway' | 'penalty' | 'period-end' | 'delayed-penalty' | 'game-end' | (string & {});
653
- /** An object containing a default string an optional localized strings. */
654
- interface LocalizedText {
655
- /** Default */
656
- default: string;
657
- /** French */
658
- fr?: string;
659
- /** Czech */
660
- cs?: string;
661
- /** German */
662
- de?: string;
663
- /** Spanish */
664
- es?: string;
665
- /** Finnish */
666
- fi?: string;
667
- /** Slovak */
668
- sk?: string;
669
- /** Swedish */
670
- sv?: string;
671
- }
672
- interface TvBroadcast {
673
- id: number;
674
- market: Market;
675
- countryCode: CountryCode;
676
- network: string;
677
- sequenceNumber: number;
3076
+ export { type index$1_APIResultPaginated as APIResultPaginated, type index$1_Config as Config, type index$1_Country as Country, type index$1_Draft as Draft, type index$1_Franchise as Franchise, type Game$6 as Game, type index$1_GlossaryEntry as GlossaryEntry, type GoalieLeader$1 as GoalieLeader, type index$1_GoalieMilestone as GoalieMilestone, type index$1_GoalieReport as GoalieReport, type index$1_GoalieStats as GoalieStats, type index$1_PaginatedData as PaginatedData, type index$1_PlayerInfo as PlayerInfo, type index$1_Season as Season, type index$1_ShiftChart as ShiftChart, type SkaterLeader$1 as SkaterLeader, type index$1_SkaterMilestone as SkaterMilestone, type index$1_SkaterReport as SkaterReport, type index$1_SkaterStats as SkaterStats, type index$1_StatsFilters as StatsFilters, type index$1_StatsPagination as StatsPagination, type index$1_StatsQueryParams as StatsQueryParams, type index$1_StatsSorting as StatsSorting, type Team$b as Team, type index$1_TeamLogo as TeamLogo, type index$1_TeamReport as TeamReport, type TeamStats$1 as TeamStats, type index$1_TeamStatsWithFranchise as TeamStatsWithFranchise, index$1_goalies as goalies, misc$1 as misc, seasonGame as season, index$1_skaters as skaters, index$1_teams as teams };
678
3077
  }
679
3078
 
680
3079
  interface GamecenterBoxscore {
@@ -689,7 +3088,7 @@ interface GamecenterBoxscore {
689
3088
  easternUTCOffset: UTCOffset;
690
3089
  venueUTCOffset: UTCOffset;
691
3090
  tvBroadcasts: TvBroadcast[];
692
- gameState: GameState;
3091
+ gameState: GameState$2;
693
3092
  gameScheduleState: GameScheduleState;
694
3093
  periodDescriptor?: PeriodDescriptor$9;
695
3094
  regPeriods: number;
@@ -903,7 +3302,7 @@ interface GamecenterLanding {
903
3302
  venueTimezone: string;
904
3303
  periodDescriptor?: PeriodDescriptor$8;
905
3304
  tvBroadcasts: TvBroadcast[];
906
- gameState: GameState;
3305
+ gameState: GameState$2;
907
3306
  gameScheduleState: GameScheduleState;
908
3307
  awayTeam: LandingTeam;
909
3308
  homeTeam: LandingTeam;
@@ -1173,7 +3572,7 @@ interface ThreeStar$1 {
1173
3572
  savePctg?: number;
1174
3573
  }
1175
3574
 
1176
- type NHLSeasons = Array<Season>;
3575
+ type NHLSeasons = Array<Season$1>;
1177
3576
  interface PlayoffSeriesMeta {
1178
3577
  seriesTitle: string;
1179
3578
  teams: Teams;
@@ -1272,7 +3671,7 @@ interface GamecenterPlayByPlay {
1272
3671
  easternUTCOffset: UTCOffset;
1273
3672
  venueUTCOffset: UTCOffset;
1274
3673
  tvBroadcasts: TvBroadcast[];
1275
- gameState: GameState;
3674
+ gameState: GameState$2;
1276
3675
  gameScheduleState: GameScheduleState;
1277
3676
  periodDescriptor?: PeriodDescriptor$7;
1278
3677
  awayTeam: Team$7;
@@ -1362,7 +3761,7 @@ interface RosterSpot {
1362
3761
  firstName: LocalizedText;
1363
3762
  lastName: LocalizedText;
1364
3763
  sweaterNumber: number;
1365
- positionCode: Position;
3764
+ positionCode: PositionCode;
1366
3765
  headshot: string;
1367
3766
  }
1368
3767
  interface Situation {
@@ -1406,7 +3805,7 @@ interface PenaltyBoxElement {
1406
3805
  playerId: number;
1407
3806
  name: LocalizedText;
1408
3807
  sweaterNumber: number;
1409
- positionCode: Position;
3808
+ positionCode: PositionCode;
1410
3809
  headshot: string;
1411
3810
  totalSOI?: number;
1412
3811
  secondsRemaining?: number;
@@ -1415,7 +3814,7 @@ interface GoalieElement {
1415
3814
  playerId: number;
1416
3815
  name: LocalizedText;
1417
3816
  sweaterNumber: number;
1418
- positionCode: Position;
3817
+ positionCode: PositionCode;
1419
3818
  headshot: string;
1420
3819
  totalSOI?: number;
1421
3820
  }
@@ -1437,7 +3836,7 @@ interface PurpleForward {
1437
3836
  playerId: number;
1438
3837
  name: LocalizedText;
1439
3838
  sweaterNumber: number;
1440
- positionCode: Position;
3839
+ positionCode: PositionCode;
1441
3840
  headshot: string;
1442
3841
  totalSOI?: number;
1443
3842
  }
@@ -1446,7 +3845,7 @@ interface PlayerSpotlight {
1446
3845
  playerId: number;
1447
3846
  name: LocalizedText;
1448
3847
  playerSlug: string;
1449
- position: Position;
3848
+ position: PositionCode;
1450
3849
  sweaterNumber: number;
1451
3850
  teamId: number;
1452
3851
  headshot: string;
@@ -1461,7 +3860,7 @@ interface PlayerLanding {
1461
3860
  lastName: LocalizedText;
1462
3861
  badges: Badge[];
1463
3862
  sweaterNumber: number;
1464
- position: Position;
3863
+ position: PositionCode;
1465
3864
  headshot: string;
1466
3865
  heroImage: string;
1467
3866
  heightInInches: number;
@@ -1472,7 +3871,7 @@ interface PlayerLanding {
1472
3871
  birthCity: LocalizedText;
1473
3872
  birthStateProvince?: LocalizedText;
1474
3873
  birthCountry: string;
1475
- shootsCatches: Position;
3874
+ shootsCatches: ShootsCatches;
1476
3875
  draftDetails?: DraftDetails;
1477
3876
  playerSlug: string;
1478
3877
  inTop100AllTime: number;
@@ -1864,7 +4263,7 @@ interface BasePPTReplay {
1864
4263
  gameDate: string;
1865
4264
  awayTeam: Team$5;
1866
4265
  homeTeam: Team$5;
1867
- gameState: GameState;
4266
+ gameState: GameState$2;
1868
4267
  gameType: number;
1869
4268
  }
1870
4269
  interface Team$5 {
@@ -2021,7 +4420,7 @@ interface SeasonSeriesGame {
2021
4420
  startTimeUTC: string;
2022
4421
  easternUTCOffset: UTCOffset;
2023
4422
  venueUTCOffset: UTCOffset;
2024
- gameState: GameState;
4423
+ gameState: GameState$2;
2025
4424
  gameScheduleState: GameScheduleState;
2026
4425
  awayTeam: TeamDetail;
2027
4426
  homeTeam: TeamDetail;
@@ -2099,7 +4498,7 @@ interface Game$3 {
2099
4498
  easternUTCOffset: UTCOffset;
2100
4499
  venueUTCOffset: UTCOffset;
2101
4500
  venueTimezone: string;
2102
- gameState: GameState;
4501
+ gameState: GameState$2;
2103
4502
  gameScheduleState: GameScheduleState;
2104
4503
  tvBroadcasts: TvBroadcast[];
2105
4504
  awayTeam: Team$4;
@@ -2204,7 +4603,7 @@ interface Game$2 {
2204
4603
  easternUTCOffset: UTCOffset;
2205
4604
  venueUTCOffset: UTCOffset;
2206
4605
  tvBroadcasts: TvBroadcast[];
2207
- gameState: GameState;
4606
+ gameState: GameState$2;
2208
4607
  gameScheduleState: GameScheduleState;
2209
4608
  awayTeam: Team$3;
2210
4609
  homeTeam: Team$3;
@@ -2270,7 +4669,7 @@ interface Game$1 {
2270
4669
  easternUTCOffset: UTCOffset;
2271
4670
  venueUTCOffset: UTCOffset;
2272
4671
  tvBroadcasts: TvBroadcast[];
2273
- gameState: GameState;
4672
+ gameState: GameState$2;
2274
4673
  gameScheduleState: GameScheduleState;
2275
4674
  awayTeam: Team$2;
2276
4675
  homeTeam: Team$2;
@@ -2442,7 +4841,7 @@ interface Goalie$3 extends BaseProspect {
2442
4841
  positionCode: 'G';
2443
4842
  }
2444
4843
 
2445
- type TeamRosterSeasons = Array<Season>;
4844
+ type TeamRosterSeasons = Array<Season$1>;
2446
4845
  interface TeamRoster {
2447
4846
  forwards: Forward[];
2448
4847
  defensemen: Defenseman[];
@@ -2510,7 +4909,7 @@ interface Game {
2510
4909
  easternUTCOffset: string;
2511
4910
  venueUTCOffset: string;
2512
4911
  venueTimezone: string;
2513
- gameState: GameState;
4912
+ gameState: GameState$2;
2514
4913
  gameScheduleState: GameScheduleState;
2515
4914
  tvBroadcasts: TvBroadcast[];
2516
4915
  awayTeam: Team$1;
@@ -2580,7 +4979,7 @@ interface WinningGoal {
2580
4979
  lastName: LocalizedText;
2581
4980
  }
2582
4981
  interface AlternateBroadcast {
2583
- country: CountryCode;
4982
+ country: CountryCode$2;
2584
4983
  descriptions: LocalizedText[];
2585
4984
  }
2586
4985
 
@@ -2669,7 +5068,7 @@ interface WSCGameStory {
2669
5068
  venueUTCOffset: UTCOffset;
2670
5069
  venueTimezone: string;
2671
5070
  tvBroadcasts: TvBroadcast[];
2672
- gameState: GameState;
5071
+ gameState: GameState$2;
2673
5072
  gameScheduleState: 'OK';
2674
5073
  awayTeam: Team;
2675
5074
  homeTeam: Team;
@@ -2915,7 +5314,7 @@ type PlayerSearchResult = Record<string, unknown>;
2915
5314
  * picks(2023, 1).then((data) => console.log(data));
2916
5315
  * ```
2917
5316
  */
2918
- declare function picks(year?: Year, round?: DraftRound): Promise<APIResponse<DraftPicks>>;
5317
+ declare function picks(year?: Year, round?: DraftRound): Promise<APIResult<DraftPicks>>;
2919
5318
  /**
2920
5319
  * Get current draft tracker information for live draft coverage
2921
5320
  * @returns Promise resolving to current draft tracker data, including live pick information
@@ -2924,7 +5323,7 @@ declare function picks(year?: Year, round?: DraftRound): Promise<APIResponse<Dra
2924
5323
  * tracker().then((data) => console.log(data));
2925
5324
  * ```
2926
5325
  */
2927
- declare function tracker(): Promise<APIResponse<DraftTracker>>;
5326
+ declare function tracker(): Promise<APIResult<DraftTracker>>;
2928
5327
  /**
2929
5328
  * Access draft rankings by category (skaters/goalies, NA/International)
2930
5329
  * @param year - The draft year (defaults to current year if not provided)
@@ -2939,11 +5338,11 @@ declare function tracker(): Promise<APIResponse<DraftTracker>>;
2939
5338
  * ```
2940
5339
  */
2941
5340
  declare function rankings(year?: Year): {
2942
- skatersNA: () => Promise<APIResponse<DraftRankings>>;
2943
- skatersIntl: () => Promise<APIResponse<DraftRankings>>;
2944
- goaliesNA: () => Promise<APIResponse<DraftRankings>>;
2945
- goaliesIntl: () => Promise<APIResponse<DraftRankings>>;
2946
- all: () => Promise<APIResponse<DraftRankings[]>>;
5341
+ skatersNA: () => Promise<APIResult<DraftRankings>>;
5342
+ skatersIntl: () => Promise<APIResult<DraftRankings>>;
5343
+ goaliesNA: () => Promise<APIResult<DraftRankings>>;
5344
+ goaliesIntl: () => Promise<APIResult<DraftRankings>>;
5345
+ all: () => Promise<APIResult<DraftRankings[]>>;
2947
5346
  };
2948
5347
 
2949
5348
  declare const draft_picks: typeof picks;
@@ -2962,7 +5361,7 @@ declare namespace draft {
2962
5361
  * playByPlay(2023020001).then((data) => console.log(data));
2963
5362
  * ```
2964
5363
  */
2965
- declare function playByPlay(gameId: GameId): Promise<APIResponse<GamecenterPlayByPlay>>;
5364
+ declare function playByPlay(gameId: GameId): Promise<APIResult<GamecenterPlayByPlay>>;
2966
5365
  /**
2967
5366
  * Get comprehensive game data including stats, reports, and game information
2968
5367
  *
@@ -2993,7 +5392,7 @@ declare function playByPlay(gameId: GameId): Promise<APIResponse<GamecenterPlayB
2993
5392
  * reports(2023020001).then((data) => console.log(data));
2994
5393
  * ```
2995
5394
  */
2996
- declare function reports(gameId: GameId): Promise<APIResponse<GamecenterReports>>;
5395
+ declare function reports(gameId: GameId): Promise<APIResult<GamecenterReports>>;
2997
5396
  /**
2998
5397
  * Get landing page data for a specific game
2999
5398
  * @param gameId - The unique identifier for the game (10-digit format)
@@ -3003,7 +5402,7 @@ declare function reports(gameId: GameId): Promise<APIResponse<GamecenterReports>
3003
5402
  * landing(2023020001).then((data) => console.log(data));
3004
5403
  * ```
3005
5404
  */
3006
- declare function landing$1(gameId: GameId): Promise<APIResponse<GamecenterLanding>>;
5405
+ declare function landing$1(gameId: GameId): Promise<APIResult<GamecenterLanding>>;
3007
5406
  /**
3008
5407
  * Get boxscore data for a specific game
3009
5408
  * @param gameId - The unique identifier for the game (10-digit format)
@@ -3013,7 +5412,7 @@ declare function landing$1(gameId: GameId): Promise<APIResponse<GamecenterLandin
3013
5412
  * boxscore(2023020001).then((data) => console.log(data));
3014
5413
  * ```
3015
5414
  */
3016
- declare function boxscore(gameId: GameId): Promise<APIResponse<GamecenterBoxscore>>;
5415
+ declare function boxscore(gameId: GameId): Promise<APIResult<GamecenterBoxscore>>;
3017
5416
  /**
3018
5417
  * Access WSC Sports related game content endpoints
3019
5418
  * @description Alternative data source for game information
@@ -3031,7 +5430,7 @@ declare const wsc: {
3031
5430
  * wsc.gameStory(2023020001).then((data) => console.log(data));
3032
5431
  * ```
3033
5432
  */
3034
- declare function wscGameStory(gameId: GameId): Promise<APIResponse<WSCGameStory>>;
5433
+ declare function wscGameStory(gameId: GameId): Promise<APIResult<WSCGameStory>>;
3035
5434
  /**
3036
5435
  * Get WSC play-by-play data for a specific game
3037
5436
  * @param gameId - The unique identifier for the game (10-digit format)
@@ -3041,7 +5440,7 @@ declare function wscGameStory(gameId: GameId): Promise<APIResponse<WSCGameStory>
3041
5440
  * wsc.playByPlay(2023020001).then((data) => console.log(data));
3042
5441
  * ```
3043
5442
  */
3044
- declare function wscPlayByPlay(gameId: GameId): Promise<APIResponse<WSCPlayByPlay>>;
5443
+ declare function wscPlayByPlay(gameId: GameId): Promise<APIResult<WSCPlayByPlay>>;
3045
5444
  /**
3046
5445
  * Access PPT (Player and Puck Tracking) visualization data endpoints
3047
5446
  * @description Endpoints for accessing player and puck tracking data used for replay visualizations
@@ -3060,7 +5459,7 @@ declare const pptReplay: {
3060
5459
  * pptReplay.goal(2023020001, 42).then((data) => console.log(data));
3061
5460
  * ```
3062
5461
  */
3063
- declare function pptReplayGoal(gameId: GameId, eventId: number | string): Promise<APIResponse<PPTReplayGoal>>;
5462
+ declare function pptReplayGoal(gameId: GameId, eventId: number | string): Promise<APIResult<PPTReplayGoal>>;
3064
5463
  /**
3065
5464
  * Get player and puck tracking visualization data for a specific event
3066
5465
  * @param gameId - The unique identifier for the game (10-digit format)
@@ -3071,7 +5470,7 @@ declare function pptReplayGoal(gameId: GameId, eventId: number | string): Promis
3071
5470
  * pptReplay.event(2023020001, 42).then((data) => console.log(data));
3072
5471
  * ```
3073
5472
  */
3074
- declare function pptReplayEvent(gameId: GameId, eventId: number | string): Promise<APIResponse<PPTReplayEvent>>;
5473
+ declare function pptReplayEvent(gameId: GameId, eventId: number | string): Promise<APIResult<PPTReplayEvent>>;
3075
5474
  /**
3076
5475
  * Get the league schedule for a specific date
3077
5476
  * @param date - Date to get schedule for (Date object or ISO date string 'YYYY-MM-DD'). Defaults to current date
@@ -3085,7 +5484,7 @@ declare function pptReplayEvent(gameId: GameId, eventId: number | string): Promi
3085
5484
  * schedule('2023-11-15').then((data) => console.log(data));
3086
5485
  * ```
3087
5486
  */
3088
- declare function schedule$1(date?: Date | string): Promise<APIResponse<LeagueSchedule>>;
5487
+ declare function schedule$1(date?: Date | string): Promise<APIResult<LeagueSchedule>>;
3089
5488
  /**
3090
5489
  * Get schedule calendar data for a specific date
3091
5490
  * @param date - Date to get calendar data for (Date object or ISO date string 'YYYY-MM-DD'). Defaults to current date
@@ -3095,7 +5494,7 @@ declare function schedule$1(date?: Date | string): Promise<APIResponse<LeagueSch
3095
5494
  * scheduleCalendar('2023-11-15').then((data) => console.log(data));
3096
5495
  * ```
3097
5496
  */
3098
- declare function scheduleCalendar(date?: Date | string): Promise<APIResponse<ScheduleCalendar>>;
5497
+ declare function scheduleCalendar(date?: Date | string): Promise<APIResult<ScheduleCalendar>>;
3099
5498
  /**
3100
5499
  * Get playoff bracket data for a specific year
3101
5500
  * @param year - The playoff year (YYYY format). Defaults to current year
@@ -3105,7 +5504,7 @@ declare function scheduleCalendar(date?: Date | string): Promise<APIResponse<Sch
3105
5504
  * playoffBracket(2023).then((data) => console.log(data));
3106
5505
  * ```
3107
5506
  */
3108
- declare function playoffBracket(year?: Year): Promise<APIResponse<PlayoffBracket>>;
5507
+ declare function playoffBracket(year?: Year): Promise<APIResult<PlayoffBracket>>;
3109
5508
  /**
3110
5509
  * Get playoff series information for a season
3111
5510
  * @param season - The season identifier (8-digit format: YYYYYYYY, e.g., 20232024). Defaults to current season
@@ -3115,7 +5514,7 @@ declare function playoffBracket(year?: Year): Promise<APIResponse<PlayoffBracket
3115
5514
  * playoffSeries(20232024).then((data) => console.log(data));
3116
5515
  * ```
3117
5516
  */
3118
- declare function playoffSeries(season?: Season): Promise<APIResponse<PlayoffSeries>>;
5517
+ declare function playoffSeries(season?: Season$1): Promise<APIResult<PlayoffSeries>>;
3119
5518
  /**
3120
5519
  * Get schedule for a specific playoff series
3121
5520
  * @param seriesLetter - Single letter identifier for the playoff series (A-O)
@@ -3126,17 +5525,19 @@ declare function playoffSeries(season?: Season): Promise<APIResponse<PlayoffSeri
3126
5525
  * playoffSeriesSchedule('A', 20232024).then((data) => console.log(data));
3127
5526
  * ```
3128
5527
  */
3129
- declare function playoffSeriesSchedule(seriesLetter: SeriesLetter$1, season?: Season): Promise<APIResponse<PlayoffSeriesSchedule>>;
3130
- declare function playoffSeriesSchedule(seriesLetter: string, season?: Season): Promise<APIResponse<PlayoffSeriesSchedule>>;
5528
+ declare function playoffSeriesSchedule(seriesLetter: SeriesLetter$1, season?: Season$1): Promise<APIResult<PlayoffSeriesSchedule>>;
5529
+ declare function playoffSeriesSchedule(seriesLetter: string, season?: Season$1): Promise<APIResult<PlayoffSeriesSchedule>>;
3131
5530
  /**
3132
5531
  * Get information about where games are available to watch
5532
+ * @deprecated The NHL retired this endpoint, and it now returns 404
5533
+ * (`NotFoundError`). It will be removed in a future major version.
3133
5534
  * @returns Promise resolving to streaming and broadcast availability information
3134
5535
  * @example
3135
5536
  * ```ts
3136
5537
  * whereToWatch().then((data) => console.log(data));
3137
5538
  * ```
3138
5539
  */
3139
- declare function whereToWatch(): Promise<APIResponse<WhereToWatch>>;
5540
+ declare function whereToWatch(): Promise<APIResult<WhereToWatch>>;
3140
5541
  /**
3141
5542
  * Get TV network schedule for a specific date
3142
5543
  * @param date - Date to get TV schedule for (Date object or ISO date string 'YYYY-MM-DD'). Defaults to current date
@@ -3146,7 +5547,7 @@ declare function whereToWatch(): Promise<APIResponse<WhereToWatch>>;
3146
5547
  * networkTVSchedule('2023-11-15').then((data) => console.log(data));
3147
5548
  * ```
3148
5549
  */
3149
- declare function networkTVSchedule(date?: Date | string): Promise<APIResponse<NetworkTVSchedule>>;
5550
+ declare function networkTVSchedule(date?: Date | string): Promise<APIResult<NetworkTVSchedule>>;
3150
5551
 
3151
5552
  declare const game_boxscore: typeof boxscore;
3152
5553
  declare const game_networkTVSchedule: typeof networkTVSchedule;
@@ -3176,7 +5577,7 @@ declare namespace game {
3176
5577
  * seasons().then((data) => console.log(data));
3177
5578
  * ```
3178
5579
  */
3179
- declare function seasons(): Promise<APIResponse<NHLSeasons>>;
5580
+ declare function seasons(): Promise<APIResult<NHLSeasons>>;
3180
5581
  /**
3181
5582
  * Access meta information endpoints
3182
5583
  * @description Get metadata about playoff series and games
@@ -3195,7 +5596,7 @@ declare const meta: {
3195
5596
  * meta.game(2023020001).then((data) => console.log(data));
3196
5597
  * ```
3197
5598
  */
3198
- declare function metaGame(gameId: GameId): Promise<APIResponse<GameMeta>>;
5599
+ declare function metaGame(gameId: GameId): Promise<APIResult<GameMeta>>;
3199
5600
  /**
3200
5601
  * Get meta information for a playoff series
3201
5602
  *
@@ -3207,8 +5608,8 @@ declare function metaGame(gameId: GameId): Promise<APIResponse<GameMeta>>;
3207
5608
  * meta.playoffSeries('A', 2023).then((data) => console.log(data));
3208
5609
  * ```
3209
5610
  */
3210
- declare function metaPlayoffSeries(seriesLetter: SeriesLetter$1, year?: Year): Promise<APIResponse<PlayoffSeriesMeta>>;
3211
- declare function metaPlayoffSeries(seriesLetter: string, year?: Year): Promise<APIResponse<PlayoffSeriesMeta>>;
5611
+ declare function metaPlayoffSeries(seriesLetter: SeriesLetter$1, year?: Year): Promise<APIResult<PlayoffSeriesMeta>>;
5612
+ declare function metaPlayoffSeries(seriesLetter: string, year?: Year): Promise<APIResult<PlayoffSeriesMeta>>;
3212
5613
  /**
3213
5614
  * Lookup information based on postal/zip code
3214
5615
  *
@@ -3220,7 +5621,7 @@ declare function metaPlayoffSeries(seriesLetter: string, year?: Year): Promise<A
3220
5621
  * postalLookup('M5H 2N2').then((data) => console.log(data)); // Canadian postal
3221
5622
  * ```
3222
5623
  */
3223
- declare function postalLookup(postalCode: PostalCode): Promise<APIResponse<PostalCodeInfo>>;
5624
+ declare function postalLookup(postalCode: PostalCode): Promise<APIResult<PostalCodeInfo>>;
3224
5625
  /**
3225
5626
  * Get location information based on IP address
3226
5627
  *
@@ -3231,7 +5632,7 @@ declare function postalLookup(postalCode: PostalCode): Promise<APIResponse<Posta
3231
5632
  * location().then((data) => console.log(data));
3232
5633
  * ```
3233
5634
  */
3234
- declare function location(): Promise<APIResponse<LocationInfo>>;
5635
+ declare function location(): Promise<APIResult<LocationInfo>>;
3235
5636
  /**
3236
5637
  * Get partner game information for a specific country
3237
5638
  *
@@ -3242,7 +5643,7 @@ declare function location(): Promise<APIResponse<LocationInfo>>;
3242
5643
  * partnerGame('USA').then((data) => console.log(data));
3243
5644
  * ```
3244
5645
  */
3245
- declare function partnerGame(countryCode: CountryCode$1): Promise<APIResponse<PartnerGameInfo>>;
5646
+ declare function partnerGame(countryCode: CountryCode): Promise<APIResult<PartnerGameInfo>>;
3246
5647
 
3247
5648
  declare const misc_location: typeof location;
3248
5649
  declare const misc_meta: typeof meta;
@@ -3267,7 +5668,7 @@ declare namespace misc {
3267
5668
  * landing(8478402).then((data) => console.log(data)); // Connor McDavid
3268
5669
  * ```
3269
5670
  */
3270
- declare function landing(playerId: number | string): Promise<APIResponse<PlayerLanding>>;
5671
+ declare function landing(playerId: number | string): Promise<APIResult<PlayerLanding>>;
3271
5672
  /**
3272
5673
  * Get player game log for a specific season
3273
5674
  * @param playerId - The unique player identifier (NHL player ID number)
@@ -3279,8 +5680,8 @@ declare function landing(playerId: number | string): Promise<APIResponse<PlayerL
3279
5680
  * gameLog(8478402, 20232024, 2).then((data) => console.log(data));
3280
5681
  * ```
3281
5682
  */
3282
- declare function gameLog(playerId: number | string, season?: Season, gameType?: GameType): Promise<APIResponse<PlayerGameLog>>;
3283
- declare function gameLog(playerId: number | string, season?: Season, gameType?: number | string): Promise<APIResponse<PlayerGameLog>>;
5683
+ declare function gameLog(playerId: number | string, season?: Season$1, gameType?: GameType): Promise<APIResult<PlayerGameLog>>;
5684
+ declare function gameLog(playerId: number | string, season?: Season$1, gameType?: number | string): Promise<APIResult<PlayerGameLog>>;
3284
5685
  /**
3285
5686
  * Get player spotlight featuring highlighted players
3286
5687
  * @returns Promise resolving to featured/spotlight players
@@ -3289,7 +5690,7 @@ declare function gameLog(playerId: number | string, season?: Season, gameType?:
3289
5690
  * spotlight().then((data) => console.log(data));
3290
5691
  * ```
3291
5692
  */
3292
- declare function spotlight(): Promise<APIResponse<PlayerSpotlight[]>>;
5693
+ declare function spotlight(): Promise<APIResult<PlayerSpotlight[]>>;
3293
5694
  /**
3294
5695
  * Search for players by name
3295
5696
  * @param query - The search query string (player name)
@@ -3300,7 +5701,7 @@ declare function spotlight(): Promise<APIResponse<PlayerSpotlight[]>>;
3300
5701
  * search('McDavid').then((data) => console.log(data));
3301
5702
  * ```
3302
5703
  */
3303
- declare function search(query: string): Promise<APIResponse<PlayerSearchResult[] | undefined>>;
5704
+ declare function search(query: string): Promise<APIResult<PlayerSearchResult[] | undefined>>;
3304
5705
  /**
3305
5706
  * Access stats leaders endpoints for skaters and goalies
3306
5707
  * @description Get statistical leaders across various categories
@@ -3319,7 +5720,7 @@ declare const statsLeaders: {
3319
5720
  * statsLeaders.skaters(20232024, 2).then((data) => console.log(data));
3320
5721
  * ```
3321
5722
  */
3322
- declare function statsLeadersSkaters(season?: Season, gameType?: GameType): Promise<APIResponse<SkaterStatsLeaders>>;
5723
+ declare function statsLeadersSkaters(season?: Season$1, gameType?: GameType): Promise<APIResult<SkaterStatsLeaders>>;
3323
5724
  /**
3324
5725
  * Get goalie stats leaders
3325
5726
  * @param season - The season identifier (8-digit format: YYYYYYYY). Defaults to current season
@@ -3330,7 +5731,7 @@ declare function statsLeadersSkaters(season?: Season, gameType?: GameType): Prom
3330
5731
  * statsLeaders.goalies(20232024, 2).then((data) => console.log(data));
3331
5732
  * ```
3332
5733
  */
3333
- declare function statsLeadersGoalies(season?: Season, gameType?: GameType): Promise<APIResponse<GoalieStatsLeaders>>;
5734
+ declare function statsLeadersGoalies(season?: Season$1, gameType?: GameType): Promise<APIResult<GoalieStatsLeaders>>;
3334
5735
 
3335
5736
  declare const player_gameLog: typeof gameLog;
3336
5737
  declare const player_landing: typeof landing;
@@ -3354,7 +5755,7 @@ declare namespace player {
3354
5755
  * score('2023-11-15').then((data) => console.log(data));
3355
5756
  * ```
3356
5757
  */
3357
- declare function score(date?: Date | string): Promise<APIResponse<Score>>;
5758
+ declare function score(date?: Date | string): Promise<APIResult<Score>>;
3358
5759
  /**
3359
5760
  * Get current scoreboard information
3360
5761
  * @returns Promise resolving to current scoreboard with live and recent game data
@@ -3363,10 +5764,10 @@ declare function score(date?: Date | string): Promise<APIResponse<Score>>;
3363
5764
  * scoreboard().then((data) => console.log(data));
3364
5765
  * ```
3365
5766
  */
3366
- declare function scoreboard(): Promise<APIResponse<Scoreboard>>;
5767
+ declare function scoreboard(): Promise<APIResult<Scoreboard>>;
3367
5768
  declare namespace scoreboard {
3368
- var team: (team: TeamAbbrev) => Promise<APIResponse<Scoreboard>>;
3369
- var date: (date: Date | string) => Promise<APIResponse<Scoreboard>>;
5769
+ var team: (team: TeamAbbrev) => Promise<APIResult<Scoreboard>>;
5770
+ var date: (date: Date | string) => Promise<APIResult<Scoreboard>>;
3370
5771
  }
3371
5772
 
3372
5773
  /**
@@ -3378,7 +5779,7 @@ declare namespace scoreboard {
3378
5779
  * rosterSeasons('TOR').then((data) => console.log(data));
3379
5780
  * ```
3380
5781
  */
3381
- declare function rosterSeasons(team: TeamAbbrev): Promise<APIResponse<TeamRosterSeasons>>;
5782
+ declare function rosterSeasons(team: TeamAbbrev): Promise<APIResult<TeamRosterSeasons>>;
3382
5783
  /**
3383
5784
  * Get team roster for a specific season
3384
5785
  * @param team - The team abbreviation (e.g., 'TOR', 'MTL', 'NYR')
@@ -3389,7 +5790,7 @@ declare function rosterSeasons(team: TeamAbbrev): Promise<APIResponse<TeamRoster
3389
5790
  * roster('TOR', 20232024).then((data) => console.log(data));
3390
5791
  * ```
3391
5792
  */
3392
- declare function roster(team: string, season?: string | number): Promise<APIResponse<TeamRoster>>;
5793
+ declare function roster(team: string, season?: string | number): Promise<APIResult<TeamRoster>>;
3393
5794
  /**
3394
5795
  * Get team prospects information
3395
5796
  * @param team - The team abbreviation (e.g., 'TOR', 'MTL', 'NYR')
@@ -3399,7 +5800,7 @@ declare function roster(team: string, season?: string | number): Promise<APIResp
3399
5800
  * prospects('TOR').then((data) => console.log(data));
3400
5801
  * ```
3401
5802
  */
3402
- declare function prospects(team: TeamAbbrev): Promise<APIResponse<TeamProspects>>;
5803
+ declare function prospects(team: TeamAbbrev): Promise<APIResult<TeamProspects>>;
3403
5804
  /**
3404
5805
  * Get team statistics for a specific season
3405
5806
  * @param team - The team abbreviation (e.g., 'TOR', 'MTL', 'NYR')
@@ -3411,7 +5812,7 @@ declare function prospects(team: TeamAbbrev): Promise<APIResponse<TeamProspects>
3411
5812
  * stats('TOR', 20232024, 'REG').then((data) => console.log(data));
3412
5813
  * ```
3413
5814
  */
3414
- declare function stats(team: TeamAbbrev, season?: Season, gameType?: GameType): Promise<APIResponse<TeamStats>>;
5815
+ declare function stats(team: TeamAbbrev, season?: Season$1, gameType?: GameType): Promise<APIResult<TeamStats>>;
3415
5816
  /**
3416
5817
  * Get valid season and game type options for a team's statistics
3417
5818
  * @param team - The team abbreviation (e.g., 'TOR', 'MTL', 'NYR')
@@ -3423,7 +5824,7 @@ declare function stats(team: TeamAbbrev, season?: Season, gameType?: GameType):
3423
5824
  * statsSeason('TOR').then((data) => console.log(data));
3424
5825
  * ```
3425
5826
  */
3426
- declare function statsSeason(team: TeamAbbrev): Promise<APIResponse<TeamStatsSeason>>;
5827
+ declare function statsSeason(team: TeamAbbrev): Promise<APIResult<TeamStatsSeason>>;
3427
5828
  /**
3428
5829
  * Get league standings for a specific date
3429
5830
  * @param date - Date to get standings for (Date object or ISO date string 'YYYY-MM-DD'). Defaults to current date
@@ -3433,7 +5834,7 @@ declare function statsSeason(team: TeamAbbrev): Promise<APIResponse<TeamStatsSea
3433
5834
  * standings('2023-11-15').then((data) => console.log(data));
3434
5835
  * ```
3435
5836
  */
3436
- declare function standings(date?: Date | string): Promise<APIResponse<NHLStandings>>;
5837
+ declare function standings(date?: Date | string): Promise<APIResult<NHLStandings>>;
3437
5838
  /**
3438
5839
  * Get current season standings information
3439
5840
  * @returns Promise resolving to current season standings with detailed team records
@@ -3442,7 +5843,7 @@ declare function standings(date?: Date | string): Promise<APIResponse<NHLStandin
3442
5843
  * standingsSeason().then((data) => console.log(data));
3443
5844
  * ```
3444
5845
  */
3445
- declare function standingsSeason(): Promise<APIResponse<NHLStandingsSeason>>;
5846
+ declare function standingsSeason(): Promise<APIResult<NHLStandingsSeason>>;
3446
5847
  /**
3447
5848
  * Get the team schedule for any seven-day period
3448
5849
  * @param team - The team abbreviation (e.g., 'TOR', 'MTL', 'NYR')
@@ -3459,8 +5860,8 @@ declare function standingsSeason(): Promise<APIResponse<NHLStandingsSeason>>;
3459
5860
  * });
3460
5861
  * ```
3461
5862
  */
3462
- declare function scheduleWeek(team: TeamAbbrev, date?: Date | string): Promise<APIResponse<TeamScheduleWeek>>;
3463
- declare function scheduleWeek(team: string, date?: Date | string): Promise<APIResponse<TeamScheduleWeek>>;
5863
+ declare function scheduleWeek(team: TeamAbbrev, date?: Date | string): Promise<APIResult<TeamScheduleWeek>>;
5864
+ declare function scheduleWeek(team: string, date?: Date | string): Promise<APIResult<TeamScheduleWeek>>;
3464
5865
  /**
3465
5866
  * Get the team schedule for any month
3466
5867
  * @param team - The team abbreviation (e.g., 'TOR', 'MTL', 'NYR')
@@ -3476,8 +5877,8 @@ declare function scheduleWeek(team: string, date?: Date | string): Promise<APIRe
3476
5877
  * });
3477
5878
  * ```
3478
5879
  */
3479
- declare function scheduleMonth(team: TeamAbbrev, date?: Date | string): Promise<APIResponse<TeamScheduleMonth>>;
3480
- declare function scheduleMonth(team: string, date?: Date | string): Promise<APIResponse<TeamScheduleMonth>>;
5880
+ declare function scheduleMonth(team: TeamAbbrev, date?: Date | string): Promise<APIResult<TeamScheduleMonth>>;
5881
+ declare function scheduleMonth(team: string, date?: Date | string): Promise<APIResult<TeamScheduleMonth>>;
3481
5882
  /**
3482
5883
  * Returns the full season schedule for the provided team and season
3483
5884
  * @param team - The team abbreviation for the desired team (e.g., 'TOR', 'MTL', 'NYR')
@@ -3491,8 +5892,8 @@ declare function scheduleMonth(team: string, date?: Date | string): Promise<APIR
3491
5892
  * });
3492
5893
  * ```
3493
5894
  */
3494
- declare function scheduleSeason(team: TeamAbbrev, season?: Season): Promise<APIResponse<TeamScheduleSeason>>;
3495
- declare function scheduleSeason(team: string, season?: Season): Promise<APIResponse<TeamScheduleSeason>>;
5895
+ declare function scheduleSeason(team: TeamAbbrev, season?: Season$1): Promise<APIResult<TeamScheduleSeason>>;
5896
+ declare function scheduleSeason(team: string, season?: Season$1): Promise<APIResult<TeamScheduleSeason>>;
3496
5897
  /**
3497
5898
  * Access team schedule endpoints for different time periods
3498
5899
  * @description Get team schedules by season, week, or month
@@ -3532,297 +5933,154 @@ declare namespace index {
3532
5933
  }
3533
5934
 
3534
5935
  /**
3535
- * All valid NHL team abbreviations and their corresponding team IDs.
3536
- */
3537
- declare const TeamsEnum: {
3538
- /** Anaheim Ducks */
3539
- readonly ANA: 24;
3540
- /** Boston Bruins */
3541
- readonly BOS: 6;
3542
- /** Buffalo Sabres */
3543
- readonly BUF: 7;
3544
- /** Calgary Flames */
3545
- readonly CGY: 20;
3546
- /** Carolina Hurricanes */
3547
- readonly CAR: 12;
3548
- /** Chicago Blackhawks */
3549
- readonly CHI: 16;
3550
- /** Colorado Avalanche */
3551
- readonly COL: 21;
3552
- /** Columbus Blue Jackets */
3553
- readonly CBJ: 29;
3554
- /** Dallas Stars */
3555
- readonly DAL: 25;
3556
- /** Detroit Red Wings */
3557
- readonly DET: 17;
3558
- /** Edmonton Oilers */
3559
- readonly EDM: 22;
3560
- /** Florida Panthers */
3561
- readonly FLA: 13;
3562
- /** Los Angeles Kings */
3563
- readonly LAK: 26;
3564
- /** Minnesota Wild*/
3565
- readonly MIN: 30;
3566
- /** Montreal Canadiens */
3567
- readonly MTL: 8;
3568
- /** New Jersey Devils */
3569
- readonly NJD: 1;
3570
- /** Nashville Predators */
3571
- readonly NSH: 18;
3572
- /** New York Islanders */
3573
- readonly NYI: 2;
3574
- /** New York Rangers */
3575
- readonly NYR: 3;
3576
- /** Ottawa Senators */
3577
- readonly OTT: 9;
3578
- /** Philadelphia Flyers */
3579
- readonly PHI: 4;
3580
- /** Pittsburgh Penguins */
3581
- readonly PIT: 5;
3582
- /** San Jose Sharks */
3583
- readonly SJS: 28;
3584
- /** Seattle Kraken */
3585
- readonly SEA: 55;
3586
- /** St. Louis Blues */
3587
- readonly STL: 19;
3588
- /** Tampa Bay Lightning */
3589
- readonly TBL: 14;
3590
- /** Toronto Maple Leafs */
3591
- readonly TOR: 10;
3592
- /** Utah Hockey Club */
3593
- readonly UTA: 59;
3594
- /** Vancouver Canucks */
3595
- readonly VAN: 23;
3596
- /** Vegas Golden Knights */
3597
- readonly VGK: 54;
3598
- /** Winnipeg Jets */
3599
- readonly WPG: 52;
3600
- /** Washington Capitals */
3601
- readonly WSH: 15;
3602
- };
3603
- declare const TeamsReverseEnum: Record<(typeof TeamsEnum)[keyof typeof TeamsEnum], keyof typeof TeamsEnum>;
3604
- /**
3605
- * All inactive NHL teams and their corresponding team IDs.
3606
- */
3607
- declare const InactiveTeamsEnum: {
3608
- /** Atlanta Flames (not active) */
3609
- readonly AFM: 47;
3610
- /** Arizona Coyotes (not active) */
3611
- readonly ARI: 53;
3612
- /** Atlanta Thrashers (not active) */
3613
- readonly ATL: 11;
3614
- /** Brooklyn Americans - (not active) */
3615
- readonly BRK: 51;
3616
- /** California Golden Seals (aka Bay Area Seals) - (not active) */
3617
- readonly CGS: 56;
3618
- /** Cleveland Barons - (not active) */
3619
- readonly CLE: 49;
3620
- /** Colorado Rockies - (not active) */
3621
- readonly CLR: 35;
3622
- /** Detroit Cougars - (not active) */
3623
- readonly DCG: 40;
3624
- /** Detroit Falcons - (not active) */
3625
- readonly DFL: 50;
3626
- /** Hamilton Tigers - (not active) */
3627
- readonly HAM: 37;
3628
- /** Hartford Whalers - (not active) */
3629
- readonly HFD: 34;
3630
- /** Kansas City Scouts - (not active) */
3631
- readonly KCS: 48;
3632
- /** Montreal Maroons - (not active) */
3633
- readonly MMR: 43;
3634
- /** Minnesota North Stars - (not active) */
3635
- readonly MNS: 31;
3636
- /** Montreal Wanderers - (not active) */
3637
- readonly MWN: 41;
3638
- /** New York Americans - (not active) */
3639
- readonly NYA: 44;
3640
- /** California Seals (aka Oakland Seals) - (not active) */
3641
- readonly OAK: 46;
3642
- /** Phoenix Coyotes - (not active) */
3643
- readonly PHX: 27;
3644
- /** Pittsburgh Pirates - (not active) */
3645
- readonly PIR: 38;
3646
- /** Quebec Bulldogs - (not active) */
3647
- readonly QBD: 42;
3648
- /** Philadelphia Quakers - (not active) */
3649
- readonly QUA: 39;
3650
- /** Quebec Nordiques - (not active) */
3651
- readonly QUE: 32;
3652
- /** Ottawa Senators (original franchise) - (not active) */
3653
- readonly SEN: 36;
3654
- /** St. Louis Eagles - (not active) */
3655
- readonly SLE: 45;
3656
- /** Toronto Hockey Club (aka Toronto Arenas) - (not active) */
3657
- readonly TAN: 57;
3658
- /** Toronto St. Patricks - (not active) */
3659
- readonly TSP: 58;
3660
- /** Winnipeg Jets (original franchise) - (not active) */
3661
- readonly WIN: 33;
3662
- };
3663
- declare const InactiveTeamsReverseEnum: Record<(typeof InactiveTeamsEnum)[keyof typeof InactiveTeamsEnum], keyof typeof InactiveTeamsEnum>;
3664
- /**
3665
- * All valid NHL seasons in yyyyYYYY format.
3666
- */
3667
- declare const SeasonsArray: readonly [19171918, 19181919, 19191920, 19201921, 19211922, 19221923, 19231924, 19241925, 19251926, 19261927, 19271928, 19281929, 19291930, 19301931, 19311932, 19321933, 19331934, 19341935, 19351936, 19361937, 19371938, 19381939, 19391940, 19401941, 19411942, 19421943, 19431944, 19441945, 19451946, 19461947, 19471948, 19481949, 19491950, 19501951, 19511952, 19521953, 19531954, 19541955, 19551956, 19561957, 19571958, 19581959, 19591960, 19601961, 19611962, 19621963, 19631964, 19641965, 19651966, 19661967, 19671968, 19681969, 19691970, 19701971, 19711972, 19721973, 19731974, 19741975, 19751976, 19761977, 19771978, 19781979, 19791980, 19801981, 19811982, 19821983, 19831984, 19841985, 19851986, 19861987, 19871988, 19881989, 19891990, 19901991, 19911992, 19921993, 19931994, 19941995, 19951996, 19961997, 19971998, 19981999, 19992000, 20002001, 20012002, 20022003, 20032004, 20052006, 20062007, 20072008, 20082009, 20092010, 20102011, 20112012, 20122013, 20132014, 20142015, 20152016, 20162017, 20172018, 20182019, 20192020, 20202021, 20212022, 20222023, 20232024, 20242025, 20252026];
3668
- /**
3669
- * All valid NHL playoff series letters.
3670
- */
3671
- declare const SeriesLetterEnum: {
3672
- /** Atlantic Division Round 1: D1 vs WC# */
3673
- readonly A: "A";
3674
- /** Atlantic Division Round 1: D2 vs D3 */
3675
- readonly B: "B";
3676
- /** Metropolitan Division Round 1: D1 vs WC# */
3677
- readonly C: "C";
3678
- /** Metropolitan Division Round 1: D2 vs D3 */
3679
- readonly D: "D";
3680
- /** Central Division Round 1: D1 vs WC# */
3681
- readonly E: "E";
3682
- /** Central Division Round 1: D2 vs D3 */
3683
- readonly F: "F";
3684
- /** Pacific Division Round 1: D1 vs WC# */
3685
- readonly G: "G";
3686
- /** Pacific Division Round 1: D2 vs D3 */
3687
- readonly H: "H";
3688
- /** Atlantic Division Round 2: Aw vs Bw */
3689
- readonly I: "I";
3690
- /** Metropolitan Division Round 2: Cw vs Dw */
3691
- readonly J: "J";
3692
- /** Central Division Round 2: Ew vs Fw */
3693
- readonly K: "K";
3694
- /** Pacific Division Round 2: Gw vs Hw */
3695
- readonly L: "L";
3696
- /** Eastern Conference Finals */
3697
- readonly M: "M";
3698
- /** Western Conference Finals*/
3699
- readonly N: "N";
3700
- /** Stanley Cup Finals */
3701
- readonly O: "O";
3702
- };
5936
+ * ======================================================================
5937
+ * NHL video metadata from Brightcove, the NHL's video host.
5938
+ * Base URL: https://edge.api.brightcove.com/playback/v1
5939
+ * ======================================================================
5940
+ * Video ids come from `highlightClip` / `discreteClip` fields in Game
5941
+ * Center responses (e.g. `gc.game.landing` goals). The policy key is the
5942
+ * public one nhl.com's player sends.
5943
+ */
5944
+
5945
+ /** One rendition of a video */
5946
+ interface VideoSource {
5947
+ src: string;
5948
+ /** MIME type of a streaming manifest, e.g. application/x-mpegURL */
5949
+ type?: string;
5950
+ /** Container of a progressive download, e.g. MP4 */
5951
+ container?: string;
5952
+ codec?: string;
5953
+ width?: number;
5954
+ height?: number;
5955
+ }
5956
+ /** Metadata and playable sources for a video */
5957
+ interface VideoMetadata {
5958
+ id: string;
5959
+ title: string;
5960
+ description: string | null;
5961
+ longDescription: string | null;
5962
+ /** Length in milliseconds */
5963
+ duration: number;
5964
+ publishedAt: string;
5965
+ poster: string | null;
5966
+ thumbnail: string | null;
5967
+ /** The widest HTTPS MP4 rendition, or null when there is none */
5968
+ url: string | null;
5969
+ sources: VideoSource[];
5970
+ tags: string[];
5971
+ }
3703
5972
  /**
3704
- * All valid NHL playoff series letters grouped by round.
5973
+ * Get a video's title, descriptions and playable sources
5974
+ *
5975
+ * @param videoId - Brightcove video id, e.g. a goal's `highlightClip`
5976
+ * @returns Promise resolving to the video metadata; an unknown id gives a
5977
+ * NotFoundError result
5978
+ *
5979
+ * @example
5980
+ * const result = await video.metadata(6366156642112);
5981
+ * if (result.success) console.log(result.data.title, result.data.url);
3705
5982
  */
3706
- declare const SeriesLetterByRound: {
3707
- R1: string[];
3708
- R2: string[];
3709
- CF: string[];
3710
- SCF: string[];
3711
- };
5983
+ declare function metadata(videoId: string | number): Promise<APIResult<VideoMetadata>>;
5984
+
5985
+ type video_VideoMetadata = VideoMetadata;
5986
+ type video_VideoSource = VideoSource;
5987
+ declare const video_metadata: typeof metadata;
5988
+ declare namespace video {
5989
+ export { type video_VideoMetadata as VideoMetadata, type video_VideoSource as VideoSource, video_metadata as metadata };
5990
+ }
5991
+
3712
5992
  /**
3713
- * All valid NHL playoff series letters mapped to human-readable names.
3714
- */
3715
- declare const PlayoffSeriesEnum: {
3716
- Atlantic_R1_D1_vs_WC: string;
3717
- Atlantic_R1_D2_vs_D3: string;
3718
- Metropolitan_R1_D1_vs_WC: string;
3719
- Metropolitan_R1_D2_vs_D3: string;
3720
- Central_R1_D1_vs_WC: string;
3721
- Central_R1_D2_vs_D3: string;
3722
- Pacific_R1_D1_vs_WC: string;
3723
- Pacific_R1_D2_vs_D3: string;
3724
- Atlantic_R2_Aw_vs_Bw: string;
3725
- Metropolitan_R2_Cw_vs_Dw: string;
3726
- Central_R2_Ew_vs_Fw: string;
3727
- Pacific_R2_Gw_vs_Hw: string;
3728
- Eastern_Conference_Finals: string;
3729
- Western_Conference_Finals: string;
3730
- Stanley_Cup_Finals: string;
3731
- };
5993
+ * NHL API Client implementation
5994
+ * Internal client for making API requests to the NHL API
5995
+ */
5996
+
3732
5997
  /**
3733
- * All valid NHL game states.
5998
+ * Extended configuration for the NHL API client including error handling
3734
5999
  */
3735
- declare const GameStateEnum: {
3736
- /** Future */
3737
- readonly FUT: "FUT";
3738
- /** Live */
3739
- readonly LIV: "LIV";
3740
- /** Finished */
3741
- readonly FIN: "FIN";
6000
+ interface NHLClientWithErrorConfig extends NHLClientConfig {
6001
+ /**
6002
+ * Error handling configuration
6003
+ */
6004
+ errorConfig?: ErrorConfig;
6005
+ }
6006
+ /** Base URLs of the NHL APIs the library calls. */
6007
+ declare const BASE_URLS: {
6008
+ readonly gamecenter: "https://api-web.nhle.com/v1";
6009
+ readonly edgeStats: "https://api.nhle.com/stats/rest";
3742
6010
  };
3743
6011
  /**
3744
- * All valid NHL period types.
6012
+ * NHL API Client class for making API requests to the NHL API
6013
+ * Provides methods for sending GET requests to the NHL API with automatic
6014
+ * URL construction, query parameter handling, timeout management, and
6015
+ * comprehensive error handling using the ErrorHandler utility.
3745
6016
  */
3746
- declare const PeriodTypeEnum: {
3747
- /** Regulation */
3748
- readonly REG: "REG";
3749
- /** Overtime */
3750
- readonly OT: "OT";
3751
- /** Shootout */
3752
- readonly SO: "SO";
3753
- };
6017
+ declare class NHLClient {
6018
+ private options;
6019
+ private errorHandler;
6020
+ /**
6021
+ * Creates a new NHL API client instance
6022
+ *
6023
+ * Options left unset (timeout, language) follow the shared `config`
6024
+ * object at request time, so changing `config` after import still
6025
+ * applies to this client.
6026
+ *
6027
+ * @param baseURLOrOptions - Base URL, or client options
6028
+ * @param errorConfig - Optional error handling configuration
6029
+ *
6030
+ * @example
6031
+ * const client = new NHLClient('https://api-web.nhle.com/v1');
6032
+ * const slow = new NHLClient({ timeout: 15000, language: 'fr' });
6033
+ */
6034
+ constructor(baseURLOrOptions?: string | NHLClientWithErrorConfig, errorConfig?: ErrorConfig);
6035
+ /** Base URL, timeout, headers and language in effect for the next request. */
6036
+ private get config();
6037
+ /**
6038
+ * Helper to build URL with query parameters
6039
+ * @private
6040
+ */
6041
+ private buildUrl;
6042
+ /**
6043
+ * Send a GET request to the NHL API
6044
+ * @param endpoint - API endpoint path
6045
+ * @param params - Optional query parameters
6046
+ * @returns Promise resolving to an APIResponse containing either data or error
6047
+ */
6048
+ get<T = unknown>(endpoint: string, params?: Record<string, unknown>): Promise<APIResult<T>>;
6049
+ /**
6050
+ * Configure error handling behavior
6051
+ * @param config - Error configuration options
6052
+ */
6053
+ configureErrorHandling(config: Partial<ErrorConfig>): void;
6054
+ }
3754
6055
  /**
3755
- * All valid NHL game types.
3756
- */
3757
- declare const GameTypeEnum: {
3758
- /** Pre-season */
3759
- readonly PRE: 1;
3760
- /** Regular season */
3761
- readonly REG: 2;
3762
- /** Post-season (aka playoffs) */
3763
- readonly POST: 3;
3764
- /** All-Star Game (unconfirmed) */
3765
- readonly ASG: 4;
3766
- /** International (unconfirmed) */
3767
- readonly INTL: 19;
3768
- };
3769
- /** */
3770
- declare const SEASON_RANGE: {
3771
- START: number;
3772
- END: number;
3773
- };
3774
- /** */
3775
- declare const START_SEASON: number;
3776
- /** */
3777
- declare const END_SEASON: number;
3778
- /** */
3779
- declare const YEAR_RANGE: {
3780
- START: number;
3781
- END: number;
3782
- };
3783
- /** */
3784
- declare const START_YEAR: number;
3785
- /** */
3786
- declare const END_YEAR: number;
3787
- /** */
3788
- declare const CURRENT: {
3789
- SEASON: number;
3790
- YEAR: number;
3791
- };
3792
- /** */
3793
- declare const PLAYER_ID_RANGE: {
3794
- readonly MIN: 8444000;
3795
- readonly MAX: 8489999;
3796
- };
3797
- /** */
3798
- declare const TEAM_ID_RANGE: {
3799
- readonly MIN: 1;
3800
- readonly MAX: 59;
3801
- };
6056
+ * Factory function for backward compatibility
6057
+ * Creates a new NHL API client instance
6058
+ *
6059
+ * @param baseURL - Optional custom base URL or predefined API endpoint key
6060
+ * @param errorConfig - Optional error handling configuration
6061
+ * @returns A new NHL API client instance
6062
+ */
6063
+ declare function createNHLClient(baseURLOrOptions?: string | NHLClientWithErrorConfig, errorConfig?: ErrorConfig): NHLClient;
3802
6064
 
3803
- declare const nhl_CURRENT: typeof CURRENT;
3804
- declare const nhl_END_SEASON: typeof END_SEASON;
3805
- declare const nhl_END_YEAR: typeof END_YEAR;
3806
- declare const nhl_GameStateEnum: typeof GameStateEnum;
3807
- declare const nhl_GameTypeEnum: typeof GameTypeEnum;
3808
- declare const nhl_InactiveTeamsEnum: typeof InactiveTeamsEnum;
3809
- declare const nhl_InactiveTeamsReverseEnum: typeof InactiveTeamsReverseEnum;
3810
- declare const nhl_PLAYER_ID_RANGE: typeof PLAYER_ID_RANGE;
3811
- declare const nhl_PeriodTypeEnum: typeof PeriodTypeEnum;
3812
- declare const nhl_PlayoffSeriesEnum: typeof PlayoffSeriesEnum;
3813
- declare const nhl_SEASON_RANGE: typeof SEASON_RANGE;
3814
- declare const nhl_START_SEASON: typeof START_SEASON;
3815
- declare const nhl_START_YEAR: typeof START_YEAR;
3816
- declare const nhl_SeasonsArray: typeof SeasonsArray;
3817
- declare const nhl_SeriesLetterByRound: typeof SeriesLetterByRound;
3818
- declare const nhl_SeriesLetterEnum: typeof SeriesLetterEnum;
3819
- declare const nhl_TEAM_ID_RANGE: typeof TEAM_ID_RANGE;
3820
- declare const nhl_TeamsEnum: typeof TeamsEnum;
3821
- declare const nhl_TeamsReverseEnum: typeof TeamsReverseEnum;
3822
- declare const nhl_YEAR_RANGE: typeof YEAR_RANGE;
3823
- declare namespace nhl {
3824
- export { nhl_CURRENT as CURRENT, nhl_END_SEASON as END_SEASON, nhl_END_YEAR as END_YEAR, nhl_GameStateEnum as GameStateEnum, nhl_GameTypeEnum as GameTypeEnum, nhl_InactiveTeamsEnum as InactiveTeamsEnum, nhl_InactiveTeamsReverseEnum as InactiveTeamsReverseEnum, nhl_PLAYER_ID_RANGE as PLAYER_ID_RANGE, nhl_PeriodTypeEnum as PeriodTypeEnum, nhl_PlayoffSeriesEnum as PlayoffSeriesEnum, nhl_SEASON_RANGE as SEASON_RANGE, nhl_START_SEASON as START_SEASON, nhl_START_YEAR as START_YEAR, nhl_SeasonsArray as SeasonsArray, nhl_SeriesLetterByRound as SeriesLetterByRound, nhl_SeriesLetterEnum as SeriesLetterEnum, nhl_TEAM_ID_RANGE as TEAM_ID_RANGE, nhl_TeamsEnum as TeamsEnum, nhl_TeamsReverseEnum as TeamsReverseEnum, nhl_YEAR_RANGE as YEAR_RANGE };
3825
- }
6065
+ /**
6066
+ * Code-defined configuration for the NHL API client.
6067
+ *
6068
+ * Change these values in source when the application needs different
6069
+ * defaults.
6070
+ */
6071
+ type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'debug';
6072
+ interface NHLConfig {
6073
+ /** Request timeout in milliseconds. */
6074
+ timeout: number;
6075
+ /** Language code for localized API responses. */
6076
+ language: 'en' | 'fr';
6077
+ /** Logging level for the client. */
6078
+ logLevel: LogLevel;
6079
+ }
6080
+ /** Default configuration used by the shared NHL API clients. */
6081
+ declare const config: NHLConfig;
6082
+ /** Log the active code-defined configuration. */
6083
+ declare function logConfig(): void;
3826
6084
 
3827
6085
  declare const EDGE: {
3828
6086
  SaveLocationCategoryEnum: {
@@ -3895,4 +6153,15 @@ declare const EDGE: {
3895
6153
  };
3896
6154
  };
3897
6155
 
3898
- export { type CountryCode$1 as CountryCode, type DraftPicks, type DraftRankings, type DraftRound, type DraftTracker, EDGE, type EventId, type GameId, type GameMeta, type GameNumber, type GameState$1 as GameState, type GameType, type GamecenterBoxscore, type GamecenterLanding, type GamecenterPlayByPlay, type GamecenterReports, type GoalieStatsLeaders, type LeagueSchedule, type LocationInfo, nhl as NHL, type NHLDate, type NHLMonth, type NHLSeasons, type NHLStandings, type NHLStandingsSeason, type NetworkTVSchedule, type PPTReplayEvent, type PPTReplayGoal, type PartnerGameInfo, type PlayerGameLog, type PlayerId, type PlayerLanding, type PlayerSearchResult, type PlayerSpotlight, type PlayoffBracket, type PlayoffRound, type PlayoffSeries, type PlayoffSeriesMeta, type PlayoffSeriesSchedule, type PositionFilter, type PostalCode, type PostalCodeInfo, type SaveLocationCategory, type SaveLocationSort, type SavePercentage5v5Sort, type SavePercentageSort, type ScheduleCalendar, type Score, type Scoreboard, type Season, type SeriesLetter$1 as SeriesLetter, type ShotLocationCategory, type ShotLocationSort, type ShotSpeedSort, type SkaterStatsLeaders, type SkatersStrength, type SkatingDistanceSort, type SkatingSpeedSort, type TeamAbbrev, type TeamId, type TeamProspects, type TeamRoster, type TeamRosterSeasons, type TeamScheduleMonth, type TeamScheduleSeason, type TeamScheduleWeek, type TeamStats, type TeamStatsSeason, type WSCGameStory, type WSCPlayByPlay, type WSCPlayByPlayEvent, type WhereToWatch, type Year, type ZoneTimeSort, index$1 as adv, index as gc };
6156
+ type LogContext = unknown;
6157
+ /** Write a message when its level is enabled by the configured threshold. */
6158
+ declare function writeLog(level: Exclude<LogLevel, 'silent'>, message: string, context?: LogContext, threshold?: LogLevel): void;
6159
+ /** Simple level-aware logging wrappers for library messages. */
6160
+ declare const logger: {
6161
+ error: (message: string, context?: LogContext) => void;
6162
+ warn: (message: string, context?: LogContext) => void;
6163
+ info: (message: string, context?: LogContext) => void;
6164
+ debug: (message: string, context?: LogContext) => void;
6165
+ };
6166
+
6167
+ export { APIError, type APIResult, BASE_URLS, CayenneQueryBuilder, ClientError, type CountryCode, type DraftPicks, type DraftRankings, type DraftRound, type DraftTracker, EDGE, type EdgeByTheNumbers, type EdgeGoalieComparison, type EdgeGoalieDetail, type EdgeGoalieLanding, type EdgeGoalieSavePercentage, type EdgeGoalieSavePercentage5v5, type EdgeGoalieSavePercentage5v5Top10, type EdgeGoalieSavePercentage5v5Top10Entry, type EdgeGoalieSavePercentageTop10, type EdgeGoalieSavePercentageTop10Entry, type EdgeGoalieShotLocation, type EdgeGoalieShotLocationTop10, type EdgeGoalieShotLocationTop10Entry, type EdgeMeasurement, type EdgeOverlay, type EdgePeriodDescriptor, type EdgePlayer, type EdgeSeason, type EdgeSkaterComparison, type EdgeSkaterDetail, type EdgeSkaterDistanceTop10, type EdgeSkaterDistanceTop10Entry, type EdgeSkaterLanding, type EdgeSkaterShotLocation, type EdgeSkaterShotLocationTop10, type EdgeSkaterShotLocationTop10Entry, type EdgeSkaterShotSpeed, type EdgeSkaterShotSpeedTop10, type EdgeSkaterShotSpeedTop10Entry, type EdgeSkaterSkatingDistance, type EdgeSkaterSkatingSpeed, type EdgeSkaterSpeedTop10, type EdgeSkaterSpeedTop10Entry, type EdgeSkaterZoneTime, type EdgeSkaterZoneTimeTop10, type EdgeSkaterZoneTimeTop10Entry, type EdgeTeam, type EdgeTeamComparison, type EdgeTeamDetail, type EdgeTeamLanding, type EdgeTeamLogos, type EdgeTeamShotLocation, type EdgeTeamShotLocationTop10, type EdgeTeamShotLocationTop10Entry, type EdgeTeamShotSpeed, type EdgeTeamShotSpeedTop10, type EdgeTeamShotSpeedTop10Entry, type EdgeTeamSkatingDistance, type EdgeTeamSkatingDistanceTop10, type EdgeTeamSkatingDistanceTop10Entry, type EdgeTeamSkatingSpeed, type EdgeTeamSkatingSpeedTop10, type EdgeTeamSkatingSpeedTop10Entry, type EdgeTeamZoneTime, type EdgeTeamZoneTimeTop10, type EdgeTeamZoneTimeTop10Entry, ErrorCategory, type ErrorConfig, type ErrorContext, ErrorHandler, LogLevel$1 as ErrorLogLevel, type EventId, type GameId, type GameMeta, type GameNumber, type GameState, type GameType, type GamecenterBoxscore, type GamecenterLanding, type GamecenterPlayByPlay, type GamecenterReports, type GoalieStatsLeaders, type LeagueSchedule, type LocalizedText, type LocationInfo, type LogContext, type LogLevel, NHLClient, type NHLClientConfig, type NHLClientWithErrorConfig, type NHLConfig, type NHLDate, NHLError, type NHLMonth, type NHLSeasons, type NHLStandings, type NHLStandingsSeason, NetworkError, type NetworkTVSchedule, NotFoundError, type PPTReplayEvent, type PPTReplayGoal, ParseError, type PartnerGameInfo, type PlayerGameLog, type PlayerId, type PlayerLanding, type PlayerSearchResult, type PlayerSpotlight, type PlayoffBracket, type PlayoffRound, type PlayoffSeries, type PlayoffSeriesMeta, type PlayoffSeriesSchedule, type PositionFilter, type PostalCode, type PostalCodeInfo, RateLimitError, type SaveLocationCategory, type SaveLocationSort, type SavePercentage5v5Sort, type SavePercentageSort, type ScheduleCalendar, type Score, type Scoreboard, type Season$1 as Season, type SeriesLetter$1 as SeriesLetter, ServerError, type ShotLocationCategory, type ShotLocationSort, type ShotSpeedSort, type SkaterStatsLeaders, type SkatersStrength, type SkatingDistanceSort, type SkatingSpeedSort, type TeamAbbrev, type TeamId, type TeamProspects, type TeamRoster, type TeamRosterSeasons, type TeamScheduleMonth, type TeamScheduleSeason, type TeamScheduleWeek, type TeamStats, type TeamStatsSeason, ValidationError, type WSCGameStory, type WSCPlayByPlay, type WSCPlayByPlayEvent, type WhereToWatch, type Year, type ZoneTimeSort, index$2 as adv, config, createNHLClient, index as gc, logConfig, logger, index$1 as stats, video, writeLog };