@ankorcs/protocol 0.0.0-stage → 0.6.1

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.
@@ -0,0 +1,2137 @@
1
+ /**
2
+ * Plugin events use decimal-string SteamIDs, numeric roster teams and `t`, `ct` and `spec` sides.
3
+ *
4
+ * `round` is one-based, `timestamp` is Unix milliseconds, and `round_time` is seconds derived from
5
+ * the engine, rounded to milliseconds. `tick` is the server tick when the event happened, as the
6
+ * engine's map tick plus its sub-tick fraction. `seq` is the order in which the events were sent.
7
+ */
8
+ import { z } from 'zod';
9
+ /** A SteamID64 as 17 decimal digits. */
10
+ export declare const SteamId64: z.ZodString;
11
+ /**
12
+ * The side a player is on.
13
+ *
14
+ * - `t`: terrorists, a playing side.
15
+ * - `ct`: counter-terrorists, a playing side.
16
+ * - `spec`: spectators and players on no team.
17
+ */
18
+ export declare const Side: z.ZodEnum<{
19
+ t: "t";
20
+ ct: "ct";
21
+ spec: "spec";
22
+ }>;
23
+ export type Side = z.infer<typeof Side>;
24
+ /**
25
+ * A playing side, for a field that never holds `spec`.
26
+ *
27
+ * - `t`: terrorists.
28
+ * - `ct`: counter-terrorists.
29
+ */
30
+ export declare const PlayingSide: z.ZodEnum<{
31
+ t: "t";
32
+ ct: "ct";
33
+ }>;
34
+ export type PlayingSide = z.infer<typeof PlayingSide>;
35
+ /** A team of the {@link Roster}, team 1 or team 2, whichever side it plays. */
36
+ export declare const TeamNumber: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
37
+ export type TeamNumber = z.infer<typeof TeamNumber>;
38
+ /**
39
+ * The id of one map's match, which the controller chooses. A series of maps is a grouping that the
40
+ * controller keeps. The id is a lowercase UUID, because demo file names carry it and case matters
41
+ * there.
42
+ */
43
+ export declare const MatchId: z.ZodUUID;
44
+ /**
45
+ * Why a round ended, as the engine names it. When the engine gives a reason that this list does not
46
+ * name, the plugin sends `unknown`.
47
+ */
48
+ export declare const RoundEndReason: z.ZodEnum<{
49
+ readonly unknown: "unknown";
50
+ /** The bomb exploded. */
51
+ readonly target_bombed: "target_bombed";
52
+ readonly terrorists_escaped: "terrorists_escaped";
53
+ readonly cts_prevent_escape: "cts_prevent_escape";
54
+ readonly escaping_terrorists_neutralized: "escaping_terrorists_neutralized";
55
+ /** The bomb was defused. */
56
+ readonly bomb_defused: "bomb_defused";
57
+ /** Every T was killed. */
58
+ readonly cts_win: "cts_win";
59
+ /** Every CT was killed. */
60
+ readonly terrorists_win: "terrorists_win";
61
+ readonly round_draw: "round_draw";
62
+ readonly all_hostages_rescued: "all_hostages_rescued";
63
+ /** Time ran out without the bomb planted. */
64
+ readonly target_saved: "target_saved";
65
+ readonly hostages_not_rescued: "hostages_not_rescued";
66
+ readonly terrorists_not_escaped: "terrorists_not_escaped";
67
+ readonly game_commencing: "game_commencing";
68
+ /** The Ts voted to surrender. The map ends after this round. */
69
+ readonly terrorists_surrender: "terrorists_surrender";
70
+ /** The CTs voted to surrender. The map ends after this round. */
71
+ readonly cts_surrender: "cts_surrender";
72
+ readonly terrorists_planted: "terrorists_planted";
73
+ readonly cts_reached_hostage: "cts_reached_hostage";
74
+ readonly survival_win: "survival_win";
75
+ readonly survival_draw: "survival_draw";
76
+ }>;
77
+ export type RoundEndReason = z.infer<typeof RoundEndReason>;
78
+ /** Spectator slots on a CS2 server, for casters and anyone else who watches from the server. */
79
+ export declare const MAX_SPECTATORS = 2;
80
+ /** Players that a CS2 server holds. The players and spectators of a roster fit in it together. */
81
+ export declare const MAX_SERVER_PLAYERS = 64;
82
+ /** Characters in the longest team name. */
83
+ export declare const MAX_TEAM_NAME_LENGTH = 30;
84
+ /**
85
+ * The most rounds that `mp_maxrounds` can set for a match, ten times the stock 24. A launch that
86
+ * asks for more fails validation.
87
+ */
88
+ export declare const MAX_ROUNDS = 240;
89
+ /** A one-based round number. A map's history holds far fewer than the 1000 it allows. */
90
+ export declare const RoundNumber: z.ZodNumber;
91
+ /** The most health or armor that a player can have, ten times the stock 100. */
92
+ export declare const MAX_HEALTH = 1000;
93
+ /**
94
+ * The most damage that one hit reports, equal to {@link MAX_HEALTH}, so only overkill past that is
95
+ * cut.
96
+ */
97
+ export declare const MAX_DAMAGE = 1000;
98
+ /** Characters in the longest player name. Steam allows 32, which UTF-16 writes in at most 64. */
99
+ export declare const MAX_PLAYER_NAME_CHARS = 64;
100
+ /**
101
+ * A player's name, cut to up to {@link MAX_PLAYER_NAME_CHARS} characters, without control
102
+ * characters. Rejected when it holds a lone UTF-16 surrogate.
103
+ */
104
+ export declare const PlayerName: z.ZodString;
105
+ /** Characters in the longest version string that {@link MapStart | map_start} carries. */
106
+ export declare const MAX_VERSION_CHARS = 128;
107
+ /** Characters in the longest `reason` of a {@link PlayerDisconnect | player_disconnect}. */
108
+ export declare const MAX_DISCONNECT_REASON_CHARS = 64;
109
+ /** Characters in the longest `message` of a {@link PluginLog | log}. */
110
+ export declare const MAX_LOG_MESSAGE_CHARS = 8192;
111
+ /**
112
+ * The most shots that one player fires in a round, over all their weapons. It is about ten times
113
+ * the most ammunition that a stock weapon carries, the Negev's 450. A
114
+ * {@link RoundShots | round_shots} with more fails validation, so the plugin counts no more.
115
+ */
116
+ export declare const MAX_ROUND_SHOTS = 4096;
117
+ /** One team of a {@link Roster}. */
118
+ export declare const RosterTeam: z.ZodObject<{
119
+ name: z.ZodString;
120
+ players: z.ZodArray<z.ZodString>;
121
+ }, z.core.$strip>;
122
+ export type RosterTeam = z.infer<typeof RosterTeam>;
123
+ /**
124
+ * The teams and spectators of a match. Each player holds one place on the server, whichever team or
125
+ * list the player is in.
126
+ *
127
+ * Rejected when a SteamID appears twice across both teams and `spectators`, or when they hold more
128
+ * than {@link MAX_SERVER_PLAYERS} together.
129
+ */
130
+ export declare const Roster: z.ZodObject<{
131
+ team1: z.ZodObject<{
132
+ name: z.ZodString;
133
+ players: z.ZodArray<z.ZodString>;
134
+ }, z.core.$strip>;
135
+ team2: z.ZodObject<{
136
+ name: z.ZodString;
137
+ players: z.ZodArray<z.ZodString>;
138
+ }, z.core.$strip>;
139
+ spectators: z.ZodArray<z.ZodString>;
140
+ }, z.core.$strip>;
141
+ export type Roster = z.infer<typeof Roster>;
142
+ /** A player as the event saw them. */
143
+ declare const PlayerRef: z.ZodObject<{
144
+ steam_id: z.ZodString;
145
+ name: z.ZodString;
146
+ side: z.ZodEnum<{
147
+ t: "t";
148
+ ct: "ct";
149
+ spec: "spec";
150
+ }>;
151
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
152
+ }, z.core.$strip>;
153
+ export type PlayerRef = z.infer<typeof PlayerRef>;
154
+ /** A point in the world, in engine units. */
155
+ export declare const WorldPos: z.ZodObject<{
156
+ x: z.ZodNumber;
157
+ y: z.ZodNumber;
158
+ z: z.ZodNumber;
159
+ }, z.core.$strip>;
160
+ export type WorldPos = z.infer<typeof WorldPos>;
161
+ /** Where a player stood, as a {@link WorldPos}, and where the player looked. */
162
+ export declare const PlayerPosition: z.ZodObject<{
163
+ x: z.ZodNumber;
164
+ y: z.ZodNumber;
165
+ z: z.ZodNumber;
166
+ pitch: z.ZodNumber;
167
+ yaw: z.ZodNumber;
168
+ }, z.core.$strip>;
169
+ export type PlayerPosition = z.infer<typeof PlayerPosition>;
170
+ /** A {@link PlayerRef} with the position of the player when the event happened. */
171
+ declare const PlayerAt: z.ZodObject<{
172
+ steam_id: z.ZodString;
173
+ name: z.ZodString;
174
+ side: z.ZodEnum<{
175
+ t: "t";
176
+ ct: "ct";
177
+ spec: "spec";
178
+ }>;
179
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
180
+ position: z.ZodNullable<z.ZodObject<{
181
+ x: z.ZodNumber;
182
+ y: z.ZodNumber;
183
+ z: z.ZodNumber;
184
+ pitch: z.ZodNumber;
185
+ yaw: z.ZodNumber;
186
+ }, z.core.$strip>>;
187
+ }, z.core.$strip>;
188
+ export type PlayerAt = z.infer<typeof PlayerAt>;
189
+ /**
190
+ * A {@link PlayerRef} with the position of the player, for a player who acted in the world when the
191
+ * event happened, so the position is always known.
192
+ */
193
+ declare const PlacedPlayer: z.ZodObject<{
194
+ steam_id: z.ZodString;
195
+ name: z.ZodString;
196
+ side: z.ZodEnum<{
197
+ t: "t";
198
+ ct: "ct";
199
+ spec: "spec";
200
+ }>;
201
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
202
+ position: z.ZodObject<{
203
+ x: z.ZodNumber;
204
+ y: z.ZodNumber;
205
+ z: z.ZodNumber;
206
+ pitch: z.ZodNumber;
207
+ yaw: z.ZodNumber;
208
+ }, z.core.$strip>;
209
+ }, z.core.$strip>;
210
+ export type PlacedPlayer = z.infer<typeof PlacedPlayer>;
211
+ /**
212
+ * Sent when a map has loaded on the server, as the first event of the map's history.
213
+ *
214
+ * The plugin sends one on every load. A workshop map loads twice, and an admin's `changelevel`
215
+ * loads another map.
216
+ */
217
+ export declare const MapStart: z.ZodObject<{
218
+ plugin_version: z.ZodString;
219
+ framework_version: z.ZodString;
220
+ server_version: z.ZodString;
221
+ map_name: z.ZodString;
222
+ timestamp: z.ZodNumber;
223
+ tick: z.ZodNumber;
224
+ type: z.ZodLiteral<"map_start">;
225
+ }, z.core.$strip>;
226
+ /**
227
+ * Sent when a player connects after the match leaves warmup.
228
+ * {@link ControllerGetServerStatus | get_server_status} lists who is on the server during warmup.
229
+ */
230
+ export declare const PlayerConnect: z.ZodObject<{
231
+ player: z.ZodObject<{
232
+ steam_id: z.ZodString;
233
+ name: z.ZodString;
234
+ side: z.ZodEnum<{
235
+ t: "t";
236
+ ct: "ct";
237
+ spec: "spec";
238
+ }>;
239
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
240
+ }, z.core.$strip>;
241
+ rejected: z.ZodBoolean;
242
+ timestamp: z.ZodNumber;
243
+ tick: z.ZodNumber;
244
+ type: z.ZodLiteral<"player_connect">;
245
+ }, z.core.$strip>;
246
+ /** Sent when a player leaves after the match leaves warmup. */
247
+ export declare const PlayerDisconnect: z.ZodObject<{
248
+ player: z.ZodObject<{
249
+ steam_id: z.ZodString;
250
+ name: z.ZodString;
251
+ side: z.ZodEnum<{
252
+ t: "t";
253
+ ct: "ct";
254
+ spec: "spec";
255
+ }>;
256
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
257
+ }, z.core.$strip>;
258
+ reason: z.ZodString;
259
+ timestamp: z.ZodNumber;
260
+ tick: z.ZodNumber;
261
+ type: z.ZodLiteral<"player_disconnect">;
262
+ }, z.core.$strip>;
263
+ /** Sent when the knife round begins. */
264
+ export declare const KnifeStart: z.ZodObject<{
265
+ timestamp: z.ZodNumber;
266
+ tick: z.ZodNumber;
267
+ type: z.ZodLiteral<"knife_start">;
268
+ }, z.core.$strip>;
269
+ /**
270
+ * Sent when the knife round ends. When both teams survive, the counts in this event decide the
271
+ * winner.
272
+ *
273
+ * Rejected when a team's health is above {@link MAX_HEALTH} times its players alive.
274
+ */
275
+ export declare const KnifeEnd: z.ZodObject<{
276
+ winner_team: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
277
+ winner_side: z.ZodEnum<{
278
+ t: "t";
279
+ ct: "ct";
280
+ }>;
281
+ team1_alive: z.ZodNumber;
282
+ team2_alive: z.ZodNumber;
283
+ team1_health: z.ZodNumber;
284
+ team2_health: z.ZodNumber;
285
+ timestamp: z.ZodNumber;
286
+ tick: z.ZodNumber;
287
+ type: z.ZodLiteral<"knife_end">;
288
+ }, z.core.$strip>;
289
+ /** Sent when the knife round winners choose a side, or run out of time and stay. */
290
+ export declare const SideChoice: z.ZodObject<{
291
+ team: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
292
+ choice: z.ZodEnum<{
293
+ stay: "stay";
294
+ swap: "swap";
295
+ }>;
296
+ team1_side: z.ZodEnum<{
297
+ t: "t";
298
+ ct: "ct";
299
+ }>;
300
+ timestamp: z.ZodNumber;
301
+ tick: z.ZodNumber;
302
+ type: z.ZodLiteral<"side_choice">;
303
+ }, z.core.$strip>;
304
+ /**
305
+ * The rules of a match, as a launch asks for them and as {@link GoingLive | going_live} and
306
+ * {@link RoundBackup | round_backup} report the server playing them.
307
+ *
308
+ * The plugin reads the round settings off the server's cvars. `friendly_fire` comes from the
309
+ * launch, and Ankor applies it through the damage reductions instead of `mp_friendlyfire`.
310
+ */
311
+ export declare const MatchRules: z.ZodObject<{
312
+ max_rounds: z.ZodNumber;
313
+ overtime: z.ZodBoolean;
314
+ overtime_max_rounds: z.ZodNumber;
315
+ friendly_fire: z.ZodBoolean;
316
+ }, z.core.$strip>;
317
+ export type MatchRules = z.infer<typeof MatchRules>;
318
+ /** Sent when the match goes live, with the round settings that it plays under. */
319
+ export declare const GoingLive: z.ZodObject<{
320
+ max_rounds: z.ZodNumber;
321
+ overtime: z.ZodBoolean;
322
+ overtime_max_rounds: z.ZodNumber;
323
+ friendly_fire: z.ZodBoolean;
324
+ team1_side: z.ZodEnum<{
325
+ t: "t";
326
+ ct: "ct";
327
+ }>;
328
+ timestamp: z.ZodNumber;
329
+ tick: z.ZodNumber;
330
+ type: z.ZodLiteral<"going_live">;
331
+ }, z.core.$strip>;
332
+ /**
333
+ * Characters in the longest backup file that a {@link RoundBackup | round_backup} carries. A 5v5
334
+ * that runs to 40 rounds writes a file of up to a few hundred KB, and tabs and quotes make it about
335
+ * 1.4 times that as JSON.
336
+ */
337
+ export declare const MAX_BACKUP_FILE_CHARS: number;
338
+ /**
339
+ * What a server needs to play on from the backup of a live round. That is the engine's backup file,
340
+ * which holds the round, the scores and the money and equipment of every player, and the two things
341
+ * that the file does not hold.
342
+ *
343
+ * A launch carries one as `match.restore`.
344
+ */
345
+ export declare const RestoreFile: z.ZodObject<{
346
+ team1_side: z.ZodEnum<{
347
+ t: "t";
348
+ ct: "ct";
349
+ }>;
350
+ rules: z.ZodObject<{
351
+ max_rounds: z.ZodNumber;
352
+ overtime: z.ZodBoolean;
353
+ overtime_max_rounds: z.ZodNumber;
354
+ friendly_fire: z.ZodBoolean;
355
+ }, z.core.$strip>;
356
+ file: z.ZodString;
357
+ }, z.core.$strip>;
358
+ export type RestoreFile = z.infer<typeof RestoreFile>;
359
+ /**
360
+ * A live round as it started. It holds the {@link RestoreFile} of the round and where the round
361
+ * stands in the match, both read off the engine.
362
+ */
363
+ export declare const RestorePoint: z.ZodObject<{
364
+ team1_side: z.ZodEnum<{
365
+ t: "t";
366
+ ct: "ct";
367
+ }>;
368
+ rules: z.ZodObject<{
369
+ max_rounds: z.ZodNumber;
370
+ overtime: z.ZodBoolean;
371
+ overtime_max_rounds: z.ZodNumber;
372
+ friendly_fire: z.ZodBoolean;
373
+ }, z.core.$strip>;
374
+ file: z.ZodString;
375
+ round: z.ZodNumber;
376
+ team1_score: z.ZodNumber;
377
+ team2_score: z.ZodNumber;
378
+ }, z.core.$strip>;
379
+ export type RestorePoint = z.infer<typeof RestorePoint>;
380
+ /**
381
+ * Sent when the server has loaded a round backup, from the `restore` of its launch, from a
382
+ * {@link ControllerRestoreRound | restore_round}, or from an `mp_backup_restore_load_file` that someone
383
+ * ran by hand.
384
+ *
385
+ * The {@link RoundStart | round_start} that follows plays `round` again. From that
386
+ * {@link RoundStart | round_start} on, the events of the server replace everything that it sent
387
+ * for that round and the rounds after it.
388
+ *
389
+ * The plugin reads the scores and the side from the engine once the engine has loaded the file. The
390
+ * plugin refuses a load during the knife round, the side choice, the halftime break and after the
391
+ * match has ended.
392
+ */
393
+ export declare const MatchRestored: z.ZodObject<{
394
+ round: z.ZodNumber;
395
+ team1_side: z.ZodEnum<{
396
+ t: "t";
397
+ ct: "ct";
398
+ }>;
399
+ team1_score: z.ZodNumber;
400
+ team2_score: z.ZodNumber;
401
+ timestamp: z.ZodNumber;
402
+ tick: z.ZodNumber;
403
+ type: z.ZodLiteral<"match_restored">;
404
+ }, z.core.$strip>;
405
+ export type MatchRestored = z.infer<typeof MatchRestored>;
406
+ /**
407
+ * Sent as each live round starts. The newest one of a map, with the launch of that map, holds
408
+ * everything that a restore needs on another node.
409
+ */
410
+ export declare const RoundBackup: z.ZodObject<{
411
+ roster: z.ZodObject<{
412
+ team1: z.ZodObject<{
413
+ name: z.ZodString;
414
+ players: z.ZodArray<z.ZodString>;
415
+ }, z.core.$strip>;
416
+ team2: z.ZodObject<{
417
+ name: z.ZodString;
418
+ players: z.ZodArray<z.ZodString>;
419
+ }, z.core.$strip>;
420
+ spectators: z.ZodArray<z.ZodString>;
421
+ }, z.core.$strip>;
422
+ team1_side: z.ZodEnum<{
423
+ t: "t";
424
+ ct: "ct";
425
+ }>;
426
+ rules: z.ZodObject<{
427
+ max_rounds: z.ZodNumber;
428
+ overtime: z.ZodBoolean;
429
+ overtime_max_rounds: z.ZodNumber;
430
+ friendly_fire: z.ZodBoolean;
431
+ }, z.core.$strip>;
432
+ file: z.ZodString;
433
+ round: z.ZodNumber;
434
+ team1_score: z.ZodNumber;
435
+ team2_score: z.ZodNumber;
436
+ timestamp: z.ZodNumber;
437
+ tick: z.ZodNumber;
438
+ type: z.ZodLiteral<"round_backup">;
439
+ }, z.core.$strip>;
440
+ /**
441
+ * A weapon, by the engine's item definition index or, for an item without one, the engine's class
442
+ * name. Rejected when `id` is a number and `fallback` is not null.
443
+ */
444
+ export declare const Weapon: z.ZodObject<{
445
+ id: z.ZodNullable<z.ZodNumber>;
446
+ fallback: z.ZodNullable<z.ZodString>;
447
+ }, z.core.$strip>;
448
+ export type Weapon = z.infer<typeof Weapon>;
449
+ /**
450
+ * One kind of item that a player holds: the engine's item definition index as `weapon`, a quantity,
451
+ * and the unit price in this game build.
452
+ */
453
+ export declare const InventoryItem: z.ZodObject<{
454
+ weapon: z.ZodNumber;
455
+ quantity: z.ZodNumber;
456
+ unit_value: z.ZodNumber;
457
+ }, z.core.$strip>;
458
+ /** What a player carries. A null inventory means that the plugin could not read the pawn. */
459
+ export declare const PlayerInventory: z.ZodObject<{
460
+ items: z.ZodArray<z.ZodObject<{
461
+ weapon: z.ZodNumber;
462
+ quantity: z.ZodNumber;
463
+ unit_value: z.ZodNumber;
464
+ }, z.core.$strip>>;
465
+ armor: z.ZodNumber;
466
+ helmet: z.ZodBoolean;
467
+ defuse_kit: z.ZodBoolean;
468
+ }, z.core.$strip>;
469
+ /**
470
+ * Sent when a round begins.
471
+ *
472
+ * The same round can begin again with no {@link RoundEnd | round_end} between. The engine restarts
473
+ * a round that a team leaves before it is decided, as when every player on it disconnects or loses
474
+ * their connection. The later `round_start` replaces the earlier one, and the round is played
475
+ * from it.
476
+ */
477
+ export declare const RoundStart: z.ZodObject<{
478
+ team1_side: z.ZodEnum<{
479
+ t: "t";
480
+ ct: "ct";
481
+ }>;
482
+ players: z.ZodArray<z.ZodObject<{
483
+ player: z.ZodObject<{
484
+ steam_id: z.ZodString;
485
+ name: z.ZodString;
486
+ side: z.ZodEnum<{
487
+ t: "t";
488
+ ct: "ct";
489
+ spec: "spec";
490
+ }>;
491
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
492
+ }, z.core.$strip>;
493
+ alive: z.ZodBoolean;
494
+ equipment_value: z.ZodNumber;
495
+ cash: z.ZodNumber;
496
+ start_cash: z.ZodNumber;
497
+ cash_spent: z.ZodNumber;
498
+ }, z.core.$strip>>;
499
+ carryover: z.ZodNullable<z.ZodObject<{
500
+ from_round: z.ZodNumber;
501
+ sampled_tick: z.ZodNumber;
502
+ players: z.ZodArray<z.ZodObject<{
503
+ player: z.ZodObject<{
504
+ steam_id: z.ZodString;
505
+ name: z.ZodString;
506
+ side: z.ZodEnum<{
507
+ t: "t";
508
+ ct: "ct";
509
+ spec: "spec";
510
+ }>;
511
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
512
+ }, z.core.$strip>;
513
+ alive: z.ZodBoolean;
514
+ equipment_value: z.ZodNumber;
515
+ cash: z.ZodNumber;
516
+ start_cash: z.ZodNumber;
517
+ cash_spent: z.ZodNumber;
518
+ inventory: z.ZodNullable<z.ZodObject<{
519
+ items: z.ZodArray<z.ZodObject<{
520
+ weapon: z.ZodNumber;
521
+ quantity: z.ZodNumber;
522
+ unit_value: z.ZodNumber;
523
+ }, z.core.$strip>>;
524
+ armor: z.ZodNumber;
525
+ helmet: z.ZodBoolean;
526
+ defuse_kit: z.ZodBoolean;
527
+ }, z.core.$strip>>;
528
+ }, z.core.$strip>>;
529
+ }, z.core.$strip>>;
530
+ round: z.ZodNumber;
531
+ round_time: z.ZodNumber;
532
+ timestamp: z.ZodNumber;
533
+ tick: z.ZodNumber;
534
+ type: z.ZodLiteral<"round_start">;
535
+ }, z.core.$strip>;
536
+ /**
537
+ * Sent when freeze time ends, as the authoritative list of the players who take part in the round
538
+ * after reconnects during freeze time.
539
+ */
540
+ export declare const RoundFreezeEnd: z.ZodObject<{
541
+ team1_side: z.ZodEnum<{
542
+ t: "t";
543
+ ct: "ct";
544
+ }>;
545
+ players: z.ZodArray<z.ZodObject<{
546
+ player: z.ZodObject<{
547
+ steam_id: z.ZodString;
548
+ name: z.ZodString;
549
+ side: z.ZodEnum<{
550
+ t: "t";
551
+ ct: "ct";
552
+ spec: "spec";
553
+ }>;
554
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
555
+ }, z.core.$strip>;
556
+ alive: z.ZodBoolean;
557
+ equipment_value: z.ZodNumber;
558
+ cash: z.ZodNumber;
559
+ start_cash: z.ZodNumber;
560
+ cash_spent: z.ZodNumber;
561
+ }, z.core.$strip>>;
562
+ round: z.ZodNumber;
563
+ round_time: z.ZodNumber;
564
+ timestamp: z.ZodNumber;
565
+ tick: z.ZodNumber;
566
+ type: z.ZodLiteral<"round_freeze_end">;
567
+ }, z.core.$strip>;
568
+ /**
569
+ * Sent when buy time closes, `mp_buytime` after freeze time ends, with the equipment value that
570
+ * each roster team carried, as the sum of the engine's figure for each pawn.
571
+ *
572
+ * The plugin reads a player at the last buy-zone exit inside the window, or live at the close while
573
+ * the player is still in a buy zone. Snapshots at a death or disconnect keep a buy that was made
574
+ * before the window closes. An earlier buy-zone exit counts for a player who never returned.
575
+ *
576
+ * Rejected unless `team1_equipment_value` and `team2_equipment_value` are each the sum of
577
+ * `equipment_value` over the `players` whose `player.team` is that team.
578
+ */
579
+ export declare const RoundBuyEnd: z.ZodObject<{
580
+ players: z.ZodArray<z.ZodObject<{
581
+ player: z.ZodObject<{
582
+ steam_id: z.ZodString;
583
+ name: z.ZodString;
584
+ side: z.ZodEnum<{
585
+ t: "t";
586
+ ct: "ct";
587
+ spec: "spec";
588
+ }>;
589
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
590
+ }, z.core.$strip>;
591
+ equipment_value: z.ZodNumber;
592
+ cash: z.ZodNumber;
593
+ start_cash: z.ZodNumber;
594
+ cash_spent: z.ZodNumber;
595
+ sampled_tick: z.ZodNumber;
596
+ }, z.core.$strip>>;
597
+ team1_equipment_value: z.ZodNumber;
598
+ team2_equipment_value: z.ZodNumber;
599
+ round: z.ZodNumber;
600
+ round_time: z.ZodNumber;
601
+ timestamp: z.ZodNumber;
602
+ tick: z.ZodNumber;
603
+ type: z.ZodLiteral<"round_buy_end">;
604
+ }, z.core.$strip>;
605
+ /**
606
+ * Sent when a round is decided. The last gameplay reports of the round may still follow, and
607
+ * {@link RoundComplete | round_complete} closes it.
608
+ */
609
+ export declare const RoundEnd: z.ZodObject<{
610
+ winner_side: z.ZodEnum<{
611
+ t: "t";
612
+ ct: "ct";
613
+ }>;
614
+ winner_team: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
615
+ reason: z.ZodEnum<{
616
+ readonly unknown: "unknown";
617
+ /** The bomb exploded. */
618
+ readonly target_bombed: "target_bombed";
619
+ readonly terrorists_escaped: "terrorists_escaped";
620
+ readonly cts_prevent_escape: "cts_prevent_escape";
621
+ readonly escaping_terrorists_neutralized: "escaping_terrorists_neutralized";
622
+ /** The bomb was defused. */
623
+ readonly bomb_defused: "bomb_defused";
624
+ /** Every T was killed. */
625
+ readonly cts_win: "cts_win";
626
+ /** Every CT was killed. */
627
+ readonly terrorists_win: "terrorists_win";
628
+ readonly round_draw: "round_draw";
629
+ readonly all_hostages_rescued: "all_hostages_rescued";
630
+ /** Time ran out without the bomb planted. */
631
+ readonly target_saved: "target_saved";
632
+ readonly hostages_not_rescued: "hostages_not_rescued";
633
+ readonly terrorists_not_escaped: "terrorists_not_escaped";
634
+ readonly game_commencing: "game_commencing";
635
+ /** The Ts voted to surrender. The map ends after this round. */
636
+ readonly terrorists_surrender: "terrorists_surrender";
637
+ /** The CTs voted to surrender. The map ends after this round. */
638
+ readonly cts_surrender: "cts_surrender";
639
+ readonly terrorists_planted: "terrorists_planted";
640
+ readonly cts_reached_hostage: "cts_reached_hostage";
641
+ readonly survival_win: "survival_win";
642
+ readonly survival_draw: "survival_draw";
643
+ }>;
644
+ team1_score: z.ZodNumber;
645
+ team2_score: z.ZodNumber;
646
+ round_length: z.ZodNumber;
647
+ round: z.ZodNumber;
648
+ round_time: z.ZodNumber;
649
+ timestamp: z.ZodNumber;
650
+ tick: z.ZodNumber;
651
+ type: z.ZodLiteral<"round_end">;
652
+ }, z.core.$strip>;
653
+ /**
654
+ * Sent after every gameplay report of a scored round, its {@link RoundShots | round_shots}
655
+ * included, before the next round or the map end.
656
+ */
657
+ export declare const RoundComplete: z.ZodObject<{
658
+ round: z.ZodNumber;
659
+ round_time: z.ZodNumber;
660
+ timestamp: z.ZodNumber;
661
+ tick: z.ZodNumber;
662
+ type: z.ZodLiteral<"round_complete">;
663
+ }, z.core.$strip>;
664
+ /**
665
+ * What caused damage or a death.
666
+ *
667
+ * - `player`: another player dealt it, with a weapon or a grenade.
668
+ * - `bomb`: the planted bomb exploded.
669
+ * - `fall`: the victim fell.
670
+ * - `self`: the victim's own grenade or fire.
671
+ * - `disconnect`: the victim left the server, which kills a living player.
672
+ * - `other`: anything else, such as a map's damage trigger or the plugin moving a player to the
673
+ * spectators.
674
+ */
675
+ export declare const DamageCause: z.ZodEnum<{
676
+ player: "player";
677
+ bomb: "bomb";
678
+ fall: "fall";
679
+ self: "self";
680
+ disconnect: "disconnect";
681
+ other: "other";
682
+ }>;
683
+ export type DamageCause = z.infer<typeof DamageCause>;
684
+ /**
685
+ * Sent when a player dies. Rejected when the `assister` has the `steam_id` of the `victim` or the
686
+ * `attacker`.
687
+ */
688
+ export declare const PlayerDeath: z.ZodObject<{
689
+ victim: z.ZodObject<{
690
+ steam_id: z.ZodString;
691
+ name: z.ZodString;
692
+ side: z.ZodEnum<{
693
+ t: "t";
694
+ ct: "ct";
695
+ spec: "spec";
696
+ }>;
697
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
698
+ position: z.ZodObject<{
699
+ x: z.ZodNumber;
700
+ y: z.ZodNumber;
701
+ z: z.ZodNumber;
702
+ pitch: z.ZodNumber;
703
+ yaw: z.ZodNumber;
704
+ }, z.core.$strip>;
705
+ }, z.core.$strip>;
706
+ attacker: z.ZodNullable<z.ZodObject<{
707
+ steam_id: z.ZodString;
708
+ name: z.ZodString;
709
+ side: z.ZodEnum<{
710
+ t: "t";
711
+ ct: "ct";
712
+ spec: "spec";
713
+ }>;
714
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
715
+ position: z.ZodNullable<z.ZodObject<{
716
+ x: z.ZodNumber;
717
+ y: z.ZodNumber;
718
+ z: z.ZodNumber;
719
+ pitch: z.ZodNumber;
720
+ yaw: z.ZodNumber;
721
+ }, z.core.$strip>>;
722
+ }, z.core.$strip>>;
723
+ assister: z.ZodNullable<z.ZodObject<{
724
+ steam_id: z.ZodString;
725
+ name: z.ZodString;
726
+ side: z.ZodEnum<{
727
+ t: "t";
728
+ ct: "ct";
729
+ spec: "spec";
730
+ }>;
731
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
732
+ }, z.core.$strip>>;
733
+ weapon: z.ZodObject<{
734
+ id: z.ZodNullable<z.ZodNumber>;
735
+ fallback: z.ZodNullable<z.ZodString>;
736
+ }, z.core.$strip>;
737
+ cause: z.ZodEnum<{
738
+ player: "player";
739
+ bomb: "bomb";
740
+ fall: "fall";
741
+ self: "self";
742
+ disconnect: "disconnect";
743
+ other: "other";
744
+ }>;
745
+ headshot: z.ZodBoolean;
746
+ penetrated: z.ZodNumber;
747
+ thru_smoke: z.ZodBoolean;
748
+ no_scope: z.ZodBoolean;
749
+ attacker_blind: z.ZodBoolean;
750
+ attacker_in_air: z.ZodBoolean;
751
+ flash_assist: z.ZodBoolean;
752
+ friendly_fire: z.ZodBoolean;
753
+ victim_blind_by: z.ZodNullable<z.ZodObject<{
754
+ steam_id: z.ZodString;
755
+ name: z.ZodString;
756
+ side: z.ZodEnum<{
757
+ t: "t";
758
+ ct: "ct";
759
+ spec: "spec";
760
+ }>;
761
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
762
+ }, z.core.$strip>>;
763
+ victim_blind_remaining: z.ZodNumber;
764
+ victim_equipment_value: z.ZodNumber;
765
+ victim_grenades_held: z.ZodNullable<z.ZodArray<z.ZodObject<{
766
+ weapon: z.ZodNumber;
767
+ quantity: z.ZodNumber;
768
+ unit_value: z.ZodNumber;
769
+ }, z.core.$strip>>>;
770
+ round: z.ZodNumber;
771
+ round_time: z.ZodNumber;
772
+ timestamp: z.ZodNumber;
773
+ tick: z.ZodNumber;
774
+ type: z.ZodLiteral<"player_death">;
775
+ }, z.core.$strip>;
776
+ /**
777
+ * The zero-based id of a grenade within its server, counted in throw order. A server throws far
778
+ * fewer than a million.
779
+ */
780
+ export declare const GrenadeId: z.ZodNumber;
781
+ /**
782
+ * Sent when a player takes damage. Rejected when `health_before` is a number and `health_after` is
783
+ * above it.
784
+ */
785
+ export declare const PlayerHurt: z.ZodObject<{
786
+ victim: z.ZodObject<{
787
+ steam_id: z.ZodString;
788
+ name: z.ZodString;
789
+ side: z.ZodEnum<{
790
+ t: "t";
791
+ ct: "ct";
792
+ spec: "spec";
793
+ }>;
794
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
795
+ position: z.ZodObject<{
796
+ x: z.ZodNumber;
797
+ y: z.ZodNumber;
798
+ z: z.ZodNumber;
799
+ pitch: z.ZodNumber;
800
+ yaw: z.ZodNumber;
801
+ }, z.core.$strip>;
802
+ }, z.core.$strip>;
803
+ attacker: z.ZodNullable<z.ZodObject<{
804
+ steam_id: z.ZodString;
805
+ name: z.ZodString;
806
+ side: z.ZodEnum<{
807
+ t: "t";
808
+ ct: "ct";
809
+ spec: "spec";
810
+ }>;
811
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
812
+ position: z.ZodNullable<z.ZodObject<{
813
+ x: z.ZodNumber;
814
+ y: z.ZodNumber;
815
+ z: z.ZodNumber;
816
+ pitch: z.ZodNumber;
817
+ yaw: z.ZodNumber;
818
+ }, z.core.$strip>>;
819
+ }, z.core.$strip>>;
820
+ weapon: z.ZodObject<{
821
+ id: z.ZodNullable<z.ZodNumber>;
822
+ fallback: z.ZodNullable<z.ZodString>;
823
+ }, z.core.$strip>;
824
+ cause: z.ZodEnum<{
825
+ player: "player";
826
+ bomb: "bomb";
827
+ fall: "fall";
828
+ self: "self";
829
+ disconnect: "disconnect";
830
+ other: "other";
831
+ }>;
832
+ dmg_health: z.ZodNumber;
833
+ health_before: z.ZodNullable<z.ZodNumber>;
834
+ health_after: z.ZodNumber;
835
+ dmg_armor: z.ZodNumber;
836
+ hitgroup: z.ZodNumber;
837
+ friendly_fire: z.ZodBoolean;
838
+ projectile_impact: z.ZodBoolean;
839
+ grenade_id: z.ZodNullable<z.ZodNumber>;
840
+ round: z.ZodNumber;
841
+ round_time: z.ZodNumber;
842
+ timestamp: z.ZodNumber;
843
+ tick: z.ZodNumber;
844
+ type: z.ZodLiteral<"player_hurt">;
845
+ }, z.core.$strip>;
846
+ /** Sent when a flashbang blinds a player. */
847
+ export declare const PlayerBlind: z.ZodObject<{
848
+ victim: z.ZodObject<{
849
+ steam_id: z.ZodString;
850
+ name: z.ZodString;
851
+ side: z.ZodEnum<{
852
+ t: "t";
853
+ ct: "ct";
854
+ spec: "spec";
855
+ }>;
856
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
857
+ position: z.ZodObject<{
858
+ x: z.ZodNumber;
859
+ y: z.ZodNumber;
860
+ z: z.ZodNumber;
861
+ pitch: z.ZodNumber;
862
+ yaw: z.ZodNumber;
863
+ }, z.core.$strip>;
864
+ }, z.core.$strip>;
865
+ attacker: z.ZodObject<{
866
+ steam_id: z.ZodString;
867
+ name: z.ZodString;
868
+ side: z.ZodEnum<{
869
+ t: "t";
870
+ ct: "ct";
871
+ spec: "spec";
872
+ }>;
873
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
874
+ position: z.ZodNullable<z.ZodObject<{
875
+ x: z.ZodNumber;
876
+ y: z.ZodNumber;
877
+ z: z.ZodNumber;
878
+ pitch: z.ZodNumber;
879
+ yaw: z.ZodNumber;
880
+ }, z.core.$strip>>;
881
+ }, z.core.$strip>;
882
+ duration: z.ZodNumber;
883
+ friendly_fire: z.ZodBoolean;
884
+ grenade_id: z.ZodNullable<z.ZodNumber>;
885
+ round: z.ZodNumber;
886
+ round_time: z.ZodNumber;
887
+ timestamp: z.ZodNumber;
888
+ tick: z.ZodNumber;
889
+ type: z.ZodLiteral<"player_blind">;
890
+ }, z.core.$strip>;
891
+ /** The engine class name of a grenade. */
892
+ export declare const GrenadeKind: z.ZodEnum<{
893
+ flashbang: "flashbang";
894
+ hegrenade: "hegrenade";
895
+ smokegrenade: "smokegrenade";
896
+ molotov: "molotov";
897
+ incgrenade: "incgrenade";
898
+ decoy: "decoy";
899
+ }>;
900
+ export type GrenadeKind = z.infer<typeof GrenadeKind>;
901
+ /**
902
+ * How a fire ended.
903
+ *
904
+ * - `expired`: the fire burned out, or the round closed on it.
905
+ * - `extinguished`: a smoke put the fire out.
906
+ * - `smothered`: the fire grenade landed inside a smoke.
907
+ */
908
+ export declare const FireEnd: z.ZodEnum<{
909
+ expired: "expired";
910
+ extinguished: "extinguished";
911
+ smothered: "smothered";
912
+ }>;
913
+ export type FireEnd = z.infer<typeof FireEnd>;
914
+ /**
915
+ * Sent when a grenade leaves a player's hand. Its `grenade_id` identifies the grenade in the events
916
+ * that follow: its {@link GrenadeDetonate | grenade_detonate} and {@link GrenadeEnd | grenade_end},
917
+ * and the {@link PlayerHurt | player_hurt} and {@link PlayerBlind | player_blind} that it causes.
918
+ */
919
+ export declare const GrenadeThrow: z.ZodObject<{
920
+ grenade_id: z.ZodNumber;
921
+ player: z.ZodObject<{
922
+ steam_id: z.ZodString;
923
+ name: z.ZodString;
924
+ side: z.ZodEnum<{
925
+ t: "t";
926
+ ct: "ct";
927
+ spec: "spec";
928
+ }>;
929
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
930
+ position: z.ZodObject<{
931
+ x: z.ZodNumber;
932
+ y: z.ZodNumber;
933
+ z: z.ZodNumber;
934
+ pitch: z.ZodNumber;
935
+ yaw: z.ZodNumber;
936
+ }, z.core.$strip>;
937
+ }, z.core.$strip>;
938
+ grenade: z.ZodEnum<{
939
+ flashbang: "flashbang";
940
+ hegrenade: "hegrenade";
941
+ smokegrenade: "smokegrenade";
942
+ molotov: "molotov";
943
+ incgrenade: "incgrenade";
944
+ decoy: "decoy";
945
+ }>;
946
+ round: z.ZodNumber;
947
+ round_time: z.ZodNumber;
948
+ timestamp: z.ZodNumber;
949
+ tick: z.ZodNumber;
950
+ type: z.ZodLiteral<"grenade_throw">;
951
+ }, z.core.$strip>;
952
+ /**
953
+ * Sent when a grenade detonates or a fire grenade lights. A grenade that is removed before then
954
+ * sends none.
955
+ */
956
+ export declare const GrenadeDetonate: z.ZodObject<{
957
+ grenade_id: z.ZodNumber;
958
+ player: z.ZodObject<{
959
+ steam_id: z.ZodString;
960
+ name: z.ZodString;
961
+ side: z.ZodEnum<{
962
+ t: "t";
963
+ ct: "ct";
964
+ spec: "spec";
965
+ }>;
966
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
967
+ }, z.core.$strip>;
968
+ detonate_pos: z.ZodNullable<z.ZodObject<{
969
+ x: z.ZodNumber;
970
+ y: z.ZodNumber;
971
+ z: z.ZodNumber;
972
+ }, z.core.$strip>>;
973
+ round: z.ZodNumber;
974
+ round_time: z.ZodNumber;
975
+ timestamp: z.ZodNumber;
976
+ tick: z.ZodNumber;
977
+ type: z.ZodLiteral<"grenade_detonate">;
978
+ }, z.core.$strip>;
979
+ /**
980
+ * Sent when the effect of a grenade is over, because its last entity was removed or the round
981
+ * closed or reset on it. Every grenade that sent a {@link GrenadeThrow | grenade_throw} sends one
982
+ * before the {@link RoundComplete | round_complete} of its round. A grenade whose round a restore
983
+ * cut off sends none; the {@link MatchRestored | match_restored} replaces that round.
984
+ */
985
+ export declare const GrenadeEnd: z.ZodObject<{
986
+ round: z.ZodNumber;
987
+ grenade_id: z.ZodNumber;
988
+ player: z.ZodObject<{
989
+ steam_id: z.ZodString;
990
+ name: z.ZodString;
991
+ side: z.ZodEnum<{
992
+ t: "t";
993
+ ct: "ct";
994
+ spec: "spec";
995
+ }>;
996
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
997
+ }, z.core.$strip>;
998
+ end_round_time: z.ZodNumber;
999
+ fire_end: z.ZodNullable<z.ZodEnum<{
1000
+ expired: "expired";
1001
+ extinguished: "extinguished";
1002
+ smothered: "smothered";
1003
+ }>>;
1004
+ extinguished_by: z.ZodNullable<z.ZodNumber>;
1005
+ timestamp: z.ZodNumber;
1006
+ tick: z.ZodNumber;
1007
+ type: z.ZodLiteral<"grenade_end">;
1008
+ }, z.core.$strip>;
1009
+ /**
1010
+ * The shots that a player fired with one weapon over a round. Rejected unless `shots` equals the
1011
+ * number of `ticks`.
1012
+ */
1013
+ export declare const WeaponShots: z.ZodObject<{
1014
+ weapon: z.ZodObject<{
1015
+ id: z.ZodNullable<z.ZodNumber>;
1016
+ fallback: z.ZodNullable<z.ZodString>;
1017
+ }, z.core.$strip>;
1018
+ shots: z.ZodNumber;
1019
+ ticks: z.ZodArray<z.ZodNumber>;
1020
+ }, z.core.$strip>;
1021
+ export type WeaponShots = z.infer<typeof WeaponShots>;
1022
+ /** The shots that one player fired over a round. */
1023
+ export declare const PlayerShots: z.ZodObject<{
1024
+ player: z.ZodObject<{
1025
+ steam_id: z.ZodString;
1026
+ name: z.ZodString;
1027
+ side: z.ZodEnum<{
1028
+ t: "t";
1029
+ ct: "ct";
1030
+ spec: "spec";
1031
+ }>;
1032
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1033
+ }, z.core.$strip>;
1034
+ weapons: z.ZodArray<z.ZodObject<{
1035
+ weapon: z.ZodObject<{
1036
+ id: z.ZodNullable<z.ZodNumber>;
1037
+ fallback: z.ZodNullable<z.ZodString>;
1038
+ }, z.core.$strip>;
1039
+ shots: z.ZodNumber;
1040
+ ticks: z.ZodArray<z.ZodNumber>;
1041
+ }, z.core.$strip>>;
1042
+ }, z.core.$strip>;
1043
+ export type PlayerShots = z.infer<typeof PlayerShots>;
1044
+ /**
1045
+ * Sent once for each round when it closes, at halftime, the next {@link RoundStart | round_start}
1046
+ * or the {@link MapEnd | map_end}, with the shots that each player fired over the round.
1047
+ *
1048
+ * A round that starts again with no {@link RoundEnd | round_end}, as described on
1049
+ * {@link RoundStart | round_start}, sends none for the attempt it abandoned. Neither does a round
1050
+ * that a restore cut off, which the {@link MatchRestored | match_restored} replaces.
1051
+ *
1052
+ * `players` lists each player who fired, and is empty when nobody did. The plugin counts shots
1053
+ * from the engine's `weapon_fire`, up to {@link MAX_ROUND_SHOTS} for each player, and counts no
1054
+ * more. Knives and grenades are left out, because they fire no rounds. A throw arrives as
1055
+ * {@link GrenadeThrow | grenade_throw} instead. Hits are the {@link PlayerHurt | player_hurt}
1056
+ * events of the same round, attacker and weapon.
1057
+ *
1058
+ * Rejected when a player's shots add up to more than {@link MAX_ROUND_SHOTS}, or when a player or a
1059
+ * weapon of a player is listed twice.
1060
+ */
1061
+ export declare const RoundShots: z.ZodObject<{
1062
+ round: z.ZodNumber;
1063
+ players: z.ZodArray<z.ZodObject<{
1064
+ player: z.ZodObject<{
1065
+ steam_id: z.ZodString;
1066
+ name: z.ZodString;
1067
+ side: z.ZodEnum<{
1068
+ t: "t";
1069
+ ct: "ct";
1070
+ spec: "spec";
1071
+ }>;
1072
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1073
+ }, z.core.$strip>;
1074
+ weapons: z.ZodArray<z.ZodObject<{
1075
+ weapon: z.ZodObject<{
1076
+ id: z.ZodNullable<z.ZodNumber>;
1077
+ fallback: z.ZodNullable<z.ZodString>;
1078
+ }, z.core.$strip>;
1079
+ shots: z.ZodNumber;
1080
+ ticks: z.ZodArray<z.ZodNumber>;
1081
+ }, z.core.$strip>>;
1082
+ }, z.core.$strip>>;
1083
+ timestamp: z.ZodNumber;
1084
+ tick: z.ZodNumber;
1085
+ type: z.ZodLiteral<"round_shots">;
1086
+ }, z.core.$strip>;
1087
+ /** Sent when a player begins to plant the bomb. */
1088
+ export declare const BombBeginPlant: z.ZodObject<{
1089
+ player: z.ZodObject<{
1090
+ steam_id: z.ZodString;
1091
+ name: z.ZodString;
1092
+ side: z.ZodEnum<{
1093
+ t: "t";
1094
+ ct: "ct";
1095
+ spec: "spec";
1096
+ }>;
1097
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1098
+ position: z.ZodObject<{
1099
+ x: z.ZodNumber;
1100
+ y: z.ZodNumber;
1101
+ z: z.ZodNumber;
1102
+ pitch: z.ZodNumber;
1103
+ yaw: z.ZodNumber;
1104
+ }, z.core.$strip>;
1105
+ }, z.core.$strip>;
1106
+ site: z.ZodNullable<z.ZodEnum<{
1107
+ a: "a";
1108
+ b: "b";
1109
+ }>>;
1110
+ round: z.ZodNumber;
1111
+ round_time: z.ZodNumber;
1112
+ timestamp: z.ZodNumber;
1113
+ tick: z.ZodNumber;
1114
+ type: z.ZodLiteral<"bomb_begin_plant">;
1115
+ }, z.core.$strip>;
1116
+ /** Sent when a player abandons a plant. */
1117
+ export declare const BombAbortPlant: z.ZodObject<{
1118
+ player: z.ZodObject<{
1119
+ steam_id: z.ZodString;
1120
+ name: z.ZodString;
1121
+ side: z.ZodEnum<{
1122
+ t: "t";
1123
+ ct: "ct";
1124
+ spec: "spec";
1125
+ }>;
1126
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1127
+ position: z.ZodObject<{
1128
+ x: z.ZodNumber;
1129
+ y: z.ZodNumber;
1130
+ z: z.ZodNumber;
1131
+ pitch: z.ZodNumber;
1132
+ yaw: z.ZodNumber;
1133
+ }, z.core.$strip>;
1134
+ }, z.core.$strip>;
1135
+ site: z.ZodNullable<z.ZodEnum<{
1136
+ a: "a";
1137
+ b: "b";
1138
+ }>>;
1139
+ round: z.ZodNumber;
1140
+ round_time: z.ZodNumber;
1141
+ timestamp: z.ZodNumber;
1142
+ tick: z.ZodNumber;
1143
+ type: z.ZodLiteral<"bomb_abort_plant">;
1144
+ }, z.core.$strip>;
1145
+ /** Sent when the bomb is planted. */
1146
+ export declare const BombPlanted: z.ZodObject<{
1147
+ player: z.ZodObject<{
1148
+ steam_id: z.ZodString;
1149
+ name: z.ZodString;
1150
+ side: z.ZodEnum<{
1151
+ t: "t";
1152
+ ct: "ct";
1153
+ spec: "spec";
1154
+ }>;
1155
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1156
+ position: z.ZodObject<{
1157
+ x: z.ZodNumber;
1158
+ y: z.ZodNumber;
1159
+ z: z.ZodNumber;
1160
+ pitch: z.ZodNumber;
1161
+ yaw: z.ZodNumber;
1162
+ }, z.core.$strip>;
1163
+ }, z.core.$strip>;
1164
+ site: z.ZodNullable<z.ZodEnum<{
1165
+ a: "a";
1166
+ b: "b";
1167
+ }>>;
1168
+ round: z.ZodNumber;
1169
+ round_time: z.ZodNumber;
1170
+ timestamp: z.ZodNumber;
1171
+ tick: z.ZodNumber;
1172
+ type: z.ZodLiteral<"bomb_planted">;
1173
+ }, z.core.$strip>;
1174
+ /** Sent when a player begins to defuse the bomb. */
1175
+ export declare const BombBeginDefuse: z.ZodObject<{
1176
+ player: z.ZodObject<{
1177
+ steam_id: z.ZodString;
1178
+ name: z.ZodString;
1179
+ side: z.ZodEnum<{
1180
+ t: "t";
1181
+ ct: "ct";
1182
+ spec: "spec";
1183
+ }>;
1184
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1185
+ position: z.ZodObject<{
1186
+ x: z.ZodNumber;
1187
+ y: z.ZodNumber;
1188
+ z: z.ZodNumber;
1189
+ pitch: z.ZodNumber;
1190
+ yaw: z.ZodNumber;
1191
+ }, z.core.$strip>;
1192
+ }, z.core.$strip>;
1193
+ has_kit: z.ZodBoolean;
1194
+ round: z.ZodNumber;
1195
+ round_time: z.ZodNumber;
1196
+ timestamp: z.ZodNumber;
1197
+ tick: z.ZodNumber;
1198
+ type: z.ZodLiteral<"bomb_begin_defuse">;
1199
+ }, z.core.$strip>;
1200
+ /** Sent when a player abandons a defuse. */
1201
+ export declare const BombAbortDefuse: z.ZodObject<{
1202
+ player: z.ZodObject<{
1203
+ steam_id: z.ZodString;
1204
+ name: z.ZodString;
1205
+ side: z.ZodEnum<{
1206
+ t: "t";
1207
+ ct: "ct";
1208
+ spec: "spec";
1209
+ }>;
1210
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1211
+ position: z.ZodObject<{
1212
+ x: z.ZodNumber;
1213
+ y: z.ZodNumber;
1214
+ z: z.ZodNumber;
1215
+ pitch: z.ZodNumber;
1216
+ yaw: z.ZodNumber;
1217
+ }, z.core.$strip>;
1218
+ }, z.core.$strip>;
1219
+ round: z.ZodNumber;
1220
+ round_time: z.ZodNumber;
1221
+ timestamp: z.ZodNumber;
1222
+ tick: z.ZodNumber;
1223
+ type: z.ZodLiteral<"bomb_abort_defuse">;
1224
+ }, z.core.$strip>;
1225
+ /** Sent when the bomb is defused. */
1226
+ export declare const BombDefused: z.ZodObject<{
1227
+ player: z.ZodObject<{
1228
+ steam_id: z.ZodString;
1229
+ name: z.ZodString;
1230
+ side: z.ZodEnum<{
1231
+ t: "t";
1232
+ ct: "ct";
1233
+ spec: "spec";
1234
+ }>;
1235
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1236
+ position: z.ZodObject<{
1237
+ x: z.ZodNumber;
1238
+ y: z.ZodNumber;
1239
+ z: z.ZodNumber;
1240
+ pitch: z.ZodNumber;
1241
+ yaw: z.ZodNumber;
1242
+ }, z.core.$strip>;
1243
+ }, z.core.$strip>;
1244
+ time_remaining: z.ZodNumber;
1245
+ has_kit: z.ZodBoolean;
1246
+ round: z.ZodNumber;
1247
+ round_time: z.ZodNumber;
1248
+ timestamp: z.ZodNumber;
1249
+ tick: z.ZodNumber;
1250
+ type: z.ZodLiteral<"bomb_defused">;
1251
+ }, z.core.$strip>;
1252
+ /** Sent when the bomb explodes. */
1253
+ export declare const BombExploded: z.ZodObject<{
1254
+ round: z.ZodNumber;
1255
+ round_time: z.ZodNumber;
1256
+ timestamp: z.ZodNumber;
1257
+ tick: z.ZodNumber;
1258
+ type: z.ZodLiteral<"bomb_exploded">;
1259
+ }, z.core.$strip>;
1260
+ /** Sent when the engine names the MVP of a round. */
1261
+ export declare const RoundMvp: z.ZodObject<{
1262
+ player: z.ZodObject<{
1263
+ steam_id: z.ZodString;
1264
+ name: z.ZodString;
1265
+ side: z.ZodEnum<{
1266
+ t: "t";
1267
+ ct: "ct";
1268
+ spec: "spec";
1269
+ }>;
1270
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1271
+ }, z.core.$strip>;
1272
+ reason: z.ZodNumber;
1273
+ round: z.ZodNumber;
1274
+ round_time: z.ZodNumber;
1275
+ timestamp: z.ZodNumber;
1276
+ tick: z.ZodNumber;
1277
+ type: z.ZodLiteral<"round_mvp">;
1278
+ }, z.core.$strip>;
1279
+ /**
1280
+ * Why a map ended:
1281
+ *
1282
+ * - `played`: the map was played out.
1283
+ * - `ready_timeout`: `ready_timeout_seconds` passed in warmup, before the match started.
1284
+ * - `abandoned`: every rostered player left after the match began, in the knife round, the side
1285
+ * choice or live play.
1286
+ *
1287
+ * Only a `played` map has a winner. The controller decides what any other end means for the match.
1288
+ */
1289
+ export declare const MapEndReason: z.ZodEnum<{
1290
+ played: "played";
1291
+ ready_timeout: "ready_timeout";
1292
+ abandoned: "abandoned";
1293
+ }>;
1294
+ export type MapEndReason = z.infer<typeof MapEndReason>;
1295
+ /** A team's players when the ready deadline passed. */
1296
+ export declare const ReadyTeam: z.ZodObject<{
1297
+ connected: z.ZodNumber;
1298
+ ready: z.ZodBoolean;
1299
+ }, z.core.$strip>;
1300
+ export type ReadyTeam = z.infer<typeof ReadyTeam>;
1301
+ /**
1302
+ * Sent when the map is over. After a `played` map, the scoreboard stays up for 60 seconds, then the
1303
+ * server kicks the players, sends its remaining events and quits. After a `ready_timeout`, the
1304
+ * server kicks the players at once.
1305
+ *
1306
+ * Rejected unless `winner_team` is the team with the higher score of a `played` map, or null when
1307
+ * the scores are equal or the map was not played out. Rejected unless `teams` is set for a
1308
+ * `ready_timeout`, with both scores 0, and null otherwise.
1309
+ */
1310
+ export declare const MapEnd: z.ZodObject<{
1311
+ reason: z.ZodEnum<{
1312
+ played: "played";
1313
+ ready_timeout: "ready_timeout";
1314
+ abandoned: "abandoned";
1315
+ }>;
1316
+ winner_team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1317
+ team1_score: z.ZodNumber;
1318
+ team2_score: z.ZodNumber;
1319
+ teams: z.ZodNullable<z.ZodObject<{
1320
+ team1: z.ZodObject<{
1321
+ connected: z.ZodNumber;
1322
+ ready: z.ZodBoolean;
1323
+ }, z.core.$strip>;
1324
+ team2: z.ZodObject<{
1325
+ connected: z.ZodNumber;
1326
+ ready: z.ZodBoolean;
1327
+ }, z.core.$strip>;
1328
+ spectators: z.ZodNullable<z.ZodObject<{
1329
+ connected: z.ZodNumber;
1330
+ ready: z.ZodBoolean;
1331
+ }, z.core.$strip>>;
1332
+ }, z.core.$strip>>;
1333
+ timestamp: z.ZodNumber;
1334
+ tick: z.ZodNumber;
1335
+ type: z.ZodLiteral<"map_end">;
1336
+ }, z.core.$strip>;
1337
+ /** Sent when the plugin logs a line worth keeping with the match. */
1338
+ export declare const PluginLog: z.ZodObject<{
1339
+ level: z.ZodEnum<{
1340
+ error: "error";
1341
+ debug: "debug";
1342
+ info: "info";
1343
+ warn: "warn";
1344
+ }>;
1345
+ message: z.ZodString;
1346
+ timestamp: z.ZodNumber;
1347
+ tick: z.ZodNumber;
1348
+ type: z.ZodLiteral<"log">;
1349
+ }, z.core.$strip>;
1350
+ /** Any gameplay event. */
1351
+ export declare const PluginToControllerMessage: z.ZodDiscriminatedUnion<[z.ZodObject<{
1352
+ plugin_version: z.ZodString;
1353
+ framework_version: z.ZodString;
1354
+ server_version: z.ZodString;
1355
+ map_name: z.ZodString;
1356
+ timestamp: z.ZodNumber;
1357
+ tick: z.ZodNumber;
1358
+ type: z.ZodLiteral<"map_start">;
1359
+ }, z.core.$strip>, z.ZodObject<{
1360
+ player: z.ZodObject<{
1361
+ steam_id: z.ZodString;
1362
+ name: z.ZodString;
1363
+ side: z.ZodEnum<{
1364
+ t: "t";
1365
+ ct: "ct";
1366
+ spec: "spec";
1367
+ }>;
1368
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1369
+ }, z.core.$strip>;
1370
+ rejected: z.ZodBoolean;
1371
+ timestamp: z.ZodNumber;
1372
+ tick: z.ZodNumber;
1373
+ type: z.ZodLiteral<"player_connect">;
1374
+ }, z.core.$strip>, z.ZodObject<{
1375
+ player: z.ZodObject<{
1376
+ steam_id: z.ZodString;
1377
+ name: z.ZodString;
1378
+ side: z.ZodEnum<{
1379
+ t: "t";
1380
+ ct: "ct";
1381
+ spec: "spec";
1382
+ }>;
1383
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1384
+ }, z.core.$strip>;
1385
+ reason: z.ZodString;
1386
+ timestamp: z.ZodNumber;
1387
+ tick: z.ZodNumber;
1388
+ type: z.ZodLiteral<"player_disconnect">;
1389
+ }, z.core.$strip>, z.ZodObject<{
1390
+ timestamp: z.ZodNumber;
1391
+ tick: z.ZodNumber;
1392
+ type: z.ZodLiteral<"knife_start">;
1393
+ }, z.core.$strip>, z.ZodObject<{
1394
+ winner_team: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1395
+ winner_side: z.ZodEnum<{
1396
+ t: "t";
1397
+ ct: "ct";
1398
+ }>;
1399
+ team1_alive: z.ZodNumber;
1400
+ team2_alive: z.ZodNumber;
1401
+ team1_health: z.ZodNumber;
1402
+ team2_health: z.ZodNumber;
1403
+ timestamp: z.ZodNumber;
1404
+ tick: z.ZodNumber;
1405
+ type: z.ZodLiteral<"knife_end">;
1406
+ }, z.core.$strip>, z.ZodObject<{
1407
+ team: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1408
+ choice: z.ZodEnum<{
1409
+ stay: "stay";
1410
+ swap: "swap";
1411
+ }>;
1412
+ team1_side: z.ZodEnum<{
1413
+ t: "t";
1414
+ ct: "ct";
1415
+ }>;
1416
+ timestamp: z.ZodNumber;
1417
+ tick: z.ZodNumber;
1418
+ type: z.ZodLiteral<"side_choice">;
1419
+ }, z.core.$strip>, z.ZodObject<{
1420
+ max_rounds: z.ZodNumber;
1421
+ overtime: z.ZodBoolean;
1422
+ overtime_max_rounds: z.ZodNumber;
1423
+ friendly_fire: z.ZodBoolean;
1424
+ team1_side: z.ZodEnum<{
1425
+ t: "t";
1426
+ ct: "ct";
1427
+ }>;
1428
+ timestamp: z.ZodNumber;
1429
+ tick: z.ZodNumber;
1430
+ type: z.ZodLiteral<"going_live">;
1431
+ }, z.core.$strip>, z.ZodObject<{
1432
+ roster: z.ZodObject<{
1433
+ team1: z.ZodObject<{
1434
+ name: z.ZodString;
1435
+ players: z.ZodArray<z.ZodString>;
1436
+ }, z.core.$strip>;
1437
+ team2: z.ZodObject<{
1438
+ name: z.ZodString;
1439
+ players: z.ZodArray<z.ZodString>;
1440
+ }, z.core.$strip>;
1441
+ spectators: z.ZodArray<z.ZodString>;
1442
+ }, z.core.$strip>;
1443
+ team1_side: z.ZodEnum<{
1444
+ t: "t";
1445
+ ct: "ct";
1446
+ }>;
1447
+ rules: z.ZodObject<{
1448
+ max_rounds: z.ZodNumber;
1449
+ overtime: z.ZodBoolean;
1450
+ overtime_max_rounds: z.ZodNumber;
1451
+ friendly_fire: z.ZodBoolean;
1452
+ }, z.core.$strip>;
1453
+ file: z.ZodString;
1454
+ round: z.ZodNumber;
1455
+ team1_score: z.ZodNumber;
1456
+ team2_score: z.ZodNumber;
1457
+ timestamp: z.ZodNumber;
1458
+ tick: z.ZodNumber;
1459
+ type: z.ZodLiteral<"round_backup">;
1460
+ }, z.core.$strip>, z.ZodObject<{
1461
+ round: z.ZodNumber;
1462
+ team1_side: z.ZodEnum<{
1463
+ t: "t";
1464
+ ct: "ct";
1465
+ }>;
1466
+ team1_score: z.ZodNumber;
1467
+ team2_score: z.ZodNumber;
1468
+ timestamp: z.ZodNumber;
1469
+ tick: z.ZodNumber;
1470
+ type: z.ZodLiteral<"match_restored">;
1471
+ }, z.core.$strip>, z.ZodObject<{
1472
+ team1_side: z.ZodEnum<{
1473
+ t: "t";
1474
+ ct: "ct";
1475
+ }>;
1476
+ players: z.ZodArray<z.ZodObject<{
1477
+ player: z.ZodObject<{
1478
+ steam_id: z.ZodString;
1479
+ name: z.ZodString;
1480
+ side: z.ZodEnum<{
1481
+ t: "t";
1482
+ ct: "ct";
1483
+ spec: "spec";
1484
+ }>;
1485
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1486
+ }, z.core.$strip>;
1487
+ alive: z.ZodBoolean;
1488
+ equipment_value: z.ZodNumber;
1489
+ cash: z.ZodNumber;
1490
+ start_cash: z.ZodNumber;
1491
+ cash_spent: z.ZodNumber;
1492
+ }, z.core.$strip>>;
1493
+ carryover: z.ZodNullable<z.ZodObject<{
1494
+ from_round: z.ZodNumber;
1495
+ sampled_tick: z.ZodNumber;
1496
+ players: z.ZodArray<z.ZodObject<{
1497
+ player: z.ZodObject<{
1498
+ steam_id: z.ZodString;
1499
+ name: z.ZodString;
1500
+ side: z.ZodEnum<{
1501
+ t: "t";
1502
+ ct: "ct";
1503
+ spec: "spec";
1504
+ }>;
1505
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1506
+ }, z.core.$strip>;
1507
+ alive: z.ZodBoolean;
1508
+ equipment_value: z.ZodNumber;
1509
+ cash: z.ZodNumber;
1510
+ start_cash: z.ZodNumber;
1511
+ cash_spent: z.ZodNumber;
1512
+ inventory: z.ZodNullable<z.ZodObject<{
1513
+ items: z.ZodArray<z.ZodObject<{
1514
+ weapon: z.ZodNumber;
1515
+ quantity: z.ZodNumber;
1516
+ unit_value: z.ZodNumber;
1517
+ }, z.core.$strip>>;
1518
+ armor: z.ZodNumber;
1519
+ helmet: z.ZodBoolean;
1520
+ defuse_kit: z.ZodBoolean;
1521
+ }, z.core.$strip>>;
1522
+ }, z.core.$strip>>;
1523
+ }, z.core.$strip>>;
1524
+ round: z.ZodNumber;
1525
+ round_time: z.ZodNumber;
1526
+ timestamp: z.ZodNumber;
1527
+ tick: z.ZodNumber;
1528
+ type: z.ZodLiteral<"round_start">;
1529
+ }, z.core.$strip>, z.ZodObject<{
1530
+ team1_side: z.ZodEnum<{
1531
+ t: "t";
1532
+ ct: "ct";
1533
+ }>;
1534
+ players: z.ZodArray<z.ZodObject<{
1535
+ player: z.ZodObject<{
1536
+ steam_id: z.ZodString;
1537
+ name: z.ZodString;
1538
+ side: z.ZodEnum<{
1539
+ t: "t";
1540
+ ct: "ct";
1541
+ spec: "spec";
1542
+ }>;
1543
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1544
+ }, z.core.$strip>;
1545
+ alive: z.ZodBoolean;
1546
+ equipment_value: z.ZodNumber;
1547
+ cash: z.ZodNumber;
1548
+ start_cash: z.ZodNumber;
1549
+ cash_spent: z.ZodNumber;
1550
+ }, z.core.$strip>>;
1551
+ round: z.ZodNumber;
1552
+ round_time: z.ZodNumber;
1553
+ timestamp: z.ZodNumber;
1554
+ tick: z.ZodNumber;
1555
+ type: z.ZodLiteral<"round_freeze_end">;
1556
+ }, z.core.$strip>, z.ZodObject<{
1557
+ players: z.ZodArray<z.ZodObject<{
1558
+ player: z.ZodObject<{
1559
+ steam_id: z.ZodString;
1560
+ name: z.ZodString;
1561
+ side: z.ZodEnum<{
1562
+ t: "t";
1563
+ ct: "ct";
1564
+ spec: "spec";
1565
+ }>;
1566
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1567
+ }, z.core.$strip>;
1568
+ equipment_value: z.ZodNumber;
1569
+ cash: z.ZodNumber;
1570
+ start_cash: z.ZodNumber;
1571
+ cash_spent: z.ZodNumber;
1572
+ sampled_tick: z.ZodNumber;
1573
+ }, z.core.$strip>>;
1574
+ team1_equipment_value: z.ZodNumber;
1575
+ team2_equipment_value: z.ZodNumber;
1576
+ round: z.ZodNumber;
1577
+ round_time: z.ZodNumber;
1578
+ timestamp: z.ZodNumber;
1579
+ tick: z.ZodNumber;
1580
+ type: z.ZodLiteral<"round_buy_end">;
1581
+ }, z.core.$strip>, z.ZodObject<{
1582
+ winner_side: z.ZodEnum<{
1583
+ t: "t";
1584
+ ct: "ct";
1585
+ }>;
1586
+ winner_team: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1587
+ reason: z.ZodEnum<{
1588
+ readonly unknown: "unknown";
1589
+ /** The bomb exploded. */
1590
+ readonly target_bombed: "target_bombed";
1591
+ readonly terrorists_escaped: "terrorists_escaped";
1592
+ readonly cts_prevent_escape: "cts_prevent_escape";
1593
+ readonly escaping_terrorists_neutralized: "escaping_terrorists_neutralized";
1594
+ /** The bomb was defused. */
1595
+ readonly bomb_defused: "bomb_defused";
1596
+ /** Every T was killed. */
1597
+ readonly cts_win: "cts_win";
1598
+ /** Every CT was killed. */
1599
+ readonly terrorists_win: "terrorists_win";
1600
+ readonly round_draw: "round_draw";
1601
+ readonly all_hostages_rescued: "all_hostages_rescued";
1602
+ /** Time ran out without the bomb planted. */
1603
+ readonly target_saved: "target_saved";
1604
+ readonly hostages_not_rescued: "hostages_not_rescued";
1605
+ readonly terrorists_not_escaped: "terrorists_not_escaped";
1606
+ readonly game_commencing: "game_commencing";
1607
+ /** The Ts voted to surrender. The map ends after this round. */
1608
+ readonly terrorists_surrender: "terrorists_surrender";
1609
+ /** The CTs voted to surrender. The map ends after this round. */
1610
+ readonly cts_surrender: "cts_surrender";
1611
+ readonly terrorists_planted: "terrorists_planted";
1612
+ readonly cts_reached_hostage: "cts_reached_hostage";
1613
+ readonly survival_win: "survival_win";
1614
+ readonly survival_draw: "survival_draw";
1615
+ }>;
1616
+ team1_score: z.ZodNumber;
1617
+ team2_score: z.ZodNumber;
1618
+ round_length: z.ZodNumber;
1619
+ round: z.ZodNumber;
1620
+ round_time: z.ZodNumber;
1621
+ timestamp: z.ZodNumber;
1622
+ tick: z.ZodNumber;
1623
+ type: z.ZodLiteral<"round_end">;
1624
+ }, z.core.$strip>, z.ZodObject<{
1625
+ round: z.ZodNumber;
1626
+ round_time: z.ZodNumber;
1627
+ timestamp: z.ZodNumber;
1628
+ tick: z.ZodNumber;
1629
+ type: z.ZodLiteral<"round_complete">;
1630
+ }, z.core.$strip>, z.ZodObject<{
1631
+ victim: z.ZodObject<{
1632
+ steam_id: z.ZodString;
1633
+ name: z.ZodString;
1634
+ side: z.ZodEnum<{
1635
+ t: "t";
1636
+ ct: "ct";
1637
+ spec: "spec";
1638
+ }>;
1639
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1640
+ position: z.ZodObject<{
1641
+ x: z.ZodNumber;
1642
+ y: z.ZodNumber;
1643
+ z: z.ZodNumber;
1644
+ pitch: z.ZodNumber;
1645
+ yaw: z.ZodNumber;
1646
+ }, z.core.$strip>;
1647
+ }, z.core.$strip>;
1648
+ attacker: z.ZodNullable<z.ZodObject<{
1649
+ steam_id: z.ZodString;
1650
+ name: z.ZodString;
1651
+ side: z.ZodEnum<{
1652
+ t: "t";
1653
+ ct: "ct";
1654
+ spec: "spec";
1655
+ }>;
1656
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1657
+ position: z.ZodNullable<z.ZodObject<{
1658
+ x: z.ZodNumber;
1659
+ y: z.ZodNumber;
1660
+ z: z.ZodNumber;
1661
+ pitch: z.ZodNumber;
1662
+ yaw: z.ZodNumber;
1663
+ }, z.core.$strip>>;
1664
+ }, z.core.$strip>>;
1665
+ assister: z.ZodNullable<z.ZodObject<{
1666
+ steam_id: z.ZodString;
1667
+ name: z.ZodString;
1668
+ side: z.ZodEnum<{
1669
+ t: "t";
1670
+ ct: "ct";
1671
+ spec: "spec";
1672
+ }>;
1673
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1674
+ }, z.core.$strip>>;
1675
+ weapon: z.ZodObject<{
1676
+ id: z.ZodNullable<z.ZodNumber>;
1677
+ fallback: z.ZodNullable<z.ZodString>;
1678
+ }, z.core.$strip>;
1679
+ cause: z.ZodEnum<{
1680
+ player: "player";
1681
+ bomb: "bomb";
1682
+ fall: "fall";
1683
+ self: "self";
1684
+ disconnect: "disconnect";
1685
+ other: "other";
1686
+ }>;
1687
+ headshot: z.ZodBoolean;
1688
+ penetrated: z.ZodNumber;
1689
+ thru_smoke: z.ZodBoolean;
1690
+ no_scope: z.ZodBoolean;
1691
+ attacker_blind: z.ZodBoolean;
1692
+ attacker_in_air: z.ZodBoolean;
1693
+ flash_assist: z.ZodBoolean;
1694
+ friendly_fire: z.ZodBoolean;
1695
+ victim_blind_by: z.ZodNullable<z.ZodObject<{
1696
+ steam_id: z.ZodString;
1697
+ name: z.ZodString;
1698
+ side: z.ZodEnum<{
1699
+ t: "t";
1700
+ ct: "ct";
1701
+ spec: "spec";
1702
+ }>;
1703
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1704
+ }, z.core.$strip>>;
1705
+ victim_blind_remaining: z.ZodNumber;
1706
+ victim_equipment_value: z.ZodNumber;
1707
+ victim_grenades_held: z.ZodNullable<z.ZodArray<z.ZodObject<{
1708
+ weapon: z.ZodNumber;
1709
+ quantity: z.ZodNumber;
1710
+ unit_value: z.ZodNumber;
1711
+ }, z.core.$strip>>>;
1712
+ round: z.ZodNumber;
1713
+ round_time: z.ZodNumber;
1714
+ timestamp: z.ZodNumber;
1715
+ tick: z.ZodNumber;
1716
+ type: z.ZodLiteral<"player_death">;
1717
+ }, z.core.$strip>, z.ZodObject<{
1718
+ victim: z.ZodObject<{
1719
+ steam_id: z.ZodString;
1720
+ name: z.ZodString;
1721
+ side: z.ZodEnum<{
1722
+ t: "t";
1723
+ ct: "ct";
1724
+ spec: "spec";
1725
+ }>;
1726
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1727
+ position: z.ZodObject<{
1728
+ x: z.ZodNumber;
1729
+ y: z.ZodNumber;
1730
+ z: z.ZodNumber;
1731
+ pitch: z.ZodNumber;
1732
+ yaw: z.ZodNumber;
1733
+ }, z.core.$strip>;
1734
+ }, z.core.$strip>;
1735
+ attacker: z.ZodNullable<z.ZodObject<{
1736
+ steam_id: z.ZodString;
1737
+ name: z.ZodString;
1738
+ side: z.ZodEnum<{
1739
+ t: "t";
1740
+ ct: "ct";
1741
+ spec: "spec";
1742
+ }>;
1743
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1744
+ position: z.ZodNullable<z.ZodObject<{
1745
+ x: z.ZodNumber;
1746
+ y: z.ZodNumber;
1747
+ z: z.ZodNumber;
1748
+ pitch: z.ZodNumber;
1749
+ yaw: z.ZodNumber;
1750
+ }, z.core.$strip>>;
1751
+ }, z.core.$strip>>;
1752
+ weapon: z.ZodObject<{
1753
+ id: z.ZodNullable<z.ZodNumber>;
1754
+ fallback: z.ZodNullable<z.ZodString>;
1755
+ }, z.core.$strip>;
1756
+ cause: z.ZodEnum<{
1757
+ player: "player";
1758
+ bomb: "bomb";
1759
+ fall: "fall";
1760
+ self: "self";
1761
+ disconnect: "disconnect";
1762
+ other: "other";
1763
+ }>;
1764
+ dmg_health: z.ZodNumber;
1765
+ health_before: z.ZodNullable<z.ZodNumber>;
1766
+ health_after: z.ZodNumber;
1767
+ dmg_armor: z.ZodNumber;
1768
+ hitgroup: z.ZodNumber;
1769
+ friendly_fire: z.ZodBoolean;
1770
+ projectile_impact: z.ZodBoolean;
1771
+ grenade_id: z.ZodNullable<z.ZodNumber>;
1772
+ round: z.ZodNumber;
1773
+ round_time: z.ZodNumber;
1774
+ timestamp: z.ZodNumber;
1775
+ tick: z.ZodNumber;
1776
+ type: z.ZodLiteral<"player_hurt">;
1777
+ }, z.core.$strip>, z.ZodObject<{
1778
+ victim: z.ZodObject<{
1779
+ steam_id: z.ZodString;
1780
+ name: z.ZodString;
1781
+ side: z.ZodEnum<{
1782
+ t: "t";
1783
+ ct: "ct";
1784
+ spec: "spec";
1785
+ }>;
1786
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1787
+ position: z.ZodObject<{
1788
+ x: z.ZodNumber;
1789
+ y: z.ZodNumber;
1790
+ z: z.ZodNumber;
1791
+ pitch: z.ZodNumber;
1792
+ yaw: z.ZodNumber;
1793
+ }, z.core.$strip>;
1794
+ }, z.core.$strip>;
1795
+ attacker: z.ZodObject<{
1796
+ steam_id: z.ZodString;
1797
+ name: z.ZodString;
1798
+ side: z.ZodEnum<{
1799
+ t: "t";
1800
+ ct: "ct";
1801
+ spec: "spec";
1802
+ }>;
1803
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1804
+ position: z.ZodNullable<z.ZodObject<{
1805
+ x: z.ZodNumber;
1806
+ y: z.ZodNumber;
1807
+ z: z.ZodNumber;
1808
+ pitch: z.ZodNumber;
1809
+ yaw: z.ZodNumber;
1810
+ }, z.core.$strip>>;
1811
+ }, z.core.$strip>;
1812
+ duration: z.ZodNumber;
1813
+ friendly_fire: z.ZodBoolean;
1814
+ grenade_id: z.ZodNullable<z.ZodNumber>;
1815
+ round: z.ZodNumber;
1816
+ round_time: z.ZodNumber;
1817
+ timestamp: z.ZodNumber;
1818
+ tick: z.ZodNumber;
1819
+ type: z.ZodLiteral<"player_blind">;
1820
+ }, z.core.$strip>, z.ZodObject<{
1821
+ grenade_id: z.ZodNumber;
1822
+ player: z.ZodObject<{
1823
+ steam_id: z.ZodString;
1824
+ name: z.ZodString;
1825
+ side: z.ZodEnum<{
1826
+ t: "t";
1827
+ ct: "ct";
1828
+ spec: "spec";
1829
+ }>;
1830
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1831
+ position: z.ZodObject<{
1832
+ x: z.ZodNumber;
1833
+ y: z.ZodNumber;
1834
+ z: z.ZodNumber;
1835
+ pitch: z.ZodNumber;
1836
+ yaw: z.ZodNumber;
1837
+ }, z.core.$strip>;
1838
+ }, z.core.$strip>;
1839
+ grenade: z.ZodEnum<{
1840
+ flashbang: "flashbang";
1841
+ hegrenade: "hegrenade";
1842
+ smokegrenade: "smokegrenade";
1843
+ molotov: "molotov";
1844
+ incgrenade: "incgrenade";
1845
+ decoy: "decoy";
1846
+ }>;
1847
+ round: z.ZodNumber;
1848
+ round_time: z.ZodNumber;
1849
+ timestamp: z.ZodNumber;
1850
+ tick: z.ZodNumber;
1851
+ type: z.ZodLiteral<"grenade_throw">;
1852
+ }, z.core.$strip>, z.ZodObject<{
1853
+ grenade_id: z.ZodNumber;
1854
+ player: z.ZodObject<{
1855
+ steam_id: z.ZodString;
1856
+ name: z.ZodString;
1857
+ side: z.ZodEnum<{
1858
+ t: "t";
1859
+ ct: "ct";
1860
+ spec: "spec";
1861
+ }>;
1862
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1863
+ }, z.core.$strip>;
1864
+ detonate_pos: z.ZodNullable<z.ZodObject<{
1865
+ x: z.ZodNumber;
1866
+ y: z.ZodNumber;
1867
+ z: z.ZodNumber;
1868
+ }, z.core.$strip>>;
1869
+ round: z.ZodNumber;
1870
+ round_time: z.ZodNumber;
1871
+ timestamp: z.ZodNumber;
1872
+ tick: z.ZodNumber;
1873
+ type: z.ZodLiteral<"grenade_detonate">;
1874
+ }, z.core.$strip>, z.ZodObject<{
1875
+ round: z.ZodNumber;
1876
+ grenade_id: z.ZodNumber;
1877
+ player: z.ZodObject<{
1878
+ steam_id: z.ZodString;
1879
+ name: z.ZodString;
1880
+ side: z.ZodEnum<{
1881
+ t: "t";
1882
+ ct: "ct";
1883
+ spec: "spec";
1884
+ }>;
1885
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1886
+ }, z.core.$strip>;
1887
+ end_round_time: z.ZodNumber;
1888
+ fire_end: z.ZodNullable<z.ZodEnum<{
1889
+ expired: "expired";
1890
+ extinguished: "extinguished";
1891
+ smothered: "smothered";
1892
+ }>>;
1893
+ extinguished_by: z.ZodNullable<z.ZodNumber>;
1894
+ timestamp: z.ZodNumber;
1895
+ tick: z.ZodNumber;
1896
+ type: z.ZodLiteral<"grenade_end">;
1897
+ }, z.core.$strip>, z.ZodObject<{
1898
+ round: z.ZodNumber;
1899
+ players: z.ZodArray<z.ZodObject<{
1900
+ player: z.ZodObject<{
1901
+ steam_id: z.ZodString;
1902
+ name: z.ZodString;
1903
+ side: z.ZodEnum<{
1904
+ t: "t";
1905
+ ct: "ct";
1906
+ spec: "spec";
1907
+ }>;
1908
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1909
+ }, z.core.$strip>;
1910
+ weapons: z.ZodArray<z.ZodObject<{
1911
+ weapon: z.ZodObject<{
1912
+ id: z.ZodNullable<z.ZodNumber>;
1913
+ fallback: z.ZodNullable<z.ZodString>;
1914
+ }, z.core.$strip>;
1915
+ shots: z.ZodNumber;
1916
+ ticks: z.ZodArray<z.ZodNumber>;
1917
+ }, z.core.$strip>>;
1918
+ }, z.core.$strip>>;
1919
+ timestamp: z.ZodNumber;
1920
+ tick: z.ZodNumber;
1921
+ type: z.ZodLiteral<"round_shots">;
1922
+ }, z.core.$strip>, z.ZodObject<{
1923
+ player: z.ZodObject<{
1924
+ steam_id: z.ZodString;
1925
+ name: z.ZodString;
1926
+ side: z.ZodEnum<{
1927
+ t: "t";
1928
+ ct: "ct";
1929
+ spec: "spec";
1930
+ }>;
1931
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1932
+ position: z.ZodObject<{
1933
+ x: z.ZodNumber;
1934
+ y: z.ZodNumber;
1935
+ z: z.ZodNumber;
1936
+ pitch: z.ZodNumber;
1937
+ yaw: z.ZodNumber;
1938
+ }, z.core.$strip>;
1939
+ }, z.core.$strip>;
1940
+ site: z.ZodNullable<z.ZodEnum<{
1941
+ a: "a";
1942
+ b: "b";
1943
+ }>>;
1944
+ round: z.ZodNumber;
1945
+ round_time: z.ZodNumber;
1946
+ timestamp: z.ZodNumber;
1947
+ tick: z.ZodNumber;
1948
+ type: z.ZodLiteral<"bomb_begin_plant">;
1949
+ }, z.core.$strip>, z.ZodObject<{
1950
+ player: z.ZodObject<{
1951
+ steam_id: z.ZodString;
1952
+ name: z.ZodString;
1953
+ side: z.ZodEnum<{
1954
+ t: "t";
1955
+ ct: "ct";
1956
+ spec: "spec";
1957
+ }>;
1958
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1959
+ position: z.ZodObject<{
1960
+ x: z.ZodNumber;
1961
+ y: z.ZodNumber;
1962
+ z: z.ZodNumber;
1963
+ pitch: z.ZodNumber;
1964
+ yaw: z.ZodNumber;
1965
+ }, z.core.$strip>;
1966
+ }, z.core.$strip>;
1967
+ site: z.ZodNullable<z.ZodEnum<{
1968
+ a: "a";
1969
+ b: "b";
1970
+ }>>;
1971
+ round: z.ZodNumber;
1972
+ round_time: z.ZodNumber;
1973
+ timestamp: z.ZodNumber;
1974
+ tick: z.ZodNumber;
1975
+ type: z.ZodLiteral<"bomb_abort_plant">;
1976
+ }, z.core.$strip>, z.ZodObject<{
1977
+ player: z.ZodObject<{
1978
+ steam_id: z.ZodString;
1979
+ name: z.ZodString;
1980
+ side: z.ZodEnum<{
1981
+ t: "t";
1982
+ ct: "ct";
1983
+ spec: "spec";
1984
+ }>;
1985
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1986
+ position: z.ZodObject<{
1987
+ x: z.ZodNumber;
1988
+ y: z.ZodNumber;
1989
+ z: z.ZodNumber;
1990
+ pitch: z.ZodNumber;
1991
+ yaw: z.ZodNumber;
1992
+ }, z.core.$strip>;
1993
+ }, z.core.$strip>;
1994
+ site: z.ZodNullable<z.ZodEnum<{
1995
+ a: "a";
1996
+ b: "b";
1997
+ }>>;
1998
+ round: z.ZodNumber;
1999
+ round_time: z.ZodNumber;
2000
+ timestamp: z.ZodNumber;
2001
+ tick: z.ZodNumber;
2002
+ type: z.ZodLiteral<"bomb_planted">;
2003
+ }, z.core.$strip>, z.ZodObject<{
2004
+ player: z.ZodObject<{
2005
+ steam_id: z.ZodString;
2006
+ name: z.ZodString;
2007
+ side: z.ZodEnum<{
2008
+ t: "t";
2009
+ ct: "ct";
2010
+ spec: "spec";
2011
+ }>;
2012
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2013
+ position: z.ZodObject<{
2014
+ x: z.ZodNumber;
2015
+ y: z.ZodNumber;
2016
+ z: z.ZodNumber;
2017
+ pitch: z.ZodNumber;
2018
+ yaw: z.ZodNumber;
2019
+ }, z.core.$strip>;
2020
+ }, z.core.$strip>;
2021
+ has_kit: z.ZodBoolean;
2022
+ round: z.ZodNumber;
2023
+ round_time: z.ZodNumber;
2024
+ timestamp: z.ZodNumber;
2025
+ tick: z.ZodNumber;
2026
+ type: z.ZodLiteral<"bomb_begin_defuse">;
2027
+ }, z.core.$strip>, z.ZodObject<{
2028
+ player: z.ZodObject<{
2029
+ steam_id: z.ZodString;
2030
+ name: z.ZodString;
2031
+ side: z.ZodEnum<{
2032
+ t: "t";
2033
+ ct: "ct";
2034
+ spec: "spec";
2035
+ }>;
2036
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2037
+ position: z.ZodObject<{
2038
+ x: z.ZodNumber;
2039
+ y: z.ZodNumber;
2040
+ z: z.ZodNumber;
2041
+ pitch: z.ZodNumber;
2042
+ yaw: z.ZodNumber;
2043
+ }, z.core.$strip>;
2044
+ }, z.core.$strip>;
2045
+ round: z.ZodNumber;
2046
+ round_time: z.ZodNumber;
2047
+ timestamp: z.ZodNumber;
2048
+ tick: z.ZodNumber;
2049
+ type: z.ZodLiteral<"bomb_abort_defuse">;
2050
+ }, z.core.$strip>, z.ZodObject<{
2051
+ player: z.ZodObject<{
2052
+ steam_id: z.ZodString;
2053
+ name: z.ZodString;
2054
+ side: z.ZodEnum<{
2055
+ t: "t";
2056
+ ct: "ct";
2057
+ spec: "spec";
2058
+ }>;
2059
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2060
+ position: z.ZodObject<{
2061
+ x: z.ZodNumber;
2062
+ y: z.ZodNumber;
2063
+ z: z.ZodNumber;
2064
+ pitch: z.ZodNumber;
2065
+ yaw: z.ZodNumber;
2066
+ }, z.core.$strip>;
2067
+ }, z.core.$strip>;
2068
+ time_remaining: z.ZodNumber;
2069
+ has_kit: z.ZodBoolean;
2070
+ round: z.ZodNumber;
2071
+ round_time: z.ZodNumber;
2072
+ timestamp: z.ZodNumber;
2073
+ tick: z.ZodNumber;
2074
+ type: z.ZodLiteral<"bomb_defused">;
2075
+ }, z.core.$strip>, z.ZodObject<{
2076
+ round: z.ZodNumber;
2077
+ round_time: z.ZodNumber;
2078
+ timestamp: z.ZodNumber;
2079
+ tick: z.ZodNumber;
2080
+ type: z.ZodLiteral<"bomb_exploded">;
2081
+ }, z.core.$strip>, z.ZodObject<{
2082
+ player: z.ZodObject<{
2083
+ steam_id: z.ZodString;
2084
+ name: z.ZodString;
2085
+ side: z.ZodEnum<{
2086
+ t: "t";
2087
+ ct: "ct";
2088
+ spec: "spec";
2089
+ }>;
2090
+ team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2091
+ }, z.core.$strip>;
2092
+ reason: z.ZodNumber;
2093
+ round: z.ZodNumber;
2094
+ round_time: z.ZodNumber;
2095
+ timestamp: z.ZodNumber;
2096
+ tick: z.ZodNumber;
2097
+ type: z.ZodLiteral<"round_mvp">;
2098
+ }, z.core.$strip>, z.ZodObject<{
2099
+ reason: z.ZodEnum<{
2100
+ played: "played";
2101
+ ready_timeout: "ready_timeout";
2102
+ abandoned: "abandoned";
2103
+ }>;
2104
+ winner_team: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2105
+ team1_score: z.ZodNumber;
2106
+ team2_score: z.ZodNumber;
2107
+ teams: z.ZodNullable<z.ZodObject<{
2108
+ team1: z.ZodObject<{
2109
+ connected: z.ZodNumber;
2110
+ ready: z.ZodBoolean;
2111
+ }, z.core.$strip>;
2112
+ team2: z.ZodObject<{
2113
+ connected: z.ZodNumber;
2114
+ ready: z.ZodBoolean;
2115
+ }, z.core.$strip>;
2116
+ spectators: z.ZodNullable<z.ZodObject<{
2117
+ connected: z.ZodNumber;
2118
+ ready: z.ZodBoolean;
2119
+ }, z.core.$strip>>;
2120
+ }, z.core.$strip>>;
2121
+ timestamp: z.ZodNumber;
2122
+ tick: z.ZodNumber;
2123
+ type: z.ZodLiteral<"map_end">;
2124
+ }, z.core.$strip>, z.ZodObject<{
2125
+ level: z.ZodEnum<{
2126
+ error: "error";
2127
+ debug: "debug";
2128
+ info: "info";
2129
+ warn: "warn";
2130
+ }>;
2131
+ message: z.ZodString;
2132
+ timestamp: z.ZodNumber;
2133
+ tick: z.ZodNumber;
2134
+ type: z.ZodLiteral<"log">;
2135
+ }, z.core.$strip>], "type">;
2136
+ export type PluginToControllerMessage = z.infer<typeof PluginToControllerMessage>;
2137
+ export {};