import { type EventizedObject } from '@spearwolf/eventize';
import { OnDisplayRenderFrame } from '../events.js';
import type { Display } from './Display.js';
import type { DisplayEventProps } from './types.js';
export interface FixedFrameLoopTickProps {
    fixedDelta: number;
    tickTime: number;
    tickNo: number;
}
export interface FixedFrameLoopRenderProps extends DisplayEventProps {
    alpha: number;
    tickTime: number;
    tickNo: number;
}
export interface FixedFrameLoop extends EventizedObject {
}
export declare class FixedFrameLoop {
    #private;
    static OnTick: symbol;
    static OnRender: symbol;
    static DefaultFps: number;
    static DefaultMaxStepsPerFrame: number;
    readonly display: Display;
    maxStepsPerFrame: number;
    get fps(): number;
    set fps(value: number);
    get fixedDelta(): number;
    get tickTime(): number;
    get tickNo(): number;
    get alpha(): number;
    get isDisposed(): boolean;
    constructor(display: Display, options?: {
        fps?: number;
        maxStepsPerFrame?: number;
    });
    [OnDisplayRenderFrame](props: DisplayEventProps): void;
    reset(): void;
    dispose(): void;
    readonly onTick: (handler: (props: FixedFrameLoopTickProps) => unknown) => unknown;
    readonly onRender: (handler: (props: FixedFrameLoopRenderProps) => unknown) => unknown;
}
//# sourceMappingURL=FixedFrameLoop.d.ts.map