import type { Paper, TooltipProps } from '@mui/material' import type { ComponentProps } from 'react' import type { MeasurementMode, MeasurementModes, MeasurementOptionsMode, MeasurementOptionsUnit, MeasurementUnit, MeasurementUnitImperialDistance, MeasurementUnitMetricDistance, MeasurementUnits, MeasurementModesMapping, MeasurementUnitsMapping, } from '../types' interface Labels { action?: { tooltip?: { active?: string inactive?: string } } chip?: { tooltip?: { active?: string inactive?: string } } options?: { mode?: { title?: string options?: MeasurementOptionsMode } units?: { title?: string modal?: { title?: string subtitle?: string apply?: string options?: { metric: { title: string options: MeasurementOptionsUnit } imperial: { title: string options: MeasurementOptionsUnit } } } } } } interface ActionProps { TooltipProps?: Omit } export interface MeasurementToolsComponentProps< T extends string = MeasurementMode, U extends string = MeasurementUnit, > { enabled: boolean value: string labels?: Labels modesMapping?: MeasurementModesMapping unitsMapping?: MeasurementUnitsMapping actionProps?: ActionProps modeSelected?: T modes: Partial> units: MeasurementUnits unitSelected?: string PaperProps?: ComponentProps onActionToggle: (data: boolean) => void onChangeMode: (mode?: T) => void onChangeUnit: (unit: string) => void }