import { FrameEvent } from "../eventbus/events/frame";
import { PlayPauseEvent } from "../eventbus/events/playPause";
import FPSClock from "../utils/FPSClock";
interface GameManagerOptions {
    clock: FPSClock;
}
export declare class GameManager {
    clock: FPSClock;
    private readonly renderer;
    private constructor();
    onPlayPause: ({ paused }: PlayPauseEvent) => void;
    animate({ delta }: FrameEvent): void;
    getDOMNode(): HTMLCanvasElement;
    render: () => void;
    private readonly updateSize;
    /**
     * ========================================
     * Managers are singletons
     * ========================================
     */
    static builder: ({ clock, replayData, replayMetadata, loadingManager, useBallRotation, }: import("../builders/GameBuilder").GameBuilderOptions) => Promise<GameManager>;
    private static instance?;
    static getInstance(): GameManager;
    static init(options: GameManagerOptions): GameManager;
    static destruct(): void;
}
export {};
