import { CameraState, TypedEventEmitter } from "../types.js"; import { AnimateOptions } from "../utils/index.js"; export type CameraEvents = { updated(state: CameraState): void; }; export default class Camera extends TypedEventEmitter implements CameraState { x: number; y: number; angle: number; ratio: number; minRatio: number | null; maxRatio: number | null; enabledZooming: boolean; enabledPanning: boolean; enabledRotation: boolean; clean: ((state: CameraState) => CameraState) | null; private nextFrame; private previousState; private enabled; animationCallback?: () => void; constructor(); static from(state: CameraState): Camera; enable(): this; disable(): this; getState(): CameraState; hasState(state: CameraState): boolean; getPreviousState(): CameraState | null; getBoundedRatio(ratio: number): number; validateState(state: Partial): Partial; isAnimated(): boolean; setState(state: Partial): this; updateState(updater: (state: CameraState) => Partial): this; animate(state: Partial, opts: Partial, callback: () => void): void; animate(state: Partial, opts?: Partial): Promise; animatedZoom(factorOrOptions?: number | (Partial & { factor?: number; })): Promise; animatedUnzoom(factorOrOptions?: number | (Partial & { factor?: number; })): Promise; animatedReset(options?: Partial): Promise; copy(): Camera; }