import type { Vector2Like } from 'modern-path2d'; import type { InputEvent, InputEventKey, WheelInputEvent } from '../../core'; import type { Node, SceneTree } from '../main'; import type { Node2DEvents, Node2DProperties } from './Node2D'; import { Transform2D, Vector2 } from 'modern-path2d'; import { Node2D } from './Node2D'; export interface Camera2DProperties extends Node2DProperties { position?: Vector2Like; zoom?: Vector2Like; minZoom?: Vector2Like; maxZoom?: Vector2Like; } export interface Camera2DEvents extends Node2DEvents { updateCanvasTransform: []; } export interface Camera2D { on: (event: K, listener: (...args: Camera2DEvents[K]) => void) => this; once: (event: K, listener: (...args: Camera2DEvents[K]) => void) => this; off: (event: K, listener: (...args: Camera2DEvents[K]) => void) => this; emit: (event: K, ...args: Camera2DEvents[K]) => this; } export declare class Camera2D extends Node2D { spaceKey: boolean; grabbing: boolean; readonly canvasTransform: Transform2D; protected _screenOffset: { x: number; y: number; }; protected _zoom: Vector2; get zoom(): Vector2; set zoom(val: Vector2Like); protected _minZoom: Vector2; get minZoom(): Vector2; set minZoom(val: Vector2Like); protected _maxZoom: Vector2; get maxZoom(): Vector2; set maxZoom(val: Vector2Like); constructor(properties?: Partial, nodes?: Node[]); setProperties(properties?: Record): this; addZoom(x: number, y?: number): this; setZoom(x: number, y?: number): this; setZoomAtOrigin(x: number, y: number, origin: Vector2Like | 'screenCenter'): void; protected _zoomStep(val: number): number; zoomIn(): void; zoomOut(): void; protected _input(event: InputEvent, key: InputEventKey): void; protected _onWheel(e: WheelInputEvent): void; protected _getZoomByWheel(e: WheelInputEvent, val: number): number; _updateTransform(): void; protected _updateCanvasTransform(): void; syncCanvasTransform(): void; protected _treeEnter(tree: SceneTree): void; toGlobal

(screenPos: Vector2Like, newPos?: P): P; toScreen

(globalPos: Vector2Like, newPos?: P): P; toJSON(): Record; }