import type P5 from 'p5'; type GeometryBuilderCallback = (builder: GeometryBuilder) => void; declare module 'P5' { interface Geometry { vertices: P5.Vector[]; vertexNormals: P5.Vector[]; faces: [number, number, number][]; uvs: number[]; edges: [number, number][]; vertexColors: number[]; gid: string; } interface __Graphics__ { buildGeometry(id: string, callback: GeometryBuilderCallback): P5.Geometry; freeGeometry(geometry: P5.Geometry): any; flatModelColors(): any; shadedModelColors(): any; } interface RendererGL { _vertexColorShader?: P5.Shader; _getVertexColorShader(): P5.Shader; } interface p5InstanceExtensions { __buildGeometry_scratch?: P5.Graphics; } } export declare class GeometryBuilder { private geometry; private stack; private readonly p5; private scratch; constructor(p5: P5.p5InstanceExtensions, id: string); get(): P5.Geometry; private addGeometry; model(geometry: P5.Geometry): void; beginShape(...args: Parameters): void; endShape(...args: Parameters): void; vertex(...args: Parameters): void; bezierVertex(...args: Parameters): void; quadraticVertex(...args: Parameters): void; curveVertex(...args: Parameters): void; curveTightness(...args: Parameters): void; normal(...args: Parameters): void; fill(...args: Parameters): void; plane(...args: Parameters): void; box(...args: Parameters): void; sphere(...args: Parameters): void; cylinder(...args: Parameters): void; cone(...args: Parameters): void; torus(...args: Parameters): void; triangle(...args: Parameters): void; circle(...args: Parameters): void; ellipse(...args: Parameters): void; arc(...args: Parameters): void; rectMode(mode: P5.RECT_MODE): void; rect(...args: Parameters): void; quad(...args: Parameters): void; bezier(...args: Parameters): void; curve(...args: Parameters): void; line(...args: Parameters): void; transform(): DOMMatrix; normalMatrix(): DOMMatrix; push(): void; pop(): void; translate(x: number, y: number, z?: number): void; scale(x: number, y?: number, z?: number): void; rotate(angle: number): void; rotateX(angle: number): void; rotateY(angle: number): void; rotateZ(angle: number): void; applyMatrix(...args: number[]): void; multiplyMatrix(...args: number[]): void; resetMatrix(): void; } export declare const buildGeometry: (target: P5.p5InstanceExtensions, id: string, callback: GeometryBuilderCallback) => P5.Geometry; export {};