import { CBAREventHandler, CBAREventType, CBARMode, CBARRenderContext, CBARSurfaceType, CBARToolMode, Point2D } from "./CBARTypes"; import { CBARScene, CBARSceneProperties } from "./components/CBARScene"; import { CBServerConfig } from "../backend"; export declare type ImageExportOptions = { format: 'jpeg' | 'png'; quality?: number; }; export declare enum CBARFeatureTracking { None = "none", World = "world", Face = "face", Card = "card", Page = "page", Classifier = "classifier" } export declare enum CBARCameraFacing { Default = "default", Environment = "environment", User = "user" } export declare enum CBARCameraResolution { Default = 1280, Low = 640, HighDef = 2160, Maximum = 4096 } export declare enum CBARDebug { None = 0, OpticalFlow = 1, HoughLines = 2, TrackedLines = 4, ColorSegmentation = 8, All = 15 } export declare enum ZoomState { ZoomedIn = "zoom-in", ZoomedOut = "zoom-out", FitScreen = "fit-screen" } export interface CBARReceiver { loadSceneAtPath: (context: CBARContext, jsonPath: string, surfaceTypes?: CBARSurfaceType[]) => Promise; loadSceneData: (context: CBARContext, json: CBARSceneProperties, surfaceTypes?: CBARSurfaceType[], room?: string | null | undefined, subroom?: string | null | undefined) => Promise; startVideoCamera: (context: CBARContext, tracking: CBARFeatureTracking, facing: CBARCameraFacing, resolution: CBARCameraResolution) => Promise; stopVideoCamera: (context: CBARContext) => void; captureToStill: (context: CBARContext) => void; captureScreenshot: (context: CBARContext, format?: ImageExportOptions) => Promise; loadImage: (context: CBARContext, image: HTMLImageElement) => void; refresh: (context: CBARContext) => void; getMode: (context: CBARContext) => CBARMode; getToolMode: (context: CBARContext) => CBARToolMode; getScene: (context: CBARContext) => CBARScene | undefined; getZoomScale: () => number; setZoomScale: (value: number) => void; scaleToFit: number; getZoomState: () => ZoomState; setZoomState: (state: ZoomState) => void; pointToScreenPosition: (imagePoint: Point2D) => Point2D; } export declare class PaintColor { red: number; green: number; blue: number; constructor(red?: number, green?: number, blue?: number); get cssColor(): string; } export declare function isDrawingTool(mode: CBARToolMode): boolean; export declare class CBARContext { gl: CBARRenderContext; private _receiver; constructor(gl: CBARRenderContext, _receiver: CBARReceiver); _config: CBServerConfig; get config(): CBServerConfig; private _handlers; addHandler(type: CBAREventType, handler: CBAREventHandler): void; removeHandler(type: CBAREventType, handler: CBAREventHandler): void; getHandlers(type: CBAREventType): CBAREventHandler[]; captureToStill(): void; captureScreenshot(format?: ImageExportOptions): Promise; loadImage(image: HTMLImageElement): void; refresh(): void; loadSceneAtPath(jsonPath: string, surfaceTypes?: CBARSurfaceType[]): Promise; loadSceneData(json: CBARSceneProperties, surfaceTypes?: CBARSurfaceType[], room?: string | null | undefined, subroom?: string | null | undefined): Promise; get scene(): CBARScene | undefined; get mode(): CBARMode; get toolMode(): CBARToolMode; get isDrawing(): boolean; startVideoCamera(tracking?: CBARFeatureTracking, facing?: CBARCameraFacing, resolution?: CBARCameraResolution): Promise; stopVideoCamera(): void; get zoomScale(): number; set zoomScale(value: number); get scaleToFit(): number; get zoomState(): ZoomState; set zoomState(state: ZoomState); private _color; get color(): PaintColor; set color(value: PaintColor); pointToScreenPosition(imagePoint: Point2D): Point2D; hasGyroscope: boolean; }