import { Vec3 } from '@quake2ts/shared'; export interface FrameDiff { frameA: number; frameB: number; playerStateDiff: { origin: Vec3 | null; viewangles: Vec3 | null; health: number | null; ammo: number | null; }; entityDiffs: { added: number[]; removed: number[]; moved: { id: number; delta: Vec3; }[]; }; } export declare enum DemoEventType { WeaponFire = "weapon_fire", DamageDealt = "damage_dealt", DamageReceived = "damage_received", Pickup = "pickup", Death = "death", Kill = "kill", Spawn = "spawn", PlayerInfo = "player_info", Chat = "chat", Objective = "objective" } export interface DemoEvent { type: DemoEventType; frame: number; time: number; entityId?: number; targetId?: number; value?: number; position?: Vec3; description?: string; data?: any; } export interface EventSummary { totalKills: number; totalDeaths: number; damageDealt: number; damageReceived: number; weaponUsage: Map; } export interface DemoHeader { protocolVersion: number; gameDir: string; levelName: string; playerNum: number; serverCount?: number; spawnCount?: number; tickRate?: number; demoType?: number; } export interface ServerInfo { [key: string]: string; } export interface DemoStatistics { duration: number; frameCount: number; averageFps: number; mapName: string; playerCount: number; } export interface PlayerStatistics { kills: number; deaths: number; damageDealt: number; damageReceived: number; suicides: number; } export interface WeaponStatistics { weaponId: number; shotsFired: number; hits: number; kills: number; } //# sourceMappingURL=analysis.d.ts.map