import type { TelemetryValue } from './types'; export interface IRSDKOptions { parseYamlAsync?: boolean; } export declare class IRSDK { private parseYamlAsync; private sharedMemPtr; private sharedMemBuffer; private sharedMemView; private fileMappingHandle; private dataValidEvent; private header; private varHeaders; private varHeadersNames; private sessionInfoCache; private static readonly sessionRegexCache; private broadcastMsgId; private lastSessionInfoUpdate; private workaroundConnectedState; private frozenBuffer; private frozenView; private frozenBufOffset; private frozenBufferCapacity; private testMode; isInitialized: boolean; constructor(options?: IRSDKOptions); private liveHeaderInt; private get liveStatus(); /** Tear-safe read target: the second-latest buffer by LIVE tick count. */ private liveReadBufOffset; /** Freeze target: the newest buffer by LIVE tick count. */ private liveLatestBufOffset; get isConnected(): boolean; get sessionInfoUpdate(): number; get varHeaderNames(): string[] | null; startup(testFile?: string, dumpTo?: string): Promise; private startupFromFile; shutdown(): void; get(key: string): TelemetryValue | null; /** * Batch read multiple telemetry variables in a single pass. * Much more efficient than calling get() multiple times. * @param keys Array of variable names to read * @returns Map of variable names to their values */ getMultiple(keys: string[]): Map; /** * Batch read multiple telemetry variables into a pre-allocated object. * Zero allocation in the hot path - fastest option for real-time telemetry. * @param keys Array of variable names to read * @param out Pre-allocated object to write values into */ getMultipleInto>(keys: string[], out: T): T; /** * Creates a pre-compiled reader for maximum performance in hot loops. * Pre-computes all offsets at creation time, avoiding Map lookups during reads. * @param keys Array of variable names to read * @returns A reader object with a read() method that returns values as an array */ createReader(keys: string[]): { read: () => (TelemetryValue | null)[]; keys: string[]; }; freezeVarBufferLatest(): void; unfreezeVarBufferLatest(): void; private get isFrozen(); private checkSimStatus; private waitValidDataEvent; private static getSectionRegex; getSessionInfo(key: string): T | null; private getBroadcastMsgId; private broadcastMsg; private padCarNum; camSwitchPos(position?: number, group?: number, camera?: number): boolean; camSwitchNum(carNumber?: string | number, group?: number, camera?: number): boolean; camSetState(cameraState?: 4): boolean; replaySetPlaySpeed(speed?: number, slowMotion?: boolean): boolean; replaySetPlayPosition(posMode?: 0, frameNum?: number): boolean; replaySearch(searchMode?: 0): boolean; replaySetState(stateMode?: 0): boolean; reloadAllTextures(): boolean; reloadTexture(carIdx?: number): boolean; chatCommand(chatCommandMode?: 1): boolean; chatCommandMacro(macroNum?: number): boolean; pitCommand(pitCommandMode?: 0, variable?: number): boolean; telemCommand(telemCommandMode?: 0): boolean; ffbCommand(ffbCommandMode?: 0, value?: number): boolean; replaySearchSessionTime(sessionNum?: number, sessionTimeMs?: number): boolean; videoCapture(videoCaptureMode?: 0): boolean; } export declare function createIRSDK(options?: IRSDKOptions): IRSDK; //# sourceMappingURL=live.d.ts.map