import { Mat4, Vec3, Vec4 } from './math'; import { UniformValue } from './uniform'; export declare class Model { readonly position: Vec3; readonly rotation: Vec3; readonly scaling: Vec3; readonly scopes: (string | number)[]; protected disables: Set; protected quaternion: Vec4; protected _uniforms: Record; protected _children: Model[]; protected _model: Mat4; protected _world: Mat4; protected _parent?: Model; protected _dirty: boolean; set x(x: number); get x(): number; set y(y: number); get y(): number; set z(z: number); get z(): number; set scaleX(x: number); get scaleX(): number; set scaleY(y: number); get scaleY(): number; set scaleZ(z: number); get scaleZ(): number; set scale(s: number); set rotationX(x: number); get rotationX(): number; set rotationY(y: number); get rotationY(): number; set rotationZ(z: number); get rotationZ(): number; get model(): Float32Array; get world(): Float32Array; get dirty(): boolean; get opaque(): boolean; get children(): Model[]; get uniforms(): Record; get disabled(): boolean; addChild(...children: Model[]): void; lookAt(x: number, y: number, z: number): void; orbit(x: number, y: number, z: number, r: number, a: number, e: number): void; setParent(parent: Model, update?: boolean): this; setModel(model: Mat4, update?: boolean): this; updateModel(): void; protected modelWillUpdate(): void; protected modelHasUpdated(): void; protected getCloneArgs(): any[]; draw(time?: number, uniforms?: Record): void; destroy(): void; findChild(matcher: (child: Model) => boolean): Model | undefined; disable(ref?: string): void; enable(ref?: string, enabled?: boolean): void; clone(recursive?: boolean): this; }