import type { SourceDemoBuffer } from '../buffer.js'; import type { SourceDemo } from '../demo.js'; export declare enum SarDataType { TimescaleCheat = 1, InitialCvar = 2, EntityInput = 3, EntityInputSlot = 4, PortalPlacement = 5, ChallengeFlags = 6, CrouchFly = 7, Pause = 8, WaitRun = 9, SpeedrunTime = 10, Timestamp = 11, FileChecksum = 12, HwaitRun = 13, Checksum = 255, ChecksumV2 = 254, Invalid = -1 } export declare enum ChecksumV2State { None = 0, Invalid = 1, Valid = 2 } export type SarDataMessage = M extends { type: T; } ? M : never; export declare function isSarMessage(type: T): (message: SarMessage) => message is SarDataMessage; export type SarMessage = { type: SarDataType.Invalid; } | { type: SarDataType.TimescaleCheat; timescale: number; } | { type: SarDataType.EntityInputSlot; slot: number; targetname: string; classname: string; inputname: string; parameter: string; } | { type: SarDataType.InitialCvar; pauseTicks: number; } | { type: SarDataType.InitialCvar; cvar: string; val: string; } | { type: SarDataType.Checksum; demoSum: number; sarSum: number; } | { type: SarDataType.ChecksumV2; sarSum: number; signature: ArrayBuffer; } | { type: SarDataType.EntityInput; targetname: string; classname: string; inputname: string; parameter: string; } | { type: SarDataType.PortalPlacement; x: number; y: number; z: number; slot: number; orange: boolean; } | { type: SarDataType.ChallengeFlags; slot: number; } | { type: SarDataType.CrouchFly; slot: number; } | { type: SarDataType.Pause; pauseTicks: number; isTimed?: boolean; } | { type: SarDataType.WaitRun; tick: number; cmd: string; } | { type: SarDataType.HwaitRun; ticks: number; cmd: string; } | { type: SarDataType.SpeedrunTime; nsplits: number; splits: { name: string; nsegs: number; segs: { name: string; ticks: number; }[]; }[]; nrules?: number; rules?: { name: string; data: string; }[]; } | { type: SarDataType.Timestamp; year: number; mon: number; day: number; hour: number; min: number; sec: number; } | { type: SarDataType.FileChecksum; path: string; sum: number; }; export declare const readSarMessageData: (data: SourceDemoBuffer, len: number) => SarMessage; export declare const readSarMessages: (demo: SourceDemo) => SarMessage[]; //# sourceMappingURL=sar.d.ts.map