@kortexa-ai/react-multimodal
Version:
A set of react components and hooks to help with multimodal input
73 lines • 2.82 kB
TypeScript
import { FaceLandmarker, FaceLandmarkerResult as MPFaceLandmarkerResult, NormalizedLandmark, Classifications, Category, FaceDetector, Detection } from '@mediapipe/tasks-vision';
export type FaceLandmark = NormalizedLandmark;
export type FaceLandmarkerResult = MPFaceLandmarkerResult;
export type FaceBlendshapes = Classifications;
export type FaceDetection = Detection;
export interface DetectedFace {
landmarks: FaceLandmark[];
blendshapes?: Category[];
transformationMatrix?: number[];
boundingBox?: {
xMin: number;
yMin: number;
width: number;
height: number;
};
}
export interface MediaPipeFaceResults {
faceLandmarks: FaceLandmark[][];
faceBlendshapes?: FaceBlendshapes[];
facialTransformationMatrixes?: number[][];
image?: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap;
}
export interface FaceData {
detectedFaces: DetectedFace[];
imageDimensions?: {
width: number;
height: number;
};
}
export interface MediaPipeFaceOptions {
staticImageMode?: boolean;
maxNumFaces?: number;
refineLandmarks?: boolean;
minDetectionConfidence?: number;
minTrackingConfidence?: number;
selfieMode?: boolean;
locateFile?: (file: string, scriptPath?: string) => string;
}
export interface FaceTrackingDeviceProps {
options?: MediaPipeFaceOptions;
faceVersion?: string;
onInitialLoad?: () => void;
onFaceData?: (data: FaceData) => void;
onError?: (error: string) => void;
onTrackingStarted?: () => void;
onTrackingStopped?: () => void;
onResults?: (detectedFaces: DetectedFace[], image?: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap) => void;
}
export interface FaceTrackingDevice {
isTracking: boolean;
faceData: FaceData | null;
error: string | null;
startTracking: (videoElement: HTMLVideoElement) => Promise<void>;
stopTracking: () => void;
getFaceLandmarker?: () => FaceLandmarker | null;
getFaceDetector?: () => FaceDetector | null;
}
export interface FaceTrackingControl extends FaceTrackingDevice {
addFaceDataListener: (listener: (data: FaceData) => void) => string;
removeFaceDataListener: (listenerId: string) => void;
addErrorListener: (listener: (error: string) => void) => string;
removeErrorListener: (listenerId: string) => void;
addStartListener: (listener: () => void) => string;
removeStartListener: (listenerId: string) => void;
addStopListener: (listener: () => void) => string;
removeStopListener: (listenerId: string) => void;
}
export interface FaceProviderProps extends FaceTrackingDeviceProps {
outputFaceBlendshapes?: boolean;
outputTransformationMatrix?: boolean;
runningMode?: "IMAGE" | "VIDEO";
}
//# sourceMappingURL=types.d.ts.map