/* tslint:disable */
/* eslint-disable */
export function dashedObject(shape: WasmVectorObject, num_dashes?: number, dashed_ratio?: number, dash_offset?: number, equal_lengths?: boolean): WasmVectorObject;
export function addFinalTip(shape: WasmVectorObject, tip_side_length: number, tip_color: WasmColor): WasmVectorObject;
export function addInitialTip(shape: WasmVectorObject, tip_side_length: number, tip_color: WasmColor): WasmVectorObject;
export function addBothSidesTips(shape: WasmVectorObject, tip_side_length: number, tip_color: WasmColor): WasmVectorObject;
export function arc(center: Array<any>, radius: number, start_angle: number, end_angle: number, num_points?: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function circle(center: Array<any>, radius: number, num_points?: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function ellipticalArc(center: Array<any>, x_radius: number, y_radius: number, start_angle: number, end_angle: number, num_points?: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function ellipse(center: Array<any>, x_radius: number, y_radius: number, num_points?: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function annularSector(center: Array<any>, inner_radius: number, outer_radius: number, start_angle: number, end_angle: number, num_points?: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function line(start_point: Array<any>, end_point: Array<any>, stroke_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function polygon(points: Array<any>, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function regularPolygon(center: Array<any>, side_length: number, num_sides: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function square(center: Array<any>, side_length: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function rectangle(center: Array<any>, width: number, height: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function equilateralTriangle(center: Array<any>, side_length: number, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function triangle(point1: Array<any>, point2: Array<any>, point3: Array<any>, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function rightTriangle(point1: Array<any>, point2: Array<any>, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): WasmVectorObject;
export function axes(x_min: number, x_max: number, x_step: number, y_min: number, y_max: number, y_step: number, center: Array<any>, x_length?: number, y_length?: number, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number, add_x_ticks?: boolean, add_y_ticks?: boolean, x_tick_size?: number, y_tick_size?: number, add_x_tip?: boolean, add_y_tip?: boolean): WasmVectorObject;
export function coordsToPoint(axes: WasmVectorObject, x: number, y: number, x_min: number, x_max: number, y_min: number, y_max: number): Array<any>;
export function pointToCoords(axes: WasmVectorObject, point: Array<any>, x_min: number, x_max: number, y_min: number, y_max: number): Array<any>;
export function parametricPlotInAxes(f: Function, t_min: number, t_max: number, t_step: number, axes: WasmVectorObject, x_min: number, x_max: number, y_min: number, y_max: number, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function plotInAxes(f: Function, x_min: number, x_max: number, y_min: number, y_max: number, x1: number, x2: number, x_step: number, axes: WasmVectorObject, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function contourPlotInAxes(f: Function, x_min: number, x_max: number, y_min: number, y_max: number, x_1: number, x_2: number, x_step: number, y_1: number, y_2: number, y_step: number, axes: WasmVectorObject, intervals: Float64Array, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function areaUnderCurve(axes: WasmVectorObject, plot: WasmVectorObject, x_min: number, x_max: number, y_min: number, y_max: number, x1: number, x2: number, color?: WasmColor, index?: number): WasmVectorObject;
export function riemannRectanglesForPlot(f: Function, x_min: number, x_max: number, y_min: number, y_max: number, direction: number, x_1: number, x_2: number, n_rects: number, axes: WasmVectorObject, stroke_color?: WasmColor, fill_color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function secantLineForPlot(f: Function, x_1: number, x_2: number, length: number, axes: WasmVectorObject, x_min: number, x_max: number, y_min: number, y_max: number, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function parametricFunction(f: Function, t_min: number, t_max: number, t_step: number, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function contourPlot(f: Function, x_min: number, x_max: number, y_min: number, y_max: number, x_step: number, y_step: number, intervals: Float64Array, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function realFunction(f: Function, x_min: number, x_max: number, x_step: number, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number): Promise<WasmVectorObject>;
export function numberLine(x_min: number, x_max: number, x_step: number, center: Array<any>, color?: WasmColor, stroke_width?: number, line_cap?: string, line_join?: string, index?: number, length?: number, add_tip?: boolean, add_ticks?: boolean, tick_size?: number, angle?: number): WasmVectorObject;
export function numberToPoint(number_line: WasmVectorObject, number: number, x_min: number, x_max: number): Array<any>;
export function pointToNumber(number_line: WasmVectorObject, point: Array<any>, x_min: number, x_max: number): number;
export function getNumbersTex(number_line: WasmVectorObject, numbers: Array<any>, number_to_vector: Function, x_min: number, x_max: number, height: number, direction?: Array<any>, buff?: number, index?: number): Promise<WasmVectorObject>;
export function svgToVector(svg: string, font_urls_map?: Map<any, any>): Promise<WasmVectorObject>;
export function rotMatrix(angle: number, axis: number): Array<any>;
export function matrixProduct(a: Array<any>, b: Array<any>): Array<any>;
export function rotMatrixEuler(phi: number, theta: number, gamma: number): Array<any>;
export function transposeMatrix(a: Array<any>): Array<any>;
export function applyMatrix(matrix: Array<any>, points: Array<any>): Array<any>;
export function shiftPoints3D(points: Array<any>, shift: Array<any>): Array<any>;
export function ensureValidThreeDColor(color: WasmGradientImageOrColor): WasmGradientImageOrColor;
export function getShadedRgb(color: WasmColor, point: Array<any>, unit_normal: Array<any>, light_source: WasmLightSource): WasmColor;
export function getStartCorner(points: Array<any>): Array<any>;
export function getEndCorner(points: Array<any>): Array<any>;
export function crossProduct(a: Array<any>, b: Array<any>): Array<any>;
export function getUnitNormal(v1: Array<any>, v2: Array<any>): Array<any>;
export function getStartAnchors(points: Array<any>): Array<any>;
export function getEndAnchors(points: Array<any>): Array<any>;
export function getAnchors(points: Array<any>): Array<any>;
export function getCornerUnitNormal(points: Array<any>, index: number): Array<any>;
export function getStartCornerUnitNormal(points: Array<any>): Array<any>;
export function getEndCornerUnitNormal(points: Array<any>): Array<any>;
export function getShadedColor(color: WasmGradientImageOrColor, points: Array<any>, light_source: WasmLightSource, camera: WasmCamera): WasmGradientImageOrColor;
export function projectPoints(points: Array<any>, camera: WasmCamera): Array<any>;
export function lineAsCubicBezier3D(point1: Array<any>, point2: Array<any>): Array<any>;
export function threeDAxes(x_min: number, x_max: number, x_step: number, y_min: number, y_max: number, y_step: number, z_min: number, z_max: number, z_step: number, center: Array<any>, x_length?: number, y_length?: number, z_length?: number, color?: WasmColor, stroke_width?: number, add_x_ticks?: boolean, add_y_ticks?: boolean, add_z_ticks?: boolean, x_tick_size?: number, y_tick_size?: number, z_tick_size?: number, add_x_tip?: boolean, add_y_tip?: boolean, add_z_tip?: boolean, n_pieces?: number, index?: number): WasmThreeDObject;
export function coordsToPoint3D(axes: WasmThreeDObject, coords: Array<any>, x_min: number, x_max: number, y_min: number, y_max: number, z_min: number, z_max: number): Array<any>;
export function pointToCoords3D(axes: WasmThreeDObject, point: Array<any>, x_min: number, x_max: number, y_min: number, y_max: number, z_min: number, z_max: number): Array<any>;
export function parametricPlotInAxes3D(axes: WasmThreeDObject, f: Function, u_min: number, u_max: number, v_min: number, v_max: number, u_segments: number, v_segments: number, x_min: number, x_max: number, y_min: number, y_max: number, z_min: number, z_max: number, fills: (WasmColor)[], strokes: (WasmColor)[], stroke_width: number, index?: number): Promise<WasmThreeDObject>;
export function plotInAxes3D(axes: WasmThreeDObject, f: Function, u_min: number, u_max: number, v_min: number, v_max: number, u_segments: number, v_segments: number, x_min: number, x_max: number, y_min: number, y_max: number, z_min: number, z_max: number, fills: (WasmColor)[], strokes: (WasmColor)[], stroke_width: number, index?: number): Promise<WasmThreeDObject>;
export function parametricLinePlotInAxes3D(axes: WasmThreeDObject, f: Function, u_min: number, u_max: number, u_segments: number, x_min: number, x_max: number, y_min: number, y_max: number, z_min: number, z_max: number, color: WasmColor, stroke_width: number, index?: number): Promise<WasmThreeDObject>;
export function sphere(center: Array<any>, radius: number, u_segments: number, v_segments: number, fill_colors: (WasmColor)[], stroke_colors: (WasmColor)[], stroke_width: number, index?: number): Promise<WasmThreeDObject>;
export function create(vec_obj: WasmVectorObject, t: number): WasmVectorObject;
export function create3D(vec_obj: WasmThreeDObject, t: number): WasmThreeDObject;
export function createAxes3D(axes: WasmThreeDObject, t: number, default_stroke_width?: number): WasmThreeDObject;
export function drawStrokeThenFill(vec_obj: WasmVectorObject, t: number, default_stroke_width?: number): WasmVectorObject;
export function drawStrokeThenFill3D(obj_3d: WasmThreeDObject, t: number, default_stroke_width?: number): WasmThreeDObject;
export function fadeIn(vec_obj: WasmVectorObject, scale_factor: number, shift: Array<any>, t: number): WasmVectorObject;
export function fadeIn3D(obj_3d: WasmThreeDObject, scale_factor: number, shift: Array<any>, t: number): WasmThreeDObject;
export function fadeOut(vec_obj: WasmVectorObject, scale_factor: number, shift: Array<any>, t: number): WasmVectorObject;
export function fadeOut3D(obj_3d: WasmThreeDObject, scale_factor: number, shift: Array<any>, t: number): WasmThreeDObject;
export function growArrowWithFinalTip(vec_obj: WasmVectorObject, t: number): WasmVectorObject;
export function morphShape3D(original: WasmThreeDObject, target: WasmThreeDObject, t: number): WasmThreeDObject;
export function rotateXAnimation3D(obj_3d: WasmThreeDObject, angle: number, t: number): WasmThreeDObject;
export function rotateYAnimation3D(obj_3d: WasmThreeDObject, angle: number, t: number): WasmThreeDObject;
export function rotateZAnimation3D(obj_3d: WasmThreeDObject, angle: number, t: number): WasmThreeDObject;
export function growArrowWithInitialTip(vec_obj: WasmVectorObject, t: number): WasmVectorObject;
export function growArrowWithTipsAtBothEnds(vec_obj: WasmVectorObject, t: number): WasmVectorObject;
export function growFromCenter(vec_obj: WasmVectorObject, t: number): WasmVectorObject;
export function growFromCenter3D(obj_3d: WasmThreeDObject, t: number): WasmThreeDObject;
export function morphShape(original: WasmVectorObject, target: WasmVectorObject, t: number): WasmVectorObject;
export function moveCameraSVG(top_left_corner: Array<any>, bottom_right_corner: Array<any>, scene: SVGScene, t: number): void;
export function moveCamera(top_left_corner: Array<any>, bottom_right_corner: Array<any>, scene: Scene, t: number): void;
export function rotateAnimation(vec_obj: WasmVectorObject, angle: number, t: number): WasmVectorObject;
export function scaleInPlace(vec_obj: WasmVectorObject, scale_factor: number, t: number): WasmVectorObject;
export function scaleInPlace3D(obj_3d: WasmThreeDObject, scale_factor: number, t: number): WasmThreeDObject;
export function setFillAnimation(vec_obj: WasmVectorObject, target_fill: WasmColor, t: number): WasmVectorObject;
export function setFillAnimation3D(obj_3d: WasmThreeDObject, target_fill: WasmColor, t: number): WasmThreeDObject;
export function setStrokeAnimation(vec_obj: WasmVectorObject, target_stroke: WasmColor, t: number): WasmVectorObject;
export function setStrokeAnimation3D(obj_3d: WasmThreeDObject, target_stroke: WasmColor, t: number): WasmThreeDObject;
export function shiftAnimation(vec_obj: WasmVectorObject, shift: Array<any>, t: number): WasmVectorObject;
export function shiftAnimation3D(obj_3d: WasmThreeDObject, shift: Array<any>, t: number): WasmThreeDObject;
export function showTemporaily(vec_obj: WasmVectorObject, t: number): WasmVectorObject;
export function spinningGrow(vec_obj: WasmVectorObject, angle: number, t: number): WasmVectorObject;
export function radian(ux: number, uy: number, vx: number, vy: number): number;
export function bezier3D(points: Array<any>, t: number): Array<any>;
export function interp(x: number, xp: Array<any>, fp: Array<any>): number;
export function sleep(ms: number): Promise<void>;
export function ellipticalArcPath(last_move: Array<any>, rx: number, ry: number, rotation: number, large_arc: boolean, sweep: boolean, x: number, y: number): Array<any>;
export function getBbox(points: Array<any>): Array<any>;
export function center(points: Array<any>, center_if_no_points: Array<any>): Array<any>;
export function center3D(points: Array<any>, center_if_no_points: Array<any>): Array<any>;
export function factorial(n: bigint): bigint;
export function hexToColor(hex: string, a: number): WasmColor;
export function bezier(points: Array<any>, t: number): Array<any>;
export function bezierNumber(numbers: Array<any>, t: number): number;
export function permutation(n: bigint, r: bigint): bigint;
export function choose(n: bigint, r: bigint): bigint;
export function distanceSquared(x1: number, y1: number, x2: number, y2: number): number;
export function distanceSquared3D(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number): number;
export function interpolate(x: number, y: number, t: number): number;
export function interpolateTuple(x: Array<any>, y: Array<any>, t: number): Array<any>;
export function interpolateTuple3D(x: Array<any>, y: Array<any>, t: number): Array<any>;
export function interpolateColor(x: WasmColor, y: WasmColor, t: number): WasmColor;
export function pointsFromAnchorsAndHandles(anchors1: Array<any>, handles1: Array<any>, handles2: Array<any>, anchors2: Array<any>): Array<any>;
export function startNewPath(points: Array<any>, point: Array<any>): Array<any>;
export function startNewPath3D(points: Array<any>, point: Array<any>): Array<any>;
export function hasNewPathBegun(points: Array<any>): boolean;
export function hasNewPathBegun3D(points: Array<any>): boolean;
export function considerPointsEquals3D(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number): boolean;
export function getNthSubpath(points: Array<any>, n: number): Array<any>;
export function getNthSubpath3D(points: Array<any>, n: number): Array<any>;
export function insertNCurvesToPointList3D(n: number, points: Array<any>): Array<any>;
export function alignPoints3D(points1: Array<any>, points2: Array<any>, center_if_no_points: Array<any>): Array<any>;
export function insertNCurvesToPointList(n: number, points: Array<any>): Array<any>;
export function nullPointAlign3D(obj1: WasmThreeDObject, obj2: WasmThreeDObject): Array<any>;
export function nullPointAlign(vec_obj1: WasmVectorObject, vec_obj2: WasmVectorObject): Array<any>;
export function alignPoints(points1: Array<any>, points2: Array<any>, center_if_no_points: Array<any>): Array<any>;
export function addNMoreSubobjects(vec_obj: WasmVectorObject, n: number, center_if_no_points: Array<any>): WasmVectorObject;
export function addNMoreSubobjects3D(obj_3d: WasmThreeDObject, n: number, center_if_no_points: Array<any>): WasmThreeDObject;
export function alignSubobjects3D(obj_3d1: WasmThreeDObject, obj_3d2: WasmThreeDObject, center_if_no_points: Array<any>): Array<any>;
export function alignData3D(obj_3d1: WasmThreeDObject, obj_3d2: WasmThreeDObject, skip_point_align: boolean, center_if_no_points: Array<any>): Array<any>;
export function alignSubobjects(vec_obj1: WasmVectorObject, vec_obj2: WasmVectorObject, center_if_no_points: Array<any>): (WasmVectorObject)[];
export function alignData(vec_obj1: WasmVectorObject, vec_obj2: WasmVectorObject, skip_point_align: boolean, center_if_no_points: Array<any>): Array<any>;
export function integerInterpolate(x: number, y: number, t: number): Array<any>;
export function lineAsCubicBezier(x1: number, y1: number, x2: number, y2: number): Array<any>;
export function quadraticBezierAsCubicBezier(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): Array<any>;
export function considerPointsEquals(x1: number, y1: number, x2: number, y2: number): boolean;
export function sigmoid(t: number): number;
export function linear(t: number): number;
export function smooth(t: number, inflection: number): number;
export function smoothstep(t: number): number;
export function smootherstep(t: number): number;
export function smoothererstep(t: number): number;
export function rushInto(t: number, inflection: number): number;
export function rushFrom(t: number, inflection: number): number;
export function slowInto(t: number): number;
export function doubleSmooth(t: number): number;
export function thereAndBack(t: number, inflection: number): number;
export function thereAndBackWithPause(t: number, pause_ratio: number): number;
export function runningStart(t: number, pull_factor: number): number;
export function notQuiteThere(func: Function, t: number, proportion: number): number;
export function wiggle(t: number, wiggles: number): number;
export function squishRateFunc(func: Function, t: number, a: number, b: number): number;
export function lingering(t: number): number;
export function exponentialDecay(t: number, half_life: number): number;
export function easeInSine(t: number): number;
export function easeOutSine(t: number): number;
export function easeInOutSine(t: number): number;
export function easeInQuad(t: number): number;
export function easeOutQuad(t: number): number;
export function easeInOutQuad(t: number): number;
export function easeInCubic(t: number): number;
export function easeOutCubic(t: number): number;
export function easeInOutCubic(t: number): number;
export function easeInQuart(t: number): number;
export function easeOutQuart(t: number): number;
export function easeInOutQuart(t: number): number;
export function easeInQuint(t: number): number;
export function easeOutQuint(t: number): number;
export function easeInOutQuint(t: number): number;
export function easeInExpo(t: number): number;
export function easeOutExpo(t: number): number;
export function easeInOutExpo(t: number): number;
export function easeInCirc(t: number): number;
export function easeOutCirc(t: number): number;
export function easeInOutCirc(t: number): number;
export function easeInBack(t: number): number;
export function easeOutBack(t: number): number;
export function easeInOutBack(t: number): number;
export function easeInElastic(t: number): number;
export function easeOutElastic(t: number): number;
export function easeInOutElastic(t: number): number;
export function easeOutBounce(t: number): number;
export function easeInBounce(t: number): number;
export function easeInOutBounce(t: number): number;
export function mathjax(expression: string, font_array_buffers?: Map<any, any>): Promise<WasmVectorObject>;
export function textToVector(text: string, font_array_buffers: Map<any, any>, font_family?: string, font_weight?: string, font_style?: string, x?: number, y?: number, font_size?: number): Promise<WasmVectorObject>;
export class SVGScene {
  free(): void;
  constructor(width: number, height: number, fps: number);
  getFps(): number;
  getHeight(): number;
  getWidth(): number;
  clear(): void;
  setUpdater(index: number, updater: Function): void;
  renderFrame(): Promise<any>;
  update(index: number): Promise<void>;
  removeUpdater(index: number): void;
  restore(n: number): void;
  saveState(n: number): void;
  setTopLeftCorner(x: number, y: number): void;
  setBottomRightCorner(x: number, y: number): void;
  getTopLeftCorner(): Array<any>;
  getBottomRightCorner(): Array<any>;
  setBackground(background: WasmGradientImageOrColor): void;
  add(vec_obj: WasmVectorObject): void;
  insert(index: number, vec_obj: WasmVectorObject): void;
  remove(index: number): void;
  getObjectsFromIndices(object_indices: Array<any>): Map<any, any>;
  setDivContainer(div_container: HTMLDivElement): void;
  sleep(duration_in_ms: number): Promise<void>;
  play(animation_func: Function, object_indices: Uint32Array, duration_in_frames: number, rate_func: Function): Promise<void>;
  makeFrame(animation_func: Function, objects: Array<any>, t: number): Promise<void>;
  setObjects(objects: Array<any>): void;
  getObjects(): Array<any>;
  wait(duration_in_frames: number, object_indices: Uint32Array): Promise<void>;
  setOnRendered(callback: Function): void;
  onRendered(): Promise<void>;
  setClass(index: number, id: string): void;
  waitUntil(condition: Function, object_indices: Uint32Array): Promise<void>;
  removeClass(index: number): void;
  getClass(index: number): string | undefined;
}
export class Scene {
  free(): void;
  constructor(width: number, height: number, fps: number);
  getFps(): number;
  getHeight(): number;
  getWidth(): number;
  setUpdater(index: number, updater: Function): void;
  update(index: number): Promise<void>;
  removeUpdater(index: number): void;
  renderFrame(): Promise<any>;
  clear(): void;
  restore(n: number): void;
  saveState(n: number): void;
  setTopLeftCorner(x: number, y: number): void;
  setBottomRightCorner(x: number, y: number): void;
  getTopLeftCorner(): Array<any>;
  getBottomRightCorner(): Array<any>;
  setBackground(background: WasmGradientImageOrColor): void;
  add(vec_obj: WasmVectorObject): void;
  insert(index: number, vec_obj: WasmVectorObject): void;
  remove(index: number): void;
  getObjects(): Array<any>;
  getObjectsFromIndices(object_indices: Array<any>): Map<any, any>;
  setCanvasContext(context: CanvasRenderingContext2D): void;
  sleep(duration_in_ms: number): Promise<void>;
  setObjects(objects: Array<any>): void;
  play(animation_func: Function, object_indices: Uint32Array, duration_in_frames: number, rate_func: Function): Promise<void>;
  makeFrame(animation_func: Function, objects: Array<any>, t: number): Promise<void>;
  wait(duration_in_frames: number, object_indices: Uint32Array): Promise<void>;
  setOnRendered(callback: Function): void;
  waitUntil(condition: Function, object_indices: Uint32Array): Promise<void>;
  onRendered(): Promise<void>;
  getLoadedImages(): Map<any, any>;
}
export class WasmCamera {
  free(): void;
  constructor(position: Array<any>, rotation: Array<any>, focal_distance: number, zoom: number);
  getPosition(): Array<any>;
  getRotation(): Array<any>;
  getFocalDistance(): number;
  getZoom(): number;
  clone(): WasmCamera;
}
export class WasmColor {
  free(): void;
  constructor(r: number, g: number, b: number, a: number);
  getR(): number;
  getG(): number;
  getB(): number;
  getA(): number;
}
export class WasmGradientImageOrColor {
  private constructor();
  free(): void;
  static fromColor(color: WasmColor): WasmGradientImageOrColor;
  static fromLinearGradient(linear_gradient: WasmLinearGradient): WasmGradientImageOrColor;
  static fromRadialGradient(radial_gradient: WasmRadialGradient): WasmGradientImageOrColor;
  static fromImage(image: WasmImage): WasmGradientImageOrColor;
  isColor(): boolean;
  isLinearGradient(): boolean;
  isRadialGradient(): boolean;
  isImage(): boolean;
  getColor(): WasmColor | undefined;
  getLinearGradient(): WasmLinearGradient | undefined;
  getRadialGradient(): WasmRadialGradient | undefined;
  getImage(): WasmImage | undefined;
  clone(): WasmGradientImageOrColor;
}
export class WasmGradientStop {
  free(): void;
  constructor(offset: number, color: WasmColor);
  getOffset(): number;
  getColor(): WasmColor;
}
export class WasmImage {
  free(): void;
  constructor(image_base64: string, mime_type: string, top: number, left: number, bottom: number, right: number, alpha: number);
  getImageBase64(): string;
  getMimeType(): string;
  getTop(): number;
  getLeft(): number;
  getBottom(): number;
  getRight(): number;
  getAlpha(): number;
}
export class WasmLightSource {
  free(): void;
  constructor(position: Array<any>);
  getPosition(): Array<any>;
  clone(): WasmLightSource;
}
export class WasmLinearGradient {
  free(): void;
  constructor(x1: number, y1: number, x2: number, y2: number, stops: (WasmGradientStop)[], alpha: number);
  getX1(): number;
  getY1(): number;
  getX2(): number;
  getY2(): number;
  getStops(): (WasmGradientStop)[];
  getAlpha(): number;
}
export class WasmRadialGradient {
  free(): void;
  constructor(cx: number, cy: number, r: number, fx: number, fy: number, stops: (WasmGradientStop)[], alpha: number);
  getCx(): number;
  getCy(): number;
  getR(): number;
  getFx(): number;
  getFy(): number;
  getStops(): (WasmGradientStop)[];
  getAlpha(): number;
}
export class WasmThreeDObject {
  free(): void;
  constructor(points: Array<any>, subobjects: (WasmThreeDObject)[], fill: WasmGradientImageOrColor, stroke: WasmGradientImageOrColor, stroke_width: number, index: number);
  getPoints(): Array<any>;
  getSubobjects(): (WasmThreeDObject)[];
  getFill(): WasmGradientImageOrColor;
  getStroke(): WasmGradientImageOrColor;
  getStrokeWidth(): number;
  getAnchorsAndHandles(): Array<any>;
  setAnchorsAndHandles(anchors_and_handles: Array<any>): WasmThreeDObject;
  scaleHandleToAnchorDistances(factor: number, recursive: boolean): WasmThreeDObject;
  setPoints(points: Array<any>): WasmThreeDObject;
  setSubobjects(subobjects: (WasmThreeDObject)[]): WasmThreeDObject;
  setFill(fill: WasmGradientImageOrColor, recursive: boolean): WasmThreeDObject;
  setStroke(stroke: WasmGradientImageOrColor, recursive: boolean): WasmThreeDObject;
  setStrokeWidth(stroke_width: number, recursive: boolean): WasmThreeDObject;
  getCubicBezierTuples(): Array<any>;
  getPartialCopy(start_t: number, end_t: number, recursive: boolean): WasmThreeDObject;
  setFillOpacity(opacity: number, recursive: boolean): WasmThreeDObject;
  setStrokeOpacity(opacity: number, recursive: boolean): WasmThreeDObject;
  getFillOpacity(): number;
  getStrokeOpacity(): number;
  getCriticalPoint(key_x: number, key_y: number, key_z: number): Array<any>;
  nextToOther(other: WasmThreeDObject, direction: Array<any>, buff: number, aligned_edge: Array<any>, recursive: boolean): WasmThreeDObject;
  nextToPoint(point: Array<any>, direction: Array<any>, buff: number, aligned_edge: Array<any>, recursive: boolean): WasmThreeDObject;
  arrangeSubobjects(direction: Array<any>, buff: number, aligned_edge: Array<any>, recursive: boolean): WasmThreeDObject;
  scale(factor: number, recursive: boolean): WasmThreeDObject;
  stretch(factor: Array<any>, recursive: boolean): WasmThreeDObject;
  shift(shift: Array<any>, recursive: boolean): WasmThreeDObject;
  rotateX(angle: number, recursive: boolean): WasmThreeDObject;
  rotateY(angle: number, recursive: boolean): WasmThreeDObject;
  rotateZ(angle: number, recursive: boolean): WasmThreeDObject;
  projectAndShade(camera: WasmCamera, light_source: WasmLightSource): WasmVectorObject;
  applyFunction(f: Function, recursive: boolean): Promise<WasmThreeDObject>;
  static fromUvFunction(uv_function: Function, u_range: Array<any>, v_range: Array<any>, u_segments: number, v_segments: number, fills: (WasmColor)[], strokes: (WasmColor)[], stroke_width: number, index?: number): Promise<WasmThreeDObject>;
  getBoundingBox(): Array<any>;
  getCenter(): Array<any>;
  mergedPoints(): Array<any>;
  moveTo(point: Array<any>, recursive: boolean): WasmThreeDObject;
  clone(): WasmThreeDObject;
  getIndex(): number;
  setIndex(index: number): WasmThreeDObject;
  static fromVectorObject(vector_object: WasmVectorObject): WasmThreeDObject;
  getSubobjectsRecursively(): (WasmThreeDObject)[];
}
export class WasmVectorObject {
  free(): void;
  constructor();
  getIndex(): number;
  incrementIndex(increment: number, recursive: boolean): WasmVectorObject;
  getPoints(): Array<any>;
  add(new_subobject: WasmVectorObject): WasmVectorObject;
  remove(index: number): WasmVectorObject;
  getSubobject(index: number): WasmVectorObject;
  sliceSubobjects(start: number, end: number): (WasmVectorObject)[];
  setSubobject(index: number, new_subobject: WasmVectorObject): WasmVectorObject;
  setSliceSubobjects(start: number, end: number, new_subobjects: (WasmVectorObject)[]): WasmVectorObject;
  getFill(): WasmGradientImageOrColor;
  getStroke(): WasmGradientImageOrColor;
  getSubobjectsRecursively(with_points?: boolean): (WasmVectorObject)[];
  getSubcurve(start: number, end: number): WasmVectorObject;
  getStrokeWidth(): number;
  getLineCap(): string;
  getLineJoin(): string;
  getPartialCopy(start: number, end: number, recursive: boolean): WasmVectorObject;
  getAnchorsAndHandles(): Array<any>;
  scaleHandleToAnchorDistances(scale: number, recursive: boolean): WasmVectorObject;
  setAnchorsAndHandles(anchors_and_handles: Array<any>): WasmVectorObject;
  getNthCurvePoints(n: number): Array<any>;
  getNthCurveLengthPieces(n: number, sample_points?: number): Float64Array;
  getNumCurves(): number;
  isClosed(): boolean;
  getSubpaths(): Array<any>;
  applyFunction(_function: Function, recursive: boolean, about_point?: Array<any>, about_edge?: Array<any>): Promise<WasmVectorObject>;
  getPieces(n_pieces: number): WasmVectorObject;
  getCubicBezierTuples(): Array<any>;
  getSubobjects(): (WasmVectorObject)[];
  scale(factor: number, recursive: boolean): WasmVectorObject;
  stretch(x_factor: number, y_factor: number, recursive: boolean): WasmVectorObject;
  shift(x_shift: number, y_shift: number, recursive: boolean): WasmVectorObject;
  mergedPoints(): Array<any>;
  getBoundingBox(): Array<any>;
  getCenter(): Array<any>;
  getCenterOfMass(): Array<any>;
  getHeight(): number;
  getWidth(): number;
  setIndex(index: number): WasmVectorObject;
  setFill(fill: WasmGradientImageOrColor, recursive: boolean): WasmVectorObject;
  setFillOpacity(opacity: number, recursive: boolean): WasmVectorObject;
  setFillRule(fill_rule: string, recursive: boolean): WasmVectorObject;
  moveTo(x: number, y: number, recursive: boolean): WasmVectorObject;
  getFillRule(): string;
  setStroke(stroke: WasmGradientImageOrColor, recursive: boolean): WasmVectorObject;
  setStrokeOpacity(opacity: number, recursive: boolean): WasmVectorObject;
  setStrokeWidth(width: number, recursive: boolean): WasmVectorObject;
  setLineCap(line_cap: string, recursive: boolean): WasmVectorObject;
  setLineJoin(line_join: string, recursive: boolean): WasmVectorObject;
  setPoints(points: Array<any>): WasmVectorObject;
  setSubobjects(subobjects: (WasmVectorObject)[]): WasmVectorObject;
  rotate(angle: number, recursive: boolean): WasmVectorObject;
  getCriticalPoint(key_x: number, key_y: number): Array<any>;
  getFillOpacity(): number;
  getStrokeOpacity(): number;
  matchStyle(other: WasmVectorObject): WasmVectorObject;
  nextToOther(other: WasmVectorObject, direction: Array<any>, buff: number, aligned_edge: Array<any>, recursive: boolean): WasmVectorObject;
  arrangeSubobjects(direction: Array<any>, buff: number, aligned_edge: Array<any>, recursive: boolean): WasmVectorObject;
  nextToPoint(point: Array<any>, direction: Array<any>, buff: number, aligned_edge: Array<any>, recursive: boolean): WasmVectorObject;
  clone(): WasmVectorObject;
}

export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;

export interface InitOutput {
  readonly memory: WebAssembly.Memory;
  readonly __wbg_wasmgradientimageorcolor_free: (a: number, b: number) => void;
  readonly wasmgradientimageorcolor_fromColor: (a: number) => number;
  readonly wasmgradientimageorcolor_fromLinearGradient: (a: number) => number;
  readonly wasmgradientimageorcolor_fromRadialGradient: (a: number) => number;
  readonly wasmgradientimageorcolor_fromImage: (a: number) => number;
  readonly wasmgradientimageorcolor_isColor: (a: number) => number;
  readonly wasmgradientimageorcolor_isLinearGradient: (a: number) => number;
  readonly wasmgradientimageorcolor_isRadialGradient: (a: number) => number;
  readonly wasmgradientimageorcolor_isImage: (a: number) => number;
  readonly wasmgradientimageorcolor_getColor: (a: number) => number;
  readonly wasmgradientimageorcolor_getLinearGradient: (a: number) => number;
  readonly wasmgradientimageorcolor_getRadialGradient: (a: number) => number;
  readonly wasmgradientimageorcolor_getImage: (a: number) => number;
  readonly wasmgradientimageorcolor_clone: (a: number) => number;
  readonly __wbg_wasmcolor_free: (a: number, b: number) => void;
  readonly wasmcolor_new: (a: number, b: number, c: number, d: number) => number;
  readonly wasmcolor_getR: (a: number) => number;
  readonly wasmcolor_getG: (a: number) => number;
  readonly wasmcolor_getB: (a: number) => number;
  readonly wasmcolor_getA: (a: number) => number;
  readonly __wbg_wasmgradientstop_free: (a: number, b: number) => void;
  readonly wasmgradientstop_new: (a: number, b: number) => number;
  readonly wasmgradientstop_getOffset: (a: number) => number;
  readonly wasmgradientstop_getColor: (a: number) => number;
  readonly __wbg_wasmlineargradient_free: (a: number, b: number) => void;
  readonly wasmlineargradient_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
  readonly wasmlineargradient_getStops: (a: number) => [number, number];
  readonly __wbg_wasmradialgradient_free: (a: number, b: number) => void;
  readonly wasmradialgradient_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
  readonly wasmradialgradient_getStops: (a: number) => [number, number];
  readonly wasmradialgradient_getAlpha: (a: number) => number;
  readonly __wbg_wasmimage_free: (a: number, b: number) => void;
  readonly wasmimage_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
  readonly wasmimage_getImageBase64: (a: number) => [number, number];
  readonly wasmimage_getMimeType: (a: number) => [number, number];
  readonly __wbg_wasmvectorobject_free: (a: number, b: number) => void;
  readonly wasmvectorobject_new: () => number;
  readonly wasmvectorobject_getIndex: (a: number) => number;
  readonly wasmvectorobject_incrementIndex: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_getPoints: (a: number) => any;
  readonly wasmvectorobject_add: (a: number, b: number) => number;
  readonly wasmvectorobject_remove: (a: number, b: number) => number;
  readonly wasmvectorobject_getSubobject: (a: number, b: number) => number;
  readonly wasmvectorobject_sliceSubobjects: (a: number, b: number, c: number) => [number, number];
  readonly wasmvectorobject_setSubobject: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_setSliceSubobjects: (a: number, b: number, c: number, d: number, e: number) => number;
  readonly wasmvectorobject_getFill: (a: number) => number;
  readonly wasmvectorobject_getStroke: (a: number) => number;
  readonly wasmvectorobject_getSubobjectsRecursively: (a: number, b: number) => [number, number];
  readonly wasmvectorobject_getSubcurve: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_getStrokeWidth: (a: number) => number;
  readonly wasmvectorobject_getLineCap: (a: number) => [number, number];
  readonly wasmvectorobject_getLineJoin: (a: number) => [number, number];
  readonly wasmvectorobject_getPartialCopy: (a: number, b: number, c: number, d: number) => number;
  readonly wasmvectorobject_getAnchorsAndHandles: (a: number) => any;
  readonly wasmvectorobject_scaleHandleToAnchorDistances: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_setAnchorsAndHandles: (a: number, b: any) => number;
  readonly wasmvectorobject_getNthCurvePoints: (a: number, b: number) => any;
  readonly wasmvectorobject_getNthCurveLengthPieces: (a: number, b: number, c: number) => [number, number];
  readonly wasmvectorobject_getNumCurves: (a: number) => number;
  readonly wasmvectorobject_isClosed: (a: number) => number;
  readonly wasmvectorobject_getSubpaths: (a: number) => any;
  readonly wasmvectorobject_applyFunction: (a: number, b: any, c: number, d: number, e: number) => any;
  readonly wasmvectorobject_getPieces: (a: number, b: number) => number;
  readonly wasmvectorobject_getCubicBezierTuples: (a: number) => any;
  readonly wasmvectorobject_getSubobjects: (a: number) => [number, number];
  readonly wasmvectorobject_scale: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_stretch: (a: number, b: number, c: number, d: number) => number;
  readonly wasmvectorobject_shift: (a: number, b: number, c: number, d: number) => number;
  readonly wasmvectorobject_mergedPoints: (a: number) => any;
  readonly wasmvectorobject_getBoundingBox: (a: number) => any;
  readonly wasmvectorobject_getCenter: (a: number) => any;
  readonly wasmvectorobject_getCenterOfMass: (a: number) => any;
  readonly wasmvectorobject_getHeight: (a: number) => number;
  readonly wasmvectorobject_getWidth: (a: number) => number;
  readonly wasmvectorobject_setIndex: (a: number, b: number) => number;
  readonly wasmvectorobject_setFill: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_setFillOpacity: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_setFillRule: (a: number, b: number, c: number, d: number) => number;
  readonly wasmvectorobject_moveTo: (a: number, b: number, c: number, d: number) => number;
  readonly wasmvectorobject_getFillRule: (a: number) => [number, number];
  readonly wasmvectorobject_setStroke: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_setStrokeOpacity: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_setStrokeWidth: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_setLineCap: (a: number, b: number, c: number, d: number) => number;
  readonly wasmvectorobject_setLineJoin: (a: number, b: number, c: number, d: number) => number;
  readonly wasmvectorobject_setPoints: (a: number, b: any) => number;
  readonly wasmvectorobject_setSubobjects: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_rotate: (a: number, b: number, c: number) => number;
  readonly wasmvectorobject_getCriticalPoint: (a: number, b: number, c: number) => any;
  readonly wasmvectorobject_getFillOpacity: (a: number) => number;
  readonly wasmvectorobject_getStrokeOpacity: (a: number) => number;
  readonly wasmvectorobject_matchStyle: (a: number, b: number) => number;
  readonly wasmvectorobject_nextToOther: (a: number, b: number, c: any, d: number, e: any, f: number) => number;
  readonly wasmvectorobject_arrangeSubobjects: (a: number, b: any, c: number, d: any, e: number) => number;
  readonly wasmvectorobject_nextToPoint: (a: number, b: any, c: any, d: number, e: any, f: number) => number;
  readonly wasmvectorobject_clone: (a: number) => number;
  readonly dashedObject: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
  readonly addFinalTip: (a: number, b: number, c: number) => number;
  readonly addInitialTip: (a: number, b: number, c: number) => number;
  readonly addBothSidesTips: (a: number, b: number, c: number) => number;
  readonly arc: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => number;
  readonly circle: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => number;
  readonly ellipticalArc: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => number;
  readonly ellipse: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => number;
  readonly annularSector: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => number;
  readonly line: (a: any, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
  readonly polygon: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
  readonly regularPolygon: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => number;
  readonly square: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => number;
  readonly rectangle: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => number;
  readonly equilateralTriangle: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => number;
  readonly triangle: (a: any, b: any, c: any, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => number;
  readonly rightTriangle: (a: any, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => number;
  readonly axes: (a: number, b: number, c: number, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number) => number;
  readonly coordsToPoint: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => any;
  readonly pointToCoords: (a: number, b: any, c: number, d: number, e: number, f: number) => any;
  readonly parametricPlotInAxes: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => any;
  readonly plotInAxes: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => any;
  readonly contourPlotInAxes: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number) => any;
  readonly areaUnderCurve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
  readonly riemannRectanglesForPlot: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number) => any;
  readonly secantLineForPlot: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => any;
  readonly parametricFunction: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => any;
  readonly contourPlot: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => any;
  readonly realFunction: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => any;
  readonly numberLine: (a: number, b: number, c: number, d: any, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number) => number;
  readonly numberToPoint: (a: number, b: number, c: number, d: number) => any;
  readonly pointToNumber: (a: number, b: any, c: number, d: number) => number;
  readonly getNumbersTex: (a: number, b: any, c: any, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => any;
  readonly svgToVector: (a: number, b: number, c: number) => any;
  readonly wasmlineargradient_getX1: (a: number) => number;
  readonly wasmlineargradient_getY1: (a: number) => number;
  readonly wasmlineargradient_getX2: (a: number) => number;
  readonly wasmlineargradient_getY2: (a: number) => number;
  readonly wasmlineargradient_getAlpha: (a: number) => number;
  readonly wasmradialgradient_getCx: (a: number) => number;
  readonly wasmradialgradient_getCy: (a: number) => number;
  readonly wasmradialgradient_getR: (a: number) => number;
  readonly wasmradialgradient_getFx: (a: number) => number;
  readonly wasmradialgradient_getFy: (a: number) => number;
  readonly wasmimage_getTop: (a: number) => number;
  readonly wasmimage_getLeft: (a: number) => number;
  readonly wasmimage_getBottom: (a: number) => number;
  readonly wasmimage_getRight: (a: number) => number;
  readonly wasmimage_getAlpha: (a: number) => number;
  readonly rotMatrix: (a: number, b: number) => any;
  readonly matrixProduct: (a: any, b: any) => any;
  readonly rotMatrixEuler: (a: number, b: number, c: number) => any;
  readonly transposeMatrix: (a: any) => any;
  readonly applyMatrix: (a: any, b: any) => any;
  readonly shiftPoints3D: (a: any, b: any) => any;
  readonly ensureValidThreeDColor: (a: number) => number;
  readonly __wbg_wasmlightsource_free: (a: number, b: number) => void;
  readonly wasmlightsource_new: (a: any) => number;
  readonly wasmlightsource_getPosition: (a: number) => any;
  readonly wasmlightsource_clone: (a: number) => number;
  readonly __wbg_wasmcamera_free: (a: number, b: number) => void;
  readonly wasmcamera_new: (a: any, b: any, c: number, d: number) => number;
  readonly wasmcamera_getPosition: (a: number) => any;
  readonly wasmcamera_getRotation: (a: number) => any;
  readonly wasmcamera_getFocalDistance: (a: number) => number;
  readonly wasmcamera_getZoom: (a: number) => number;
  readonly wasmcamera_clone: (a: number) => number;
  readonly getShadedRgb: (a: number, b: any, c: any, d: number) => number;
  readonly getStartCorner: (a: any) => any;
  readonly getEndCorner: (a: any) => any;
  readonly crossProduct: (a: any, b: any) => any;
  readonly getUnitNormal: (a: any, b: any) => any;
  readonly getStartAnchors: (a: any) => any;
  readonly getEndAnchors: (a: any) => any;
  readonly getAnchors: (a: any) => any;
  readonly getCornerUnitNormal: (a: any, b: number) => any;
  readonly getStartCornerUnitNormal: (a: any) => any;
  readonly getEndCornerUnitNormal: (a: any) => any;
  readonly getShadedColor: (a: number, b: any, c: number, d: number) => number;
  readonly projectPoints: (a: any, b: number) => any;
  readonly lineAsCubicBezier3D: (a: any, b: any) => any;
  readonly __wbg_wasmthreedobject_free: (a: number, b: number) => void;
  readonly wasmthreedobject_new: (a: any, b: number, c: number, d: number, e: number, f: number, g: number) => number;
  readonly wasmthreedobject_getPoints: (a: number) => any;
  readonly wasmthreedobject_getSubobjects: (a: number) => [number, number];
  readonly wasmthreedobject_getFill: (a: number) => number;
  readonly wasmthreedobject_getStroke: (a: number) => number;
  readonly wasmthreedobject_getStrokeWidth: (a: number) => number;
  readonly wasmthreedobject_getAnchorsAndHandles: (a: number) => any;
  readonly wasmthreedobject_setAnchorsAndHandles: (a: number, b: any) => number;
  readonly wasmthreedobject_scaleHandleToAnchorDistances: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_setPoints: (a: number, b: any) => number;
  readonly wasmthreedobject_setSubobjects: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_setFill: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_setStroke: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_setStrokeWidth: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_getCubicBezierTuples: (a: number) => any;
  readonly wasmthreedobject_getPartialCopy: (a: number, b: number, c: number, d: number) => number;
  readonly wasmthreedobject_setFillOpacity: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_setStrokeOpacity: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_getFillOpacity: (a: number) => number;
  readonly wasmthreedobject_getStrokeOpacity: (a: number) => number;
  readonly wasmthreedobject_getCriticalPoint: (a: number, b: number, c: number, d: number) => any;
  readonly wasmthreedobject_nextToOther: (a: number, b: number, c: any, d: number, e: any, f: number) => number;
  readonly wasmthreedobject_nextToPoint: (a: number, b: any, c: any, d: number, e: any, f: number) => number;
  readonly wasmthreedobject_arrangeSubobjects: (a: number, b: any, c: number, d: any, e: number) => number;
  readonly wasmthreedobject_scale: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_stretch: (a: number, b: any, c: number) => number;
  readonly wasmthreedobject_shift: (a: number, b: any, c: number) => number;
  readonly wasmthreedobject_rotateX: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_rotateY: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_rotateZ: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_projectAndShade: (a: number, b: number, c: number) => number;
  readonly wasmthreedobject_applyFunction: (a: number, b: any, c: number) => any;
  readonly wasmthreedobject_fromUvFunction: (a: any, b: any, c: any, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => any;
  readonly wasmthreedobject_getBoundingBox: (a: number) => any;
  readonly wasmthreedobject_getCenter: (a: number) => any;
  readonly wasmthreedobject_mergedPoints: (a: number) => any;
  readonly wasmthreedobject_moveTo: (a: number, b: any, c: number) => number;
  readonly wasmthreedobject_clone: (a: number) => number;
  readonly wasmthreedobject_getIndex: (a: number) => number;
  readonly wasmthreedobject_setIndex: (a: number, b: number) => number;
  readonly wasmthreedobject_fromVectorObject: (a: number) => number;
  readonly wasmthreedobject_getSubobjectsRecursively: (a: number) => [number, number];
  readonly threeDAxes: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: any, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number) => number;
  readonly coordsToPoint3D: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number) => any;
  readonly pointToCoords3D: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number) => any;
  readonly parametricPlotInAxes3D: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number) => any;
  readonly plotInAxes3D: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number) => any;
  readonly parametricLinePlotInAxes3D: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => any;
  readonly sphere: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => any;
  readonly create: (a: number, b: number) => number;
  readonly create3D: (a: number, b: number) => number;
  readonly createAxes3D: (a: number, b: number, c: number, d: number) => number;
  readonly drawStrokeThenFill: (a: number, b: number, c: number, d: number) => number;
  readonly drawStrokeThenFill3D: (a: number, b: number, c: number, d: number) => number;
  readonly fadeIn: (a: number, b: number, c: any, d: number) => number;
  readonly fadeIn3D: (a: number, b: number, c: any, d: number) => number;
  readonly fadeOut: (a: number, b: number, c: any, d: number) => number;
  readonly fadeOut3D: (a: number, b: number, c: any, d: number) => number;
  readonly growArrowWithFinalTip: (a: number, b: number) => number;
  readonly morphShape3D: (a: number, b: number, c: number) => number;
  readonly rotateXAnimation3D: (a: number, b: number, c: number) => number;
  readonly rotateYAnimation3D: (a: number, b: number, c: number) => number;
  readonly rotateZAnimation3D: (a: number, b: number, c: number) => number;
  readonly growArrowWithInitialTip: (a: number, b: number) => number;
  readonly growArrowWithTipsAtBothEnds: (a: number, b: number) => number;
  readonly growFromCenter: (a: number, b: number) => number;
  readonly growFromCenter3D: (a: number, b: number) => number;
  readonly morphShape: (a: number, b: number, c: number) => number;
  readonly moveCameraSVG: (a: any, b: any, c: number, d: number) => void;
  readonly moveCamera: (a: any, b: any, c: number, d: number) => void;
  readonly rotateAnimation: (a: number, b: number, c: number) => number;
  readonly scaleInPlace: (a: number, b: number, c: number) => number;
  readonly scaleInPlace3D: (a: number, b: number, c: number) => number;
  readonly setFillAnimation: (a: number, b: number, c: number) => number;
  readonly setFillAnimation3D: (a: number, b: number, c: number) => number;
  readonly setStrokeAnimation: (a: number, b: number, c: number) => number;
  readonly setStrokeAnimation3D: (a: number, b: number, c: number) => number;
  readonly shiftAnimation: (a: number, b: any, c: number) => number;
  readonly shiftAnimation3D: (a: number, b: any, c: number) => number;
  readonly showTemporaily: (a: number, b: number) => number;
  readonly spinningGrow: (a: number, b: number, c: number) => number;
  readonly radian: (a: number, b: number, c: number, d: number) => number;
  readonly bezier3D: (a: any, b: number) => any;
  readonly interp: (a: number, b: any, c: any) => number;
  readonly sleep: (a: number) => any;
  readonly ellipticalArcPath: (a: any, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => any;
  readonly getBbox: (a: any) => any;
  readonly center: (a: any, b: any) => any;
  readonly center3D: (a: any, b: any) => any;
  readonly factorial: (a: bigint) => bigint;
  readonly hexToColor: (a: number, b: number, c: number) => number;
  readonly bezier: (a: any, b: number) => any;
  readonly bezierNumber: (a: any, b: number) => number;
  readonly permutation: (a: bigint, b: bigint) => bigint;
  readonly choose: (a: bigint, b: bigint) => bigint;
  readonly distanceSquared: (a: number, b: number, c: number, d: number) => number;
  readonly distanceSquared3D: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
  readonly interpolate: (a: number, b: number, c: number) => number;
  readonly interpolateTuple: (a: any, b: any, c: number) => any;
  readonly interpolateTuple3D: (a: any, b: any, c: number) => any;
  readonly interpolateColor: (a: number, b: number, c: number) => number;
  readonly pointsFromAnchorsAndHandles: (a: any, b: any, c: any, d: any) => any;
  readonly startNewPath: (a: any, b: any) => any;
  readonly startNewPath3D: (a: any, b: any) => any;
  readonly hasNewPathBegun: (a: any) => number;
  readonly hasNewPathBegun3D: (a: any) => number;
  readonly considerPointsEquals3D: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
  readonly getNthSubpath: (a: any, b: number) => any;
  readonly getNthSubpath3D: (a: any, b: number) => any;
  readonly insertNCurvesToPointList3D: (a: number, b: any) => any;
  readonly alignPoints3D: (a: any, b: any, c: any) => any;
  readonly insertNCurvesToPointList: (a: number, b: any) => any;
  readonly nullPointAlign3D: (a: number, b: number) => any;
  readonly nullPointAlign: (a: number, b: number) => any;
  readonly alignPoints: (a: any, b: any, c: any) => any;
  readonly addNMoreSubobjects: (a: number, b: number, c: any) => number;
  readonly addNMoreSubobjects3D: (a: number, b: number, c: any) => number;
  readonly alignSubobjects3D: (a: number, b: number, c: any) => any;
  readonly alignData3D: (a: number, b: number, c: number, d: any) => any;
  readonly alignSubobjects: (a: number, b: number, c: any) => [number, number];
  readonly alignData: (a: number, b: number, c: number, d: any) => any;
  readonly integerInterpolate: (a: number, b: number, c: number) => any;
  readonly lineAsCubicBezier: (a: number, b: number, c: number, d: number) => any;
  readonly quadraticBezierAsCubicBezier: (a: number, b: number, c: number, d: number, e: number, f: number) => any;
  readonly considerPointsEquals: (a: number, b: number, c: number, d: number) => number;
  readonly sigmoid: (a: number) => number;
  readonly linear: (a: number) => number;
  readonly smooth: (a: number, b: number) => number;
  readonly smoothstep: (a: number) => number;
  readonly smootherstep: (a: number) => number;
  readonly smoothererstep: (a: number) => number;
  readonly rushInto: (a: number, b: number) => number;
  readonly rushFrom: (a: number, b: number) => number;
  readonly doubleSmooth: (a: number) => number;
  readonly thereAndBack: (a: number, b: number) => number;
  readonly thereAndBackWithPause: (a: number, b: number) => number;
  readonly runningStart: (a: number, b: number) => number;
  readonly notQuiteThere: (a: any, b: number, c: number) => number;
  readonly wiggle: (a: number, b: number) => number;
  readonly squishRateFunc: (a: any, b: number, c: number, d: number) => number;
  readonly lingering: (a: number) => number;
  readonly exponentialDecay: (a: number, b: number) => number;
  readonly easeInSine: (a: number) => number;
  readonly easeOutSine: (a: number) => number;
  readonly easeInOutSine: (a: number) => number;
  readonly easeInQuad: (a: number) => number;
  readonly easeOutQuad: (a: number) => number;
  readonly easeInOutQuad: (a: number) => number;
  readonly easeInCubic: (a: number) => number;
  readonly easeOutCubic: (a: number) => number;
  readonly easeInOutCubic: (a: number) => number;
  readonly easeInQuart: (a: number) => number;
  readonly easeOutQuart: (a: number) => number;
  readonly easeInOutQuart: (a: number) => number;
  readonly easeInQuint: (a: number) => number;
  readonly easeOutQuint: (a: number) => number;
  readonly easeInOutQuint: (a: number) => number;
  readonly easeInExpo: (a: number) => number;
  readonly easeOutExpo: (a: number) => number;
  readonly easeInOutExpo: (a: number) => number;
  readonly easeInCirc: (a: number) => number;
  readonly easeOutCirc: (a: number) => number;
  readonly easeInOutCirc: (a: number) => number;
  readonly easeInBack: (a: number) => number;
  readonly easeInOutBack: (a: number) => number;
  readonly easeInElastic: (a: number) => number;
  readonly easeOutElastic: (a: number) => number;
  readonly easeInOutElastic: (a: number) => number;
  readonly easeInBounce: (a: number) => number;
  readonly easeInOutBounce: (a: number) => number;
  readonly slowInto: (a: number) => number;
  readonly easeOutBounce: (a: number) => number;
  readonly easeOutBack: (a: number) => number;
  readonly mathjax: (a: number, b: number, c: number) => any;
  readonly textToVector: (a: number, b: number, c: any, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => any;
  readonly __wbg_svgscene_free: (a: number, b: number) => void;
  readonly svgscene_new_js: (a: number, b: number, c: number) => number;
  readonly svgscene_getFps: (a: number) => number;
  readonly svgscene_getHeight: (a: number) => number;
  readonly svgscene_getWidth: (a: number) => number;
  readonly svgscene_clear: (a: number) => void;
  readonly svgscene_setUpdater: (a: number, b: number, c: any) => void;
  readonly svgscene_renderFrame: (a: number) => any;
  readonly svgscene_update: (a: number, b: number) => any;
  readonly svgscene_removeUpdater: (a: number, b: number) => void;
  readonly svgscene_restore: (a: number, b: number) => void;
  readonly svgscene_saveState: (a: number, b: number) => void;
  readonly svgscene_setTopLeftCorner: (a: number, b: number, c: number) => void;
  readonly svgscene_setBottomRightCorner: (a: number, b: number, c: number) => void;
  readonly svgscene_getTopLeftCorner: (a: number) => any;
  readonly svgscene_getBottomRightCorner: (a: number) => any;
  readonly svgscene_setBackground: (a: number, b: number) => void;
  readonly svgscene_add: (a: number, b: number) => void;
  readonly svgscene_insert: (a: number, b: number, c: number) => void;
  readonly svgscene_remove: (a: number, b: number) => void;
  readonly svgscene_getObjectsFromIndices: (a: number, b: any) => any;
  readonly svgscene_setDivContainer: (a: number, b: any) => void;
  readonly svgscene_sleep: (a: number, b: number) => any;
  readonly svgscene_play: (a: number, b: any, c: number, d: number, e: number, f: any) => any;
  readonly svgscene_makeFrame: (a: number, b: any, c: any, d: number) => any;
  readonly svgscene_setObjects: (a: number, b: any) => void;
  readonly svgscene_getObjects: (a: number) => any;
  readonly svgscene_wait: (a: number, b: number, c: number, d: number) => any;
  readonly svgscene_setOnRendered: (a: number, b: any) => void;
  readonly svgscene_onRendered: (a: number) => any;
  readonly svgscene_setClass: (a: number, b: number, c: number, d: number) => void;
  readonly svgscene_waitUntil: (a: number, b: any, c: number, d: number) => any;
  readonly svgscene_removeClass: (a: number, b: number) => void;
  readonly svgscene_getClass: (a: number, b: number) => [number, number];
  readonly __wbg_scene_free: (a: number, b: number) => void;
  readonly scene_new_js: (a: number, b: number, c: number) => number;
  readonly scene_getFps: (a: number) => number;
  readonly scene_getHeight: (a: number) => number;
  readonly scene_getWidth: (a: number) => number;
  readonly scene_setUpdater: (a: number, b: number, c: any) => void;
  readonly scene_update: (a: number, b: number) => any;
  readonly scene_removeUpdater: (a: number, b: number) => void;
  readonly scene_renderFrame: (a: number) => any;
  readonly scene_clear: (a: number) => void;
  readonly scene_restore: (a: number, b: number) => void;
  readonly scene_saveState: (a: number, b: number) => void;
  readonly scene_setTopLeftCorner: (a: number, b: number, c: number) => void;
  readonly scene_setBottomRightCorner: (a: number, b: number, c: number) => void;
  readonly scene_getTopLeftCorner: (a: number) => any;
  readonly scene_getBottomRightCorner: (a: number) => any;
  readonly scene_setBackground: (a: number, b: number) => void;
  readonly scene_add: (a: number, b: number) => void;
  readonly scene_insert: (a: number, b: number, c: number) => void;
  readonly scene_remove: (a: number, b: number) => void;
  readonly scene_getObjects: (a: number) => any;
  readonly scene_getObjectsFromIndices: (a: number, b: any) => any;
  readonly scene_setCanvasContext: (a: number, b: any) => void;
  readonly scene_sleep: (a: number, b: number) => any;
  readonly scene_setObjects: (a: number, b: any) => void;
  readonly scene_play: (a: number, b: any, c: number, d: number, e: number, f: any) => any;
  readonly scene_makeFrame: (a: number, b: any, c: any, d: number) => any;
  readonly scene_wait: (a: number, b: number, c: number, d: number) => any;
  readonly scene_setOnRendered: (a: number, b: any) => void;
  readonly scene_waitUntil: (a: number, b: any, c: number, d: number) => any;
  readonly scene_onRendered: (a: number) => any;
  readonly scene_getLoadedImages: (a: number) => any;
  readonly __wbindgen_exn_store: (a: number) => void;
  readonly __externref_table_alloc: () => number;
  readonly __wbindgen_export_2: WebAssembly.Table;
  readonly __wbindgen_export_3: WebAssembly.Table;
  readonly __wbindgen_malloc: (a: number, b: number) => number;
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
  readonly __externref_drop_slice: (a: number, b: number) => void;
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
  readonly closure272_externref_shim: (a: number, b: number) => any;
  readonly closure276_externref_shim: (a: number, b: number, c: number, d: number, e: number) => any;
  readonly _dyn_core__ops__function__Fn_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__he2c0e26d7b515aac: (a: number, b: number) => void;
  readonly closure282_externref_shim: (a: number, b: number, c: number) => any;
  readonly closure285_externref_shim: (a: number, b: number, c: number, d: number) => any;
  readonly closure310_externref_shim: (a: number, b: number, c: any) => void;
  readonly closure357_externref_shim: (a: number, b: number, c: any, d: any) => void;
  readonly __wbindgen_start: () => void;
}

export type SyncInitInput = BufferSource | WebAssembly.Module;
/**
* Instantiates the given `module`, which can either be bytes or
* a precompiled `WebAssembly.Module`.
*
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
*
* @returns {InitOutput}
*/
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;

/**
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
* for everything else, calls `WebAssembly.instantiate` directly.
*
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
*
* @returns {Promise<InitOutput>}
*/
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
