import { FrameSource, Frame, type FrameSourceError } from "./frameSource.js"; import type { FaceLandmarkerLike } from "./mediapipeLoader.js"; /** * Frame source backed by MediaPipe FaceLandmarker (tasks-vision). Each frame * carries the face ROI + forehead/cheek sub-ROIs (for rPPG) plus the raw * landmarks and blendshape coefficients (for affect / valence-arousal). * * Unlike the legacy FaceMesh (async send/onResults), FaceLandmarker.detectForVideo * is synchronous, so detection happens inline in the capture loop. */ export declare class MediaPipeFaceFrameSource implements FrameSource { private video; private faceLandmarker; private fps; onFrame: ((frame: Frame) => void) | null; onError: ((error: FrameSourceError) => void) | null; private running; private canvas; private ctx; private vfcHandle; private smoothedFaceRoi; private lastError; constructor(video: HTMLVideoElement, faceLandmarker: FaceLandmarkerLike, fps?: number); start(): Promise; stop(): Promise; getLastError(): FrameSourceError | null; private detectAndEmit; private landmarksToROI; private smoothRoi; private reportError; } //# sourceMappingURL=mediaPipeFaceFrameSource.d.ts.map