import { Object3D } from 'three'; import { Content } from './content'; import { HybridScene } from './scene'; import { Position, Vector3D } from './types'; export type Transform = { position: Vector3D; rotation: Vector3D; }; export type TransformEventParams = { previous: Transform | undefined; current: Transform; }; type Events = { pointerDown: (position: Position, event: PointerEvent) => void; pointerMove: (position: Position, event: PointerEvent) => void; pointerUp: (position: Position, event: PointerEvent) => void; resize: (event: Event) => void; transformed: (params: TransformEventParams) => Promise; reordered: (element: HTMLElement) => Promise; }; type Guards = { transform: (params: TransformEventParams) => Promise; }; /** * Area class is responsible for managing 3D scene for a current editor */ export declare class Area { private container; private scope; private events; private guards; scene: HybridScene; pointer: Position; content: Content; constructor(container: HTMLElement, scene: HybridScene | null, scope: Scope, events: Events, guards: Guards); /** * Get the canvas in form of Object3D for the current scope */ getCanvas(): Object3D | undefined; /** * Set the pointer position from the given mouse event into the `pointer` property */ setPointerFrom(event: MouseEvent): void; private pointerdown; private pointermove; private pointerup; /** * Force resize the container of the 3D scene * @param event The resize event */ resize: (event: Event) => void; destroy(): void; } export {}; //# sourceMappingURL=area.d.ts.map