import type { FixedStepContext } from '@quake2ts/engine'; export interface GameFrameContext extends FixedStepContext { readonly timeMs: number; readonly previousTimeMs: number; readonly deltaSeconds: number; } export type GameFrameStageName = 'prep' | 'simulate' | 'finish'; export type GameFrameStage = (context: GameFrameContext) => void; export interface GameFrameStages { prep?(context: GameFrameContext): void; simulate?(context: GameFrameContext): void; finish?(context: GameFrameContext): void; } export declare class GameFrameLoop { private timeMs; private frame; private readonly stageHandlers; private readonly stageCounts; private readonly stageCompactionNeeded; constructor(initialStages?: GameFrameStages); addStage(stage: GameFrameStageName, handler: GameFrameStage): () => void; reset(startTimeMs: number): void; advance(step: FixedStepContext): GameFrameContext; private runStage; private compactStageHandlers; get time(): number; get frameNumber(): number; } //# sourceMappingURL=loop.d.ts.map