import { type EventizedObject } from '@spearwolf/eventize';
interface ISetAnimationLoop {
    setAnimationLoop(callback: (now: number) => unknown): unknown;
}
declare const OnRAF: unique symbol;
export interface FrameLoop extends EventizedObject {
}
export declare class FrameLoop {
    #private;
    static OnFrame: symbol;
    frameNo: number;
    now: number;
    deltaTime: number;
    measuredFps: number;
    get subscriptionCount(): number;
    private readonly raf;
    constructor(maxFps?: number, renderer?: ISetAnimationLoop);
    setFps(maxFps: number): void;
    start(target: object): () => void;
    stop(target: object): void;
    [OnRAF](now: number, _frameNo: number, measuredFps: number): void;
    clear(): void;
}
export {};
//# sourceMappingURL=FrameLoop.d.ts.map