import * as gltf from "webgl-gltf"; import { Output } from "../output"; import type { Buffer, BufferProps } from "../shader/buffer"; import { Shader, ShaderProps } from "../shader/shader"; import { Synth } from "../synth"; import { Texture } from "../texture"; import { Camera } from "./camera"; import { PBR } from "./materials/pbr"; export interface ModelProps extends ShaderProps { name?: string; wireframe?: boolean; material?: gltf.Material; mesh?: gltf.Mesh; modelMatrix?: Float32Array; camera?: Camera; } export declare class Model extends Shader { modelMatrix: Float32Array; material: gltf.Material; mesh: gltf.Mesh; constructor(synth: Synth, props?: ModelProps); pbr(): PBR; vertexColor(...args: number[]): this; wireframe(w?: boolean): this; primitive(primitive?: number | "triangles" | "lines" | "points" | "line_strip" | "triangle_strip"): this; point(pointSize?: number): this; useTexCoord(enabled?: boolean): this; camera(camera?: Camera): this; out(texture?: Texture | Output): this; buffer(name: string | Record, buffer?: Buffer | BufferProps): this; indices(...args: number[]): this; clear(): void; instances(count?: number): this; clone(props?: Partial, generated?: boolean): Model; }