import type { vec3 } from '@predy-js/render-interface'; import type { mat4, vec4 } from '@predy-js/render-interface'; export interface TransformData { position?: vec3; rotation?: vec3; quat?: vec4; scale?: vec3; name?: string; } export declare class Transform implements TransformData { static getRotation(out: vec3 | number[], quat: vec4): vec3; readonly position: vec3; readonly quat: vec4; readonly scale: vec3; name: string; private _pt?; private _worldMat?; private _opacity; protected _children: Transform[]; private readonly _worldTRSCache; private _dirty; private _matrix; constructor(opt?: TransformData, parent?: Transform); set parentTransform(t: Transform); get parentTransform(): Transform; clone(): Transform; setTransform(opt: TransformData, reverseEuler?: boolean): void; getRotation(out: vec3 | number[]): vec3; setOpacity(o: number): void; get opacity(): number; get rotation(): vec3; get matrix(): mat4; setQuat(x: number, y: number, z: number, w: number): void; setPosition(x: number, y: number, z: number): void; setRotation(x: number, y: number, z: number): void; setScale(x: number, y: number, z: number): void; rotate(quat: vec4): void; translate(x: number, y: number, z: number): void; scaleBy(x: number, y: number, z: number): void; invalid(): void; invalidChildren(): void; invalidSelf(): void; get worldOpacity(): number; get dirty(): boolean; getWorldMatrix(out?: mat4): mat4; fromMat4(m4: mat4, scale?: vec3): Transform; getWorldTRS(position?: vec3 | Float32Array | number[], quat?: vec4 | Float32Array | number[], scale?: vec3 | Float32Array | number[]): void; }