export interface CameraInfo { id: string; label: string; selected: boolean; hasAutofocus: boolean; } export interface ICameraService { detectDeviceType(): Promise<'mobile' | 'desktop' | 'tablet'>; enumerateDevices(): Promise; getAvailableCameras(): MediaDeviceInfo[]; isMultipleCamerasAvailable(): boolean; getSelectedCameraId(): string | null; setSelectedCamera(cameraId: string): Promise; getPreferredFacing(): 'environment' | 'user' | null; setupCamera(constraints?: MediaTrackConstraints): Promise; switchCamera(cameraId: string): Promise; isRearCamera(stream: MediaStream): boolean; getCameraInfo(): Promise<{ availableCameras: CameraInfo[]; selectedCameraId: string | null; deviceType: string; isMultipleCamerasAvailable: boolean; preferredFacing: 'environment' | 'user' | null; }>; }