@kortexa-ai/react-multimodal
Version:
A set of react components and hooks to help with multimodal input
55 lines • 2.26 kB
TypeScript
import { EventDispatcher } from '../utils/EventDispatcher';
export type VideoStreamHandler = (stream?: MediaStream) => void;
export type VideoErrorHandler = (error?: string) => void;
export type VideoLifeCycleHandler = () => void;
export type CameraFacingMode = "user" | "environment";
export type CameraStartHandler = () => void;
export type CameraStopHandler = () => void;
export type CameraLifeCycleHandler = VideoLifeCycleHandler;
export type CameraFacingModeHandler = (mode?: CameraFacingMode) => void;
export type CameraStreamHandler = VideoStreamHandler;
export type CameraErrorHandler = VideoErrorHandler;
export interface CameraDevice {
isRecording: boolean;
stream: MediaStream | null;
facingMode: CameraFacingMode;
availableDevices: MediaDeviceInfo[];
currentDeviceId: string | undefined;
start: (deviceId?: string) => Promise<void>;
stop: () => void;
toggle: () => void;
flip: () => void;
getDevices: () => Promise<void>;
setDevice: (deviceId: string) => void;
}
export interface CameraEventMap extends Record<string, unknown> {
stream: MediaStream;
start: void;
stop: void;
facingMode: CameraFacingMode;
error: string;
}
export declare const cameraDispatcher: EventDispatcher<CameraEventMap>;
export interface CameraControl extends CameraDevice {
addStreamListener: (listener: CameraStreamHandler) => string;
removeStreamListener: (id: string) => void;
addStartListener: (listener: CameraStartHandler) => string;
removeStartListener: (id: string) => void;
addStopListener: (listener: CameraStopHandler) => string;
removeStopListener: (id: string) => void;
addFacingModeListener: (listener: CameraFacingModeHandler) => string;
removeFacingModeListener: (id: string) => void;
addErrorListener: (listener: CameraErrorHandler) => string;
removeErrorListener: (id: string) => void;
}
export interface CameraDeviceProps {
defaultFacingMode?: CameraFacingMode;
defaultDeviceId?: string;
requestedWidth?: number;
requestedHeight?: number;
requestedAspectRatio?: number;
onStream?: CameraStreamHandler;
onError?: CameraErrorHandler;
}
export type CameraProviderProps = CameraDeviceProps;
//# sourceMappingURL=types.d.ts.map