import { Scene } from "./scene"; import { ZograRenderPipeline, PreviewRenderer } from "../render-pipeline"; import { Camera } from "./camera"; import { ZograRenderer } from "zogra-renderer"; import { EventEmitter, IEventSource, EventKeys } from "zogra-renderer"; import { ConstructorType } from "../utils/util"; interface GameTime { time: Readonly; deltaTime: Readonly; } export declare type Time = Readonly; interface ZograEngineEvents { update: (t: Time) => void; render: (cameras: Camera[]) => void; start: () => void; stop: () => void; "scene-change": (scene: Scene, previous: Scene) => void; } export declare class ZograEngine implements IEventSource { private _scene; renderer: ZograRenderer; renderPipeline: RenderPipeline; eventEmitter: EventEmitter; fixedDeltaTime: boolean; private _time; get time(): Time; get scene(): Scene; set scene(value: Scene); constructor(canvas: HTMLCanvasElement, RenderPipeline?: ConstructorType); renderScene(): void; start(): void; on>(event: T, listener: ZograEngineEvents[T]): void; off>(event: T, listener: ZograEngineEvents[T]): void; } export {};