import { Plane, Vector3, Curve3, ILoadingScreen } from "@babylonjs/core"; export declare function initArray(length: number, initializer: (i: number) => T): T[]; export declare function range(start: number, end: number, step: number): number[]; export declare function linspace(start: number, end: number, div: number): number[]; export declare function objectFlip(obj: any): any; export declare const rangeCap: (v: number, min: number, max: number) => number; export declare const remapRange: (v: number, src_low: number, src_high: number, dst_low: number, dst_high: number) => number; export declare const remapRangeWithCap: (v: number, src_low: number, src_high: number, dst_low: number, dst_high: number) => number; export declare const remapRangeNoCap: (v: number, src_low: number, src_high: number, dst_low: number, dst_high: number) => number; export declare function validVector3(v: Vector3): boolean; export type KeysMatching = { [K in keyof T]-?: T[K] extends V ? K : never; }[keyof T]; export type IfEquals = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) ? A : B; export type ReadonlyKeys = { [P in keyof T]-?: IfEquals<{ [Q in P]: T[P]; }, { -readonly [Q in P]: T[P]; }, never, P>; }[keyof T]; export declare function setEqual(as: Set, bs: Set): boolean; export declare function projectVectorOnPlane(projPlane: Plane, vec: Vector3): Vector3; export declare function round(value: number, precision: number): number; /** * Simple fixed length FIFO queue. */ export declare class fixedLengthQueue { readonly size: number; private _values; get values(): T[]; constructor(size: number); push(v: T): void; concat(arr: T[]): void; pop(): T | undefined; first(): T | null; last(): T | null; reset(): void; length(): number; } export declare function findPoint(curve: Curve3, x: number, eps?: number): number; export declare const LR: string[]; export declare class CustomLoadingScreen implements ILoadingScreen { private readonly renderingCanvas; private loadingDiv; loadingUIBackgroundColor: string; loadingUIText: string; constructor(renderingCanvas: HTMLCanvasElement, loadingDiv: HTMLDivElement); displayLoadingUI(): void; hideLoadingUI(): void; } export declare function pointLineDistance(point: Vector3, lineEndA: Vector3, lineEndB: Vector3): number;