@kortexa-ai/react-multimodal
Version:
A set of react components and hooks to help with multimodal input
66 lines • 2.61 kB
TypeScript
import { PoseLandmarker, PoseLandmarkerResult as MPPoseLandmarkerResult, NormalizedLandmark, Landmark } from '@mediapipe/tasks-vision';
export type BodyLandmark = NormalizedLandmark;
export type BodyWorldLandmark = Landmark;
export type PoseLandmarkerResult = MPPoseLandmarkerResult;
export interface DetectedBody {
landmarks: BodyLandmark[];
worldLandmarks?: BodyWorldLandmark[];
segmentationMasks?: ImageData[];
}
export interface MediaPipeBodyResults {
poseLandmarks: BodyLandmark[];
poseWorldLandmarks: BodyWorldLandmark[];
segmentationMask?: ImageBitmap;
image?: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap;
}
export interface BodyData {
detectedBodies: DetectedBody[];
imageDimensions?: {
width: number;
height: number;
};
}
export interface MediaPipeBodyOptions {
staticImageMode?: boolean;
modelComplexity?: 0 | 1 | 2;
smoothLandmarks?: boolean;
enableSegmentation?: boolean;
smoothSegmentation?: boolean;
minDetectionConfidence?: number;
minTrackingConfidence?: number;
selfieMode?: boolean;
locateFile?: (file: string, scriptPath?: string) => string;
}
export interface BodyTrackingDeviceProps {
options?: MediaPipeBodyOptions;
bodyVersion?: string;
onInitialLoad?: () => void;
onBodyData?: (data: BodyData) => void;
onError?: (error: string) => void;
onTrackingStarted?: () => void;
onTrackingStopped?: () => void;
onResults?: (detectedBodies: DetectedBody[], image?: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap) => void;
}
export interface BodyTrackingDevice {
isTracking: boolean;
bodyData: BodyData | null;
error: string | null;
startTracking: (videoElement: HTMLVideoElement) => Promise<void>;
stopTracking: () => void;
getPoseLandmarker?: () => PoseLandmarker | null;
}
export interface BodyTrackingControl extends BodyTrackingDevice {
addBodyDataListener: (listener: (data: BodyData) => void) => string;
removeBodyDataListener: (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 BodyProviderProps extends BodyTrackingDeviceProps {
enableSegmentation?: boolean;
outputSegmentationMasks?: boolean;
}
//# sourceMappingURL=types.d.ts.map