import { PhotoCaptureAppConfig, Image, Sight, VehiclePart, VehicleType } from '@monkvision/types'; import { CameraHUDProps } from '@monkvision/camera-web'; import { LoadingState } from '@monkvision/common'; import { TutorialSteps } from '../hooks'; import { CaptureMode } from '../../types'; /** * Props of the PhotoCaptureHUD component. */ export interface PhotoCaptureHUDProps extends CameraHUDProps, Pick { /** * The inspection ID. */ inspectionId: string; /** * The list of sights provided to the PhotoCapture component. */ sights: Sight[]; /** * The currently selected sight in the PhotoCapture component : the sight that the user needs to capture. */ selectedSight: Sight; /** * Array containing the list of sights that the user has already captured. */ sightsTaken: Sight[]; /** * Value storing the last picture taken by the user. If no picture has been taken yet, this value is null. */ lastPictureTakenUri: string | null; /** * The current mode of the component. */ mode: CaptureMode; /** * Global loading state of the PhotoCapture component. */ loading: LoadingState; /** * The current tutorial step in PhotoCapture component. */ currentTutorialStep: TutorialSteps | null; /** * Current vehicle parts selected to take a picture of. */ vehicleParts: VehiclePart[]; /** * Callback called when the user clicks on "Next" button in PhotoCapture tutorial. */ onNextTutorialStep: () => void; /** * Callback called when the user clicks on "Close" button in PhotoCapture tutorial. */ onCloseTutorial: () => void; /** * Callback called when the user manually select a new sight. */ onSelectSight: (sight: Sight) => void; /** * Callback called when the user manually select a sight to retake. */ onRetakeSight: (sight: string) => void; /** * Callback called when the user clicks on the "Add Damage" button. */ onAddDamage: () => void; /** * Callback called when the user selects the parts to take a picture of. */ onAddDamagePartsSelected?: (parts: VehiclePart[]) => void; /** * Callback called when the user clicks on the "Cancel" button of the Add Damage mode. */ onCancelAddDamage: () => void; /** * Callback that can be used to retry fetching this state object from the API in case the previous fetch failed. */ onRetry: () => void; /** * Callback called when the user clicks on the gallery icon. */ onOpenGallery: () => void; /** * Callback called when the user clicks on the "Validate" button of the Add Damage mode. */ onValidateVehicleParts: () => void; /** * Callback called when the user clicks on both: 'disable' checkbox and 'okay' button. */ onDisableSightGuidelines: () => void; /** * Callback called when the user clicks on the close button. If this callback is not provided, the close button is not * displayed. */ onClose?: () => void; /** * The current images taken by the user (ignoring retaken pictures etc.). */ images: Image[]; /** * The vehicle type of the inspection. */ vehicleType: VehicleType; /** * Boolean indicating whether the sight guidelines should be displayed. */ showSightGuidelines: boolean; /** * Boolean indicating whether the sight tutorial should be displayed. */ showSightTutorial: boolean; /** * Callback called when the user clicks on the "help" button in PhotoCapture. */ toggleSightTutorial: () => void; } /** * This component implements the Camera HUD (head-up display) displayed in the PhotoCapture component over the Camera * preview. It implements elements such as buttons to interact with the camera, PhotoCapture indicators, error messages, * loaders etc. */ export declare function PhotoCaptureHUD({ inspectionId, sights, selectedSight, sightsTaken, lastPictureTakenUri, mode, vehicleParts, onSelectSight, onRetakeSight, onAddDamage, onAddDamagePartsSelected, onValidateVehicleParts, onCancelAddDamage, onOpenGallery, onRetry, onClose, showCloseButton, loading, handle, cameraPreview, images, addDamage, sightGuidelines, showSightGuidelines, currentTutorialStep, allowSkipTutorial, onNextTutorialStep, onCloseTutorial, enforceOrientation, vehicleType, onDisableSightGuidelines, sightTutorial, enableSightTutorial, showSightTutorial, toggleSightTutorial, }: PhotoCaptureHUDProps): import("react").JSX.Element;