@kortexa-ai/react-multimodal
Version:
A set of react components and hooks to help with multimodal input
69 lines • 2.42 kB
TypeScript
import { Hands } from '@mediapipe/hands';
export interface HandLandmark {
x: number;
y: number;
z: number;
visibility?: number;
}
export interface Handedness {
score: number;
index: number;
label: "Left" | "Right" | string;
}
export interface DetectedHand {
landmarks: HandLandmark[];
worldLandmarks?: HandLandmark[];
handedness: Handedness[];
}
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;
getHandsInstance: () => Hands | 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 type HandsProviderProps = HandsTrackingDeviceProps;
//# sourceMappingURL=types.d.ts.map