import * as THREE from "three"; import { Mat, Point } from "mirada"; import { Scalar } from "../components"; import * as gm from "gammacv"; export declare type Size = { width: number; height: number; }; export declare type InputShape = { width: number; height: number; channels: number; }; export declare type ImageBuffer = InputShape & { data: ArrayBuffer; }; export declare const describeImageInput: (image: Mat) => InputShape; export declare const serializeImage: (image: Mat) => ImageBuffer; export declare const deserializeImage: (buffer: ImageBuffer) => Mat; export declare function parseIncludes(string: any): any; export declare function confineToEnum(en: any, values: T[]): T[]; export declare function randomIntFromInterval(min: number, max: number): number; export declare function uniq(a: any): any; export declare function normalizedToScreen(point2D: THREE.Vector2): THREE.Vector2; export declare function normalizePoint(point: Point, within: { width: number; height: number; }): Point; export declare function denormalizePoint(point: Point, within: { width: number; height: number; }): Point; export declare function getWidth(ratio: number, h: number): number; export declare function getHeight(ratio: number, w: number): number; export declare function getMaxAvailableSize(ratio: number, maxWidth: number, maxHeight: number): { height: number; width: number; }; export declare function getMinAvailableSize(ratio: number, minWidth: number, minHeight: number): { height: number; width: number; }; declare type TDeviceType = 'desktop' | 'tablet' | 'mobile'; export interface IDeviceInfo { type: TDeviceType; height: number; width: number; } export declare type DeferredExecutor = { resolve: (value: T | PromiseLike) => void; reject: (reason: any) => void; }; export declare const getDeviceInfo: () => IDeviceInfo; export declare const shuffle: (array: any[]) => any[]; export declare const cvType2String: (type: number) => string; export declare const INT_MAX = 2147483647; export declare const toRadians: (degrees: number) => number; export declare const toDegrees: (radians: number) => number; export declare const hfovToVFov: (hfovDegrees: number, aspectRatio: number) => number; export declare const vfovToHFov: (vfovDegrees: number, aspectRatio: number) => number; export declare const pointsToContour: (points: Point[]) => Mat; export declare const drawLines: (img: Mat, lines: gm.Line[]) => void; export declare class Bounds { x1: number; y1: number; x2: number; y2: number; constructor(x1: number, y1: number, x2: number, y2: number); get width(): number; get height(): number; get area(): number; } export declare const getCanvasMat: (canvas: HTMLCanvasElement, bounds: Bounds) => Mat | undefined; export declare const overlayMask: (_mask: Mat, img: Mat, value?: number, alpha?: number | undefined) => Mat; export declare const extractChannel: (image: Mat, index: number) => Mat; export declare const getTestCube: () => THREE.Mesh; export declare const placeInFrontOfCamera: (camera: THREE.Camera, obj: THREE.Object3D, dist: number) => void; export declare const worldPointFromScreenPoint: (screenPoint: THREE.Vector2, camera: THREE.Camera) => THREE.Vector3; export declare const getIntensity: (color: Scalar | Float64Array | number) => number; export declare const getMatrixType: (channels: number) => any; export declare const canvasCreate: (options?: { width?: number; height?: number; cpu?: boolean; }) => HTMLCanvasElement; export declare const matRetainCount: (obj: Mat) => any; export declare const matRetain: (obj: Mat, trackMemoryUsage?: boolean) => Mat; export declare const matRelease: (obj: Mat) => void; export declare const kmeansBestLabel: (labels: Mat) => number; export declare const kmeansPoints: (points: Point[], k: number, iterations?: number, eps?: number, attempts?: number) => Mat[]; export declare const fastDilateErode: (img: Mat, operation?: typeof import("mirada").dilate, kernelSize?: number, scale?: number, iterations?: number, maintainSize?: boolean, interpolation?: any) => Mat; export {};