quake2ts 0.0.621 → 0.0.629

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.
@@ -4,10 +4,10 @@ import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, Col
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
5
  import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
6
6
  import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
7
- import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
7
+ import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, AssetManager, PreparedTexture, Md2Model, Md3Model, BspMap, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
8
8
  export { ConfigStringEntry, Cvar } from '@quake2ts/engine';
9
9
  import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports, PlayerClient } from '@quake2ts/game';
10
- import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
10
+ import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
11
11
  import { ImageData, Canvas } from '@napi-rs/canvas';
12
12
  import { vec3 } from 'gl-matrix';
13
13
 
@@ -703,7 +703,7 @@ declare function createMockServer(overrides?: Partial<MockServer>): MockServer;
703
703
  * Interface representing connection state for testing.
704
704
  */
705
705
  interface Connection {
706
- state: ClientState;
706
+ state: ClientState$1;
707
707
  address: string;
708
708
  challenge: number;
709
709
  userInfo: UserInfo;
@@ -756,7 +756,7 @@ declare function createMockUserInfo(overrides?: Partial<UserInfo>): UserInfo;
756
756
  * @param state The client state (default: Connected).
757
757
  * @param overrides Optional overrides for the client.
758
758
  */
759
- declare function createMockConnection(state?: ClientState, overrides?: Partial<Client>): Client;
759
+ declare function createMockConnection(state?: ClientState$1, overrides?: Partial<Client>): Client;
760
760
  /**
761
761
  * Creates a mock handshake object.
762
762
  * @param stage The stage of the handshake (default: None).
@@ -1032,16 +1032,59 @@ declare function createMockImageData(width: number, height: number, fillColor?:
1032
1032
  */
1033
1033
  declare function createMockImage(width?: number, height?: number, src?: string): HTMLImageElement;
1034
1034
 
1035
- declare function createMockGPUAdapter(): GPUAdapter;
1036
- declare function createMockGPUDevice(): GPUDevice;
1037
- declare function createMockGPUCanvasContext(): GPUCanvasContext;
1035
+ interface HeadlessWebGPUSetup {
1036
+ adapter: GPUAdapter;
1037
+ device: GPUDevice;
1038
+ cleanup: () => Promise<void>;
1039
+ }
1040
+ interface WebGPUContextState {
1041
+ adapter: GPUAdapter;
1042
+ device: GPUDevice;
1043
+ queue: GPUQueue;
1044
+ }
1045
+ /**
1046
+ * Initialize WebGPU in a headless Node.js environment using @webgpu/dawn (via webgpu package)
1047
+ */
1048
+ declare function initHeadlessWebGPU(options?: {
1049
+ powerPreference?: 'low-power' | 'high-performance';
1050
+ requiredFeatures?: GPUFeatureName[];
1051
+ }): Promise<HeadlessWebGPUSetup>;
1052
+ /**
1053
+ * Creates a complete context state for testing
1054
+ */
1055
+ declare function createHeadlessTestContext(): Promise<WebGPUContextState>;
1056
+
1057
+ interface MockWebGPUContext {
1058
+ adapter: GPUAdapter;
1059
+ device: GPUDevice;
1060
+ queue: GPUQueue;
1061
+ }
1062
+ /**
1063
+ * Patches globalThis with WebGPU globals (GPUBufferUsage, etc.)
1064
+ * and optionally patches navigator.gpu.
1065
+ */
1038
1066
  declare function setupWebGPUMocks(): {
1039
1067
  mockGpu: {
1040
1068
  requestAdapter: vitest.Mock<any, any>;
1041
1069
  getPreferredCanvasFormat: vitest.Mock<any, any>;
1042
1070
  };
1043
1071
  mockAdapter: GPUAdapter;
1072
+ mockDevice: GPUDevice;
1044
1073
  };
1074
+ declare function createMockGPUAdapter(options?: Partial<GPUAdapter>): GPUAdapter;
1075
+ declare function createMockGPUDevice(features?: Set<GPUFeatureName>): GPUDevice;
1076
+ declare function createMockQueue(): GPUQueue;
1077
+ declare function createMockGPUBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
1078
+ declare function createMockGPUTexture(descriptor: GPUTextureDescriptor): GPUTexture;
1079
+ declare function createMockTextureView(): GPUTextureView;
1080
+ declare function createMockSampler(): GPUSampler;
1081
+ declare function createMockShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule;
1082
+ declare function createMockComputePipeline(): GPUComputePipeline;
1083
+ declare function createMockRenderPipeline(): GPURenderPipeline;
1084
+ declare function createMockCommandEncoder(): GPUCommandEncoder;
1085
+ declare function createMockRenderPassEncoder(): GPURenderPassEncoder;
1086
+ declare function createMockComputePassEncoder(): GPUComputePassEncoder;
1087
+ declare function createMockWebGPUContext(): MockWebGPUContext;
1045
1088
 
1046
1089
  /**
1047
1090
  * Interface for the mock RequestAnimationFrame implementation.
@@ -1333,6 +1376,12 @@ declare function createMockMd3Pipeline(overrides?: Partial<Md3Pipeline>): Md3Pip
1333
1376
  declare function createMockSpritePipeline(overrides?: Partial<SpriteRenderer>): SpriteRenderer;
1334
1377
  declare function createMockSkyboxPipeline(overrides?: Partial<SkyboxPipeline>): SkyboxPipeline;
1335
1378
 
1379
+ declare function createMockAssetManager(overrides?: Partial<AssetManager>): AssetManager;
1380
+ declare function createMockTexture(width?: number, height?: number, data?: Uint8Array): PreparedTexture;
1381
+ declare function createMockMd2Model(overrides?: Partial<Md2Model>): Md2Model;
1382
+ declare function createMockMd3Model(overrides?: Partial<Md3Model>): Md3Model;
1383
+ declare function createMockBspMap(overrides?: Partial<BspMap>): BspMap;
1384
+
1336
1385
  interface MockPipeline {
1337
1386
  render: ReturnType<typeof vi.fn>;
1338
1387
  init: ReturnType<typeof vi.fn>;
@@ -1412,6 +1461,62 @@ interface AudioEvent {
1412
1461
  */
1413
1462
  declare function captureAudioEvents(context: AudioContext): AudioEvent[];
1414
1463
 
1464
+ /**
1465
+ * Interface for render test setup
1466
+ */
1467
+ interface RenderTestSetup {
1468
+ context: WebGPUContextState;
1469
+ renderTarget: GPUTexture;
1470
+ renderTargetView: GPUTextureView;
1471
+ commandEncoder: GPUCommandEncoder;
1472
+ cleanup: () => Promise<void>;
1473
+ width: number;
1474
+ height: number;
1475
+ }
1476
+ /**
1477
+ * Creates a setup for testing rendering pipelines.
1478
+ * Initializes a headless WebGPU context, a render target texture, and a command encoder.
1479
+ */
1480
+ declare function createRenderTestSetup(width?: number, height?: number): Promise<RenderTestSetup>;
1481
+ /**
1482
+ * Helper to render and capture the output as pixel data.
1483
+ * It manages the render pass, submission, and buffer readback.
1484
+ */
1485
+ declare function renderAndCapture(setup: RenderTestSetup, renderFn: (pass: GPURenderPassEncoder) => void): Promise<Uint8ClampedArray>;
1486
+ /**
1487
+ * Interface for compute test setup
1488
+ */
1489
+ interface ComputeTestSetup {
1490
+ context: WebGPUContextState;
1491
+ outputBuffer: GPUBuffer;
1492
+ commandEncoder: GPUCommandEncoder;
1493
+ cleanup: () => Promise<void>;
1494
+ outputSize: number;
1495
+ }
1496
+ /**
1497
+ * Creates a setup for testing compute shaders.
1498
+ */
1499
+ declare function createComputeTestSetup(outputSize: number): Promise<ComputeTestSetup>;
1500
+ /**
1501
+ * Helper to run a compute pass and read back the output buffer.
1502
+ */
1503
+ declare function runComputeAndReadback(setup: ComputeTestSetup, computeFn: (pass: GPUComputePassEncoder) => void): Promise<ArrayBuffer>;
1504
+
1505
+ interface GeometryBuffers {
1506
+ vertexBuffer: GPUBuffer;
1507
+ indexBuffer?: GPUBuffer;
1508
+ vertexCount: number;
1509
+ indexCount?: number;
1510
+ }
1511
+ /**
1512
+ * Template for testing a rendering pipeline
1513
+ */
1514
+ declare function testPipelineRendering(name: string, createPipeline: (device: GPUDevice) => GPURenderPipeline, setupGeometry: (device: GPUDevice) => GeometryBuffers, expectedOutput?: Uint8ClampedArray): Promise<void>;
1515
+ /**
1516
+ * Template for testing compute shaders
1517
+ */
1518
+ declare function testComputeShader(name: string, createComputePipeline: (device: GPUDevice) => GPUComputePipeline, inputData: Float32Array, expectedOutput?: Float32Array): Promise<void>;
1519
+
1415
1520
  /**
1416
1521
  * Client Input System Mocks
1417
1522
  *
@@ -1595,6 +1700,107 @@ declare function createMockEntityState(number: number, modelIndex?: number, orig
1595
1700
  declare function createMockDamageIndicator(damage: number, dir?: Vec3, health?: boolean, armor?: boolean, power?: boolean): DamageIndicator;
1596
1701
  declare function createMockFogData(overrides?: Partial<FogData>): FogData;
1597
1702
 
1703
+ interface DownloadManager {
1704
+ download(url: string): Promise<ArrayBuffer>;
1705
+ cancel(url: string): void;
1706
+ getProgress(url: string): number;
1707
+ }
1708
+ declare function createMockDownloadManager(overrides?: Partial<DownloadManager>): DownloadManager;
1709
+ interface PrecacheList {
1710
+ models: string[];
1711
+ sounds: string[];
1712
+ images: string[];
1713
+ }
1714
+ declare function createMockPrecacheList(models?: string[], sounds?: string[], images?: string[]): PrecacheList;
1715
+ declare function simulateDownload(url: string, progressCallback?: (percent: number) => void): Promise<ArrayBuffer>;
1716
+
1717
+ declare class MockClientConfigStrings {
1718
+ private readonly strings;
1719
+ private readonly models;
1720
+ private readonly sounds;
1721
+ private readonly images;
1722
+ constructor();
1723
+ set(index: number, value: string): void;
1724
+ get(index: number): string | undefined;
1725
+ getModelName(index: number): string | undefined;
1726
+ getSoundName(index: number): string | undefined;
1727
+ getImageName(index: number): string | undefined;
1728
+ getPlayerName(playernum: number): string | undefined;
1729
+ clear(): void;
1730
+ }
1731
+ interface ClientStateProvider {
1732
+ tickRate: number;
1733
+ frameTimeMs: number;
1734
+ serverFrame: number;
1735
+ serverProtocol: number;
1736
+ configStrings: MockClientConfigStrings;
1737
+ getClientName(num: number): string;
1738
+ getKeyBinding(key: string): string;
1739
+ inAutoDemo: boolean;
1740
+ }
1741
+ interface ClientInfo {
1742
+ name: string;
1743
+ skin: string;
1744
+ model: string;
1745
+ icon: string;
1746
+ }
1747
+ interface ClientState extends ClientStateProvider {
1748
+ playerNum: number;
1749
+ serverTime: number;
1750
+ parseEntities: number;
1751
+ }
1752
+ interface Frame {
1753
+ serverFrame: number;
1754
+ deltaFrame: number;
1755
+ valid: boolean;
1756
+ entities: EntityState[];
1757
+ }
1758
+ interface ConnectionState {
1759
+ state: 'disconnected' | 'connecting' | 'connected' | 'active';
1760
+ }
1761
+ declare const createMockClientState: (overrides?: Partial<ClientState>) => ClientState;
1762
+ declare const createMockFrame: (overrides?: Partial<Frame>) => Frame;
1763
+ declare const createMockClientInfo: (overrides?: Partial<ClientInfo>) => ClientInfo;
1764
+ declare const createMockConnectionState: (state?: ConnectionState["state"]) => ConnectionState;
1765
+
1766
+ interface MockConsole {
1767
+ print: (text: string) => void;
1768
+ error: (text: string) => void;
1769
+ execute: (text: string) => void;
1770
+ addCommand: (name: string, handler: (args: string[]) => void) => void;
1771
+ getCvar: (name: string) => string | undefined;
1772
+ setCvar: (name: string, value: string) => void;
1773
+ getHistory: () => string[];
1774
+ clearHistory: () => void;
1775
+ getErrors: () => string[];
1776
+ }
1777
+ interface MockCommand {
1778
+ name: string;
1779
+ handler: (args: string[]) => void;
1780
+ }
1781
+ interface CvarRegistry {
1782
+ [key: string]: string;
1783
+ }
1784
+ declare function createMockConsole(overrides?: Partial<MockConsole>): MockConsole;
1785
+ declare function createMockCommand(name: string, handler: (args: string[]) => void): MockCommand;
1786
+ declare function createMockCvarRegistry(initialCvars?: Record<string, string>): CvarRegistry;
1787
+
1788
+ interface PredictionScenario {
1789
+ clientState: ClientState;
1790
+ snapshots: EntityState[][];
1791
+ lagMs: number;
1792
+ }
1793
+ interface SmoothingAnalysis {
1794
+ smooth: boolean;
1795
+ maxError: number;
1796
+ averageError: number;
1797
+ jumps: number[];
1798
+ }
1799
+ declare const createPredictionTestScenario: (lagMs?: number) => PredictionScenario;
1800
+ declare const simulateClientPrediction: (state: ClientState, input: UserCommand, deltaTime: number) => ClientState;
1801
+ declare const createInterpolationTestData: (startState: EntityState, endState: EntityState, steps?: number) => EntityState[];
1802
+ declare const verifySmoothing: (states: EntityState[]) => SmoothingAnalysis;
1803
+
1598
1804
  interface PlaywrightOptions {
1599
1805
  headless?: boolean;
1600
1806
  viewport?: {
@@ -1684,4 +1890,4 @@ interface VisualScenario {
1684
1890
  */
1685
1891
  declare function createVisualTestScenario(sceneName: string): VisualScenario;
1686
1892
 
1687
- export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type GameState, type GameStateCapture, type Handshake, HandshakeStage, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RecordedPacket, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioBuffer, createMockAudioContext, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockCollisionEntityIndex, createMockConnection, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockEngine, createMockEntityState, createMockFogData, createMockFrameRenderer, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMd2Pipeline, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderer, createMockRenderingContext, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
1893
+ export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type ClientInfo, type ClientState, type ClientStateProvider, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createHeadlessTestContext, createInputInjector, createInterpolationTestData, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAssetManager, createMockAudioBuffer, createMockAudioContext, createMockBspMap, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockClientInfo, createMockClientState, createMockCollisionEntityIndex, createMockCommand, createMockCommandEncoder, createMockComputePassEncoder, createMockComputePipeline, createMockConnection, createMockConnectionState, createMockConsole, createMockCvarRegistry, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockDownloadManager, createMockEngine, createMockEntityState, createMockFogData, createMockFrame, createMockFrameRenderer, createMockGPUAdapter, createMockGPUBuffer, createMockGPUDevice, createMockGPUTexture, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMd2Model, createMockMd2Pipeline, createMockMd3Model, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockPrecacheList, createMockQueue, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderPassEncoder, createMockRenderPipeline, createMockRenderer, createMockRenderingContext, createMockSampler, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockShaderModule, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTexture, createMockTextureView, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPredictionTestScenario, createProjectileEntityFactory, createRenderTestSetup, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, initHeadlessWebGPU, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, renderAndCapture, runComputeAndReadback, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateClientPrediction, simulateDownload, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
@@ -4,10 +4,10 @@ import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, Col
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
5
  import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
6
6
  import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
7
- import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
7
+ import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, AssetManager, PreparedTexture, Md2Model, Md3Model, BspMap, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
8
8
  export { ConfigStringEntry, Cvar } from '@quake2ts/engine';
9
9
  import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports, PlayerClient } from '@quake2ts/game';
10
- import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
10
+ import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
11
11
  import { ImageData, Canvas } from '@napi-rs/canvas';
12
12
  import { vec3 } from 'gl-matrix';
13
13
 
@@ -703,7 +703,7 @@ declare function createMockServer(overrides?: Partial<MockServer>): MockServer;
703
703
  * Interface representing connection state for testing.
704
704
  */
705
705
  interface Connection {
706
- state: ClientState;
706
+ state: ClientState$1;
707
707
  address: string;
708
708
  challenge: number;
709
709
  userInfo: UserInfo;
@@ -756,7 +756,7 @@ declare function createMockUserInfo(overrides?: Partial<UserInfo>): UserInfo;
756
756
  * @param state The client state (default: Connected).
757
757
  * @param overrides Optional overrides for the client.
758
758
  */
759
- declare function createMockConnection(state?: ClientState, overrides?: Partial<Client>): Client;
759
+ declare function createMockConnection(state?: ClientState$1, overrides?: Partial<Client>): Client;
760
760
  /**
761
761
  * Creates a mock handshake object.
762
762
  * @param stage The stage of the handshake (default: None).
@@ -1032,16 +1032,59 @@ declare function createMockImageData(width: number, height: number, fillColor?:
1032
1032
  */
1033
1033
  declare function createMockImage(width?: number, height?: number, src?: string): HTMLImageElement;
1034
1034
 
1035
- declare function createMockGPUAdapter(): GPUAdapter;
1036
- declare function createMockGPUDevice(): GPUDevice;
1037
- declare function createMockGPUCanvasContext(): GPUCanvasContext;
1035
+ interface HeadlessWebGPUSetup {
1036
+ adapter: GPUAdapter;
1037
+ device: GPUDevice;
1038
+ cleanup: () => Promise<void>;
1039
+ }
1040
+ interface WebGPUContextState {
1041
+ adapter: GPUAdapter;
1042
+ device: GPUDevice;
1043
+ queue: GPUQueue;
1044
+ }
1045
+ /**
1046
+ * Initialize WebGPU in a headless Node.js environment using @webgpu/dawn (via webgpu package)
1047
+ */
1048
+ declare function initHeadlessWebGPU(options?: {
1049
+ powerPreference?: 'low-power' | 'high-performance';
1050
+ requiredFeatures?: GPUFeatureName[];
1051
+ }): Promise<HeadlessWebGPUSetup>;
1052
+ /**
1053
+ * Creates a complete context state for testing
1054
+ */
1055
+ declare function createHeadlessTestContext(): Promise<WebGPUContextState>;
1056
+
1057
+ interface MockWebGPUContext {
1058
+ adapter: GPUAdapter;
1059
+ device: GPUDevice;
1060
+ queue: GPUQueue;
1061
+ }
1062
+ /**
1063
+ * Patches globalThis with WebGPU globals (GPUBufferUsage, etc.)
1064
+ * and optionally patches navigator.gpu.
1065
+ */
1038
1066
  declare function setupWebGPUMocks(): {
1039
1067
  mockGpu: {
1040
1068
  requestAdapter: vitest.Mock<any, any>;
1041
1069
  getPreferredCanvasFormat: vitest.Mock<any, any>;
1042
1070
  };
1043
1071
  mockAdapter: GPUAdapter;
1072
+ mockDevice: GPUDevice;
1044
1073
  };
1074
+ declare function createMockGPUAdapter(options?: Partial<GPUAdapter>): GPUAdapter;
1075
+ declare function createMockGPUDevice(features?: Set<GPUFeatureName>): GPUDevice;
1076
+ declare function createMockQueue(): GPUQueue;
1077
+ declare function createMockGPUBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
1078
+ declare function createMockGPUTexture(descriptor: GPUTextureDescriptor): GPUTexture;
1079
+ declare function createMockTextureView(): GPUTextureView;
1080
+ declare function createMockSampler(): GPUSampler;
1081
+ declare function createMockShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule;
1082
+ declare function createMockComputePipeline(): GPUComputePipeline;
1083
+ declare function createMockRenderPipeline(): GPURenderPipeline;
1084
+ declare function createMockCommandEncoder(): GPUCommandEncoder;
1085
+ declare function createMockRenderPassEncoder(): GPURenderPassEncoder;
1086
+ declare function createMockComputePassEncoder(): GPUComputePassEncoder;
1087
+ declare function createMockWebGPUContext(): MockWebGPUContext;
1045
1088
 
1046
1089
  /**
1047
1090
  * Interface for the mock RequestAnimationFrame implementation.
@@ -1333,6 +1376,12 @@ declare function createMockMd3Pipeline(overrides?: Partial<Md3Pipeline>): Md3Pip
1333
1376
  declare function createMockSpritePipeline(overrides?: Partial<SpriteRenderer>): SpriteRenderer;
1334
1377
  declare function createMockSkyboxPipeline(overrides?: Partial<SkyboxPipeline>): SkyboxPipeline;
1335
1378
 
1379
+ declare function createMockAssetManager(overrides?: Partial<AssetManager>): AssetManager;
1380
+ declare function createMockTexture(width?: number, height?: number, data?: Uint8Array): PreparedTexture;
1381
+ declare function createMockMd2Model(overrides?: Partial<Md2Model>): Md2Model;
1382
+ declare function createMockMd3Model(overrides?: Partial<Md3Model>): Md3Model;
1383
+ declare function createMockBspMap(overrides?: Partial<BspMap>): BspMap;
1384
+
1336
1385
  interface MockPipeline {
1337
1386
  render: ReturnType<typeof vi.fn>;
1338
1387
  init: ReturnType<typeof vi.fn>;
@@ -1412,6 +1461,62 @@ interface AudioEvent {
1412
1461
  */
1413
1462
  declare function captureAudioEvents(context: AudioContext): AudioEvent[];
1414
1463
 
1464
+ /**
1465
+ * Interface for render test setup
1466
+ */
1467
+ interface RenderTestSetup {
1468
+ context: WebGPUContextState;
1469
+ renderTarget: GPUTexture;
1470
+ renderTargetView: GPUTextureView;
1471
+ commandEncoder: GPUCommandEncoder;
1472
+ cleanup: () => Promise<void>;
1473
+ width: number;
1474
+ height: number;
1475
+ }
1476
+ /**
1477
+ * Creates a setup for testing rendering pipelines.
1478
+ * Initializes a headless WebGPU context, a render target texture, and a command encoder.
1479
+ */
1480
+ declare function createRenderTestSetup(width?: number, height?: number): Promise<RenderTestSetup>;
1481
+ /**
1482
+ * Helper to render and capture the output as pixel data.
1483
+ * It manages the render pass, submission, and buffer readback.
1484
+ */
1485
+ declare function renderAndCapture(setup: RenderTestSetup, renderFn: (pass: GPURenderPassEncoder) => void): Promise<Uint8ClampedArray>;
1486
+ /**
1487
+ * Interface for compute test setup
1488
+ */
1489
+ interface ComputeTestSetup {
1490
+ context: WebGPUContextState;
1491
+ outputBuffer: GPUBuffer;
1492
+ commandEncoder: GPUCommandEncoder;
1493
+ cleanup: () => Promise<void>;
1494
+ outputSize: number;
1495
+ }
1496
+ /**
1497
+ * Creates a setup for testing compute shaders.
1498
+ */
1499
+ declare function createComputeTestSetup(outputSize: number): Promise<ComputeTestSetup>;
1500
+ /**
1501
+ * Helper to run a compute pass and read back the output buffer.
1502
+ */
1503
+ declare function runComputeAndReadback(setup: ComputeTestSetup, computeFn: (pass: GPUComputePassEncoder) => void): Promise<ArrayBuffer>;
1504
+
1505
+ interface GeometryBuffers {
1506
+ vertexBuffer: GPUBuffer;
1507
+ indexBuffer?: GPUBuffer;
1508
+ vertexCount: number;
1509
+ indexCount?: number;
1510
+ }
1511
+ /**
1512
+ * Template for testing a rendering pipeline
1513
+ */
1514
+ declare function testPipelineRendering(name: string, createPipeline: (device: GPUDevice) => GPURenderPipeline, setupGeometry: (device: GPUDevice) => GeometryBuffers, expectedOutput?: Uint8ClampedArray): Promise<void>;
1515
+ /**
1516
+ * Template for testing compute shaders
1517
+ */
1518
+ declare function testComputeShader(name: string, createComputePipeline: (device: GPUDevice) => GPUComputePipeline, inputData: Float32Array, expectedOutput?: Float32Array): Promise<void>;
1519
+
1415
1520
  /**
1416
1521
  * Client Input System Mocks
1417
1522
  *
@@ -1595,6 +1700,107 @@ declare function createMockEntityState(number: number, modelIndex?: number, orig
1595
1700
  declare function createMockDamageIndicator(damage: number, dir?: Vec3, health?: boolean, armor?: boolean, power?: boolean): DamageIndicator;
1596
1701
  declare function createMockFogData(overrides?: Partial<FogData>): FogData;
1597
1702
 
1703
+ interface DownloadManager {
1704
+ download(url: string): Promise<ArrayBuffer>;
1705
+ cancel(url: string): void;
1706
+ getProgress(url: string): number;
1707
+ }
1708
+ declare function createMockDownloadManager(overrides?: Partial<DownloadManager>): DownloadManager;
1709
+ interface PrecacheList {
1710
+ models: string[];
1711
+ sounds: string[];
1712
+ images: string[];
1713
+ }
1714
+ declare function createMockPrecacheList(models?: string[], sounds?: string[], images?: string[]): PrecacheList;
1715
+ declare function simulateDownload(url: string, progressCallback?: (percent: number) => void): Promise<ArrayBuffer>;
1716
+
1717
+ declare class MockClientConfigStrings {
1718
+ private readonly strings;
1719
+ private readonly models;
1720
+ private readonly sounds;
1721
+ private readonly images;
1722
+ constructor();
1723
+ set(index: number, value: string): void;
1724
+ get(index: number): string | undefined;
1725
+ getModelName(index: number): string | undefined;
1726
+ getSoundName(index: number): string | undefined;
1727
+ getImageName(index: number): string | undefined;
1728
+ getPlayerName(playernum: number): string | undefined;
1729
+ clear(): void;
1730
+ }
1731
+ interface ClientStateProvider {
1732
+ tickRate: number;
1733
+ frameTimeMs: number;
1734
+ serverFrame: number;
1735
+ serverProtocol: number;
1736
+ configStrings: MockClientConfigStrings;
1737
+ getClientName(num: number): string;
1738
+ getKeyBinding(key: string): string;
1739
+ inAutoDemo: boolean;
1740
+ }
1741
+ interface ClientInfo {
1742
+ name: string;
1743
+ skin: string;
1744
+ model: string;
1745
+ icon: string;
1746
+ }
1747
+ interface ClientState extends ClientStateProvider {
1748
+ playerNum: number;
1749
+ serverTime: number;
1750
+ parseEntities: number;
1751
+ }
1752
+ interface Frame {
1753
+ serverFrame: number;
1754
+ deltaFrame: number;
1755
+ valid: boolean;
1756
+ entities: EntityState[];
1757
+ }
1758
+ interface ConnectionState {
1759
+ state: 'disconnected' | 'connecting' | 'connected' | 'active';
1760
+ }
1761
+ declare const createMockClientState: (overrides?: Partial<ClientState>) => ClientState;
1762
+ declare const createMockFrame: (overrides?: Partial<Frame>) => Frame;
1763
+ declare const createMockClientInfo: (overrides?: Partial<ClientInfo>) => ClientInfo;
1764
+ declare const createMockConnectionState: (state?: ConnectionState["state"]) => ConnectionState;
1765
+
1766
+ interface MockConsole {
1767
+ print: (text: string) => void;
1768
+ error: (text: string) => void;
1769
+ execute: (text: string) => void;
1770
+ addCommand: (name: string, handler: (args: string[]) => void) => void;
1771
+ getCvar: (name: string) => string | undefined;
1772
+ setCvar: (name: string, value: string) => void;
1773
+ getHistory: () => string[];
1774
+ clearHistory: () => void;
1775
+ getErrors: () => string[];
1776
+ }
1777
+ interface MockCommand {
1778
+ name: string;
1779
+ handler: (args: string[]) => void;
1780
+ }
1781
+ interface CvarRegistry {
1782
+ [key: string]: string;
1783
+ }
1784
+ declare function createMockConsole(overrides?: Partial<MockConsole>): MockConsole;
1785
+ declare function createMockCommand(name: string, handler: (args: string[]) => void): MockCommand;
1786
+ declare function createMockCvarRegistry(initialCvars?: Record<string, string>): CvarRegistry;
1787
+
1788
+ interface PredictionScenario {
1789
+ clientState: ClientState;
1790
+ snapshots: EntityState[][];
1791
+ lagMs: number;
1792
+ }
1793
+ interface SmoothingAnalysis {
1794
+ smooth: boolean;
1795
+ maxError: number;
1796
+ averageError: number;
1797
+ jumps: number[];
1798
+ }
1799
+ declare const createPredictionTestScenario: (lagMs?: number) => PredictionScenario;
1800
+ declare const simulateClientPrediction: (state: ClientState, input: UserCommand, deltaTime: number) => ClientState;
1801
+ declare const createInterpolationTestData: (startState: EntityState, endState: EntityState, steps?: number) => EntityState[];
1802
+ declare const verifySmoothing: (states: EntityState[]) => SmoothingAnalysis;
1803
+
1598
1804
  interface PlaywrightOptions {
1599
1805
  headless?: boolean;
1600
1806
  viewport?: {
@@ -1684,4 +1890,4 @@ interface VisualScenario {
1684
1890
  */
1685
1891
  declare function createVisualTestScenario(sceneName: string): VisualScenario;
1686
1892
 
1687
- export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type GameState, type GameStateCapture, type Handshake, HandshakeStage, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RecordedPacket, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioBuffer, createMockAudioContext, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockCollisionEntityIndex, createMockConnection, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockEngine, createMockEntityState, createMockFogData, createMockFrameRenderer, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMd2Pipeline, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderer, createMockRenderingContext, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
1893
+ export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type ClientInfo, type ClientState, type ClientStateProvider, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createHeadlessTestContext, createInputInjector, createInterpolationTestData, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAssetManager, createMockAudioBuffer, createMockAudioContext, createMockBspMap, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockClientInfo, createMockClientState, createMockCollisionEntityIndex, createMockCommand, createMockCommandEncoder, createMockComputePassEncoder, createMockComputePipeline, createMockConnection, createMockConnectionState, createMockConsole, createMockCvarRegistry, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockDownloadManager, createMockEngine, createMockEntityState, createMockFogData, createMockFrame, createMockFrameRenderer, createMockGPUAdapter, createMockGPUBuffer, createMockGPUDevice, createMockGPUTexture, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMd2Model, createMockMd2Pipeline, createMockMd3Model, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockPrecacheList, createMockQueue, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderPassEncoder, createMockRenderPipeline, createMockRenderer, createMockRenderingContext, createMockSampler, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockShaderModule, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTexture, createMockTextureView, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPredictionTestScenario, createProjectileEntityFactory, createRenderTestSetup, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, initHeadlessWebGPU, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, renderAndCapture, runComputeAndReadback, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateClientPrediction, simulateDownload, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };