@kortexa-ai/react-multimodal
Version:
A set of react components and hooks to help with multimodal input
75 lines • 3.03 kB
TypeScript
import { HandLandmarker, GestureRecognizer, Category, GestureRecognizerResult, HandLandmarkerResult as MPHandLandmarkerResult, NormalizedLandmark, Landmark } from '@mediapipe/tasks-vision';
export type HandLandmark = NormalizedLandmark;
export type Handedness = Category;
export type GestureResult = Category;
export type GestureRecognitionResult = GestureRecognizerResult;
export type HandLandmarkerResult = MPHandLandmarkerResult;
export interface DetectedHand {
landmarks: HandLandmark[];
worldLandmarks?: Landmark[];
handedness: Handedness;
gestures: GestureResult[];
}
export interface MediaPipeHandsResults {
multiHandLandmarks: HandLandmark[][];
multiHandWorldLandmarks: HandLandmark[][];
multiHandedness: Handedness[];
image?: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap;
}
export interface HandsData {
detectedHands: DetectedHand[];
imageDimensions?: {
width: number;
height: number;
};
}
export interface MediaPipeHandsOptions {
staticImageMode?: boolean;
maxNumHands?: number;
modelComplexity?: 0 | 1;
minDetectionConfidence?: number;
minTrackingConfidence?: number;
selfieMode?: boolean;
locateFile?: (file: string, scriptPath?: string) => string;
}
export interface HandsTrackingDeviceProps {
options?: MediaPipeHandsOptions;
handsVersion?: string;
onInitialLoad?: () => void;
onHandsData?: (data: HandsData) => void;
onError?: (error: string) => void;
onTrackingStarted?: () => void;
onTrackingStopped?: () => void;
onResults?: (detectedHands: DetectedHand[], image?: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap) => void;
}
export interface HandsTrackingDevice {
isTracking: boolean;
handsData: HandsData | null;
error: string | null;
startTracking: (videoElement: HTMLVideoElement) => Promise<void>;
stopTracking: () => void;
getHandLandmarker?: () => HandLandmarker | null;
getGestureRecognizer?: () => GestureRecognizer | null;
}
export interface HandsTrackingControl extends HandsTrackingDevice {
addHandsDataListener: (listener: (data: HandsData) => void) => string;
removeHandsDataListener: (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 HandsProviderProps extends HandsTrackingDeviceProps {
enableGestures?: boolean;
gestureOptions?: {
numHands?: number;
minHandDetectionConfidence?: number;
minHandPresenceConfidence?: number;
minTrackingConfidence?: number;
};
gestureModelPath?: string;
onGestureResults?: (gestures: GestureResult[], handIndex: number) => void;
}
//# sourceMappingURL=types.d.ts.map