import { FontStyleTypeModel, ThemeTypesModel } from '../../Themes/theme_types'; type direction = 'horizontal' | 'vertical'; type sideHandlerTick = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'; interface SliderProps { label?: string; fromAriaLabel?: string; toAriaLabel?: string; value?: number[]; customClass?: string; min?: number; max?: number; intervalValue?: number; theme?: ThemeTypesModel; segments?: number; isEditable?: boolean; isDisabled?: boolean; isVertical?: boolean; isSegmented?: boolean; isRequired?: boolean; isInverse?: boolean; sliderChanged?: (val: number | number[]) => void; } interface DayTheme { handlerInput: { border: string; bg: string; }; handler: { default: { bg: string; border: string; }; hovered: { bg: string; border: string; }; }; progress: { default: string; filled: string; }; point: { default: string; filled: string; }; } interface viewModel { style: { night: DayTheme; day: DayTheme; }; size: { label: { font: FontStyleTypeModel; }; handlerLabel: { font: FontStyleTypeModel; }; handlerInput: { width: number; height: number; font: FontStyleTypeModel; }; }; } interface ContainerProps { isDisabled?: boolean; dayTime: 'day' | 'night'; } interface LabelProps { styled: viewModel; theme: ThemeTypesModel; isRequired?: boolean; } interface HandlerLabelProps { styled: viewModel; theme: ThemeTypesModel; } interface BodyProps { direction: direction; isSegmented: boolean; dayTime: 'day' | 'night'; styled: viewModel; } interface RangeHandlerContainerProps { type: 'start' | 'end'; direction: direction; position: number; } interface InputRangeProps { styled: viewModel; theme: ThemeTypesModel; allowBorderFocus?: boolean; dayTime: 'day' | 'night'; } interface RangeHandlerProps { allowBorderFocus: boolean; theme: ThemeTypesModel; styled: viewModel; side: sideHandlerTick; dayTime: 'day' | 'night'; } interface LineWrapperProps { direction: direction; type: 'fat' | 'slim'; } interface LineIndicatorProps { direction: direction; } interface PointsProps { type: 'fat' | 'slim'; direction: direction; } interface PointProps { inRange: boolean; type: 'fat' | 'slim'; direction: direction; dayTime: 'day' | 'night'; styled: viewModel; } export type { direction, sideHandlerTick, SliderProps, viewModel, ContainerProps, LabelProps, HandlerLabelProps, BodyProps, RangeHandlerContainerProps, InputRangeProps, RangeHandlerProps, LineWrapperProps, LineIndicatorProps, PointsProps, PointProps, };