import { Vector3 } from "../math/Vector3"; import { Quaternion } from "../math/Quaternion"; import { EventDispatcher } from "../events/EventDispatcher"; import { Matrix4 } from "../math/Matrix4"; import { ObjectChangedEvent } from "../events/Events"; declare abstract class Object3D extends EventDispatcher { positionChanged: boolean; rotationChanged: boolean; scaleChanged: boolean; protected _position: Vector3; protected _rotation: Quaternion; protected _scale: Vector3; protected _transform: Matrix4; protected _changeEvent: ObjectChangedEvent; update: () => void; applyPosition: () => void; applyRotation: () => void; applyScale: () => void; raiseChangeEvent: () => void; constructor(); protected _updateMatrix(): void; get position(): Vector3; set position(position: Vector3); get rotation(): Quaternion; set rotation(rotation: Quaternion); get scale(): Vector3; set scale(scale: Vector3); get forward(): Vector3; get transform(): Matrix4; } export { Object3D };