///
import { zappar_pipeline_t, zappar_camera_source_t } from "./gen/zappar";
import { camera_profile_t } from "./gen/zappar-native";
import { zappar_client } from "./gen/zappar-client";
import { MsgManager } from "./messages";
import { Source, CameraFrameInfo } from "./source";
import { CameraDataRawS2C, CameraFrameReturnS2C, ImageBitmapS2C, VideoFrameS2C } from "./workerinterface";
import { FaceMesh } from "./facemesh";
import { Event } from "./event";
import { ImageTracker } from "./imagetracker";
import { zappar } from "./gen/zappar-bridge";
import { CameraFrameData, CameraFrameDataRGB } from "./camera-frame-data";
export declare class Pipeline {
private _client;
private _impl;
private _mgr;
currentCameraSource: Source | undefined;
pendingMessages: any[];
private cameraTokens;
private nextCameraToken;
private tokensInFlight;
glContext: WebGLRenderingContext | WebGL2RenderingContext | undefined;
private videoTextures;
cameraPixelArrays: ArrayBuffer[];
private _cameraDraw;
private _faceDraw;
private _imageTargetPreviewDraw;
private _faceProjectDraw;
private _sequenceRecorder;
private _sequenceRecordDeviceAttitudeMatrices;
private _sequenceRecorderFirstCameraToken;
private _cameraFrameDataPromises;
private _cameraFrameDataResolves;
private _cameraFrameDataRejects;
private _cameraFrameDataEnabled;
private _cameraFrameDataRGBEnabled;
onGLContextReset: Event;
static create(client: zappar, mgr: MsgManager): zappar_pipeline_t;
static get(p: zappar_pipeline_t): Pipeline | undefined;
private constructor();
frameUpdate(client: zappar_client): void;
cleanOldFrames(): void;
cameraFrameDataRawResult(msg: CameraDataRawS2C): void;
cameraTokenReturn(msg: CameraFrameReturnS2C): void;
sequenceRecordStart(expectedFrames: number): void;
sequenceRecordStop(): void;
sequenceRecordData(): Uint8Array;
sequenceRecordClear(): void;
sequenceRecordDeviceAttitudeMatrices(v: boolean): void;
getVideoTexture(): WebGLTexture | undefined;
getCameraFrameDataRGB(): CameraFrameDataRGB | undefined;
setCameraFrameDataRGBEnabled(e: boolean): void;
getCameraFrameDataRGBEnabled(): boolean;
getCameraFrameDataRaw(): Promise;
setCameraFrameDataRawEnabled(e: boolean): void;
destroy(): void;
getCurrentCameraInfo(): CameraFrameInfo | undefined;
cameraFrameDrawGL(screenWidth: number, screenHeight: number, mirror?: boolean): void;
glContextLost(): void;
glContextSet(gl: WebGLRenderingContext, texturePool?: WebGLTexture[]): void;
drawFace(projectionMatrix: Float32Array, cameraMatrix: Float32Array, targetMatrix: Float32Array, o: FaceMesh): void;
drawImageTargetPreview(projectionMatrix: Float32Array, cameraMatrix: Float32Array, targetMatrix: Float32Array, indx: number, o: ImageTracker): void;
drawFaceProject(matrix: Float32Array, vertices: Float32Array, uvMatrix: Float32Array, uvs: Float32Array, indices: Uint16Array, texture: WebGLTexture): void;
cameraFrameTexture(): WebGLTexture | undefined;
cameraFrameTextureMatrix(sw: number, sh: number, mirror: boolean): Float32Array;
cameraFrameUserFacing(): boolean;
cameraPoseWithAttitude(mirror: boolean): Float32Array;
videoFrameFromWorker(msg: VideoFrameS2C): void;
imageBitmapFromWorker(msg: ImageBitmapS2C): void;
uploadGL(): void;
registerToken(info: CameraFrameInfo): number;
processGL(): void;
motionAccelerometerSubmit(timestamp: number, x: number, y: number, z: number): void;
motionAccelerometerWithoutGravitySubmitInt(timestamp: number, interval: number, x: number, y: number, z: number): void;
motionAccelerometerWithGravitySubmitInt(timestamp: number, interval: number, x: number, y: number, z: number): void;
motionRotationRateSubmitInt(timestamp: number, interval: number, x: number, y: number, z: number): void;
motionAttitudeSubmitInt(timestamp: number, interval: number, x: number, y: number, z: number): void;
motionRelativeOrientationSubmitInt(timestamp: number, interval: number, x: number, y: number, z: number, w: number): void;
motionRotationRateSubmit(timestamp: number, x: number, y: number, z: number): void;
motionAttitudeSubmit(timestamp: number, x: number, y: number, z: number): void;
motionAttitudeMatrix(m: Float32Array): void;
sendCameraStreamToWorker(source: zappar_camera_source_t, stream: ReadableStream, userFacing: boolean): void;
sendCameraProfileToWorker(source: zappar_camera_source_t, profile: camera_profile_t): void;
sendCameraToScreenRotationToWorker(rot: number): void;
sendImageBitmapToWorker(img: ImageBitmap, rot: number, userFacing: boolean, tokenId: number, cameraModel: Float32Array, cameraToDevice: Float32Array, cp: camera_profile_t): void;
sendDataToWorker(data: ArrayBuffer, token: number, width: number, height: number, userFacing: boolean, cameraToDevice: Float32Array, cameraModel: Float32Array, captureTime: number): void;
}
export declare function applyScreenCounterRotation(info: CameraFrameInfo | undefined, inp: Float32Array): Float32Array;