import { BinaryStream, Vec3 } from '@quake2ts/shared'; import { StreamingBuffer } from '../stream/streamingBuffer.js'; import { PROTOCOL_VERSION_RERELEASE } from './protocol/rerelease.js'; import { EntityState, ProtocolPlayerState, createEmptyEntityState, createEmptyProtocolPlayerState, MutableVec3, FrameData, FogData, DamageIndicator } from './state.js'; export { U_ORIGIN1, U_ORIGIN2, U_ANGLE2, U_ANGLE3, U_FRAME8, U_EVENT, U_REMOVE, U_MOREBITS1, U_NUMBER16, U_ORIGIN3, U_ANGLE1, U_MODEL, U_RENDERFX8, U_ALPHA, U_EFFECTS8, U_MOREBITS2, U_SKIN8, U_FRAME16, U_RENDERFX16, U_EFFECTS16, U_MODEL2, U_MODEL3, U_MODEL4, U_MOREBITS3, U_OLDORIGIN, U_SKIN16, U_SOUND, U_SOLID, U_SCALE, U_INSTANCE_BITS, U_LOOP_VOLUME, U_MOREBITS4, U_LOOP_ATTENUATION_HIGH, U_OWNER_HIGH, U_OLD_FRAME_HIGH } from '@quake2ts/shared'; export { EntityState, ProtocolPlayerState, createEmptyEntityState, createEmptyProtocolPlayerState, MutableVec3, FrameData, FogData, DamageIndicator, PROTOCOL_VERSION_RERELEASE }; export interface NetworkMessageHandler { onServerData(protocol: number, serverCount: number, attractLoop: number, gameDir: string, playerNum: number, levelName: string, tickRate?: number, demoType?: number): void; onConfigString(index: number, str: string): void; onSpawnBaseline(entity: EntityState): void; onFrame(frame: FrameData): void; onCenterPrint(msg: string): void; onStuffText(msg: string): void; onPrint(level: number, msg: string): void; onSound(flags: number, soundNum: number, volume?: number, attenuation?: number, offset?: number, ent?: number, pos?: Vec3): void; onTempEntity(type: number, pos: Vec3, pos2?: Vec3, dir?: Vec3, cnt?: number, color?: number, ent?: number, srcEnt?: number, destEnt?: number): void; onLayout(layout: string): void; onInventory(inventory: number[]): void; onMuzzleFlash(ent: number, weapon: number): void; onMuzzleFlash2(ent: number, weapon: number): void; onDisconnect(): void; onReconnect(): void; onDownload(size: number, percent: number, data?: Uint8Array): void; getEntities?(): Map; getPlayerState?(): ProtocolPlayerState | null; onSplitClient?(clientNum: number): void; onConfigBlast?(index: number, data: Uint8Array): void; onSpawnBaselineBlast?(entity: EntityState): void; onLevelRestart?(): void; onDamage?(indicators: DamageIndicator[]): void; onLocPrint?(flags: number, base: string, args: string[]): void; onFog?(data: FogData): void; onWaitingForPlayers?(count: number): void; onBotChat?(msg: string): void; onPoi?(flags: number, pos: Vec3): void; onHelpPath?(pos: Vec3): void; onMuzzleFlash3?(ent: number, weapon: number): void; onAchievement?(id: string): void; } export interface ParseResult { commandsParsed: number; parseState: 'awaiting_data' | 'complete' | 'error'; bytesConsumed: number; } export declare class NetworkMessageParser { private stream; private handler?; private strictMode; private errorCount; private protocolHandler; private isDemo; constructor(stream: StreamingBuffer | BinaryStream, handler?: NetworkMessageHandler, strictMode?: boolean); setProtocolVersion(version: number): void; getProtocolVersion(): number; getErrorCount(): number; parseMessage(): void; private readAngle16; private readCoord; private readAngle; private readPos; private readDir; private parsePrint; private parseStuffText; private parseLayout; private parseCenterPrint; private parseServerData; private parseConfigString; private parseSplitClient; private parseConfigBlast; private parseSpawnBaselineBlast; private parseLocPrint; private parseWaitingForPlayers; private parseBotChat; private parsePoi; private parseHelpPath; private parseAchievement; private parseDownload; private parseInventory; private parseSound; private parseMuzzleFlash; private parseMuzzleFlash2; private parseMuzzleFlash3; private parseFog; private parseDamage; private parseTempEntity; private parseSpawnBaseline; private parseFrame; private parsePlayerState; private parsePacketEntities; private collectPacketEntities; } //# sourceMappingURL=parser.d.ts.map