import { IconComponent } from '@consta/icons/Icon'; import React from 'react'; import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes'; import { Direction } from '../Popover'; import { ActiveButton } from './useSlider/helper'; export declare const sliderPropStatus: readonly ["alert", "warning", "success"]; export type SliderPropStatus = typeof sliderPropStatus[number]; export declare const sliderPropStatusDefault: "alert"; export type SliderPropView = 'default' | 'division'; export declare const sliderPropSize: readonly ["s", "xs", "m", "l"]; export type SliderPropSize = typeof sliderPropSize[number]; export declare const sliderPropSizeDefault: SliderPropSize; export type SliderValue = RANGE extends true ? [number, number] : number; export type SliderPropOnChange = (value: SliderValue, prop: { e?: Event | React.TouchEvent | React.MouseEvent | React.KeyboardEvent | React.ChangeEvent; }) => void; type SliderPropTooltipFormatter = (value: number | undefined) => string; type Side = IconComponent | 'input'; type Props = { className?: string; step?: number | number[]; view?: SliderPropView; disabled?: boolean; range?: RANGE; withTooltip?: boolean; value: SliderValue; label?: string; labelIcon?: IconComponent; caption?: string; status?: SliderPropStatus; min?: number; size?: SliderPropSize; max?: number; onChange?: SliderPropOnChange; onAfterChange?: SliderPropOnChange; leftSide?: Side; tooltipFormatter?: SliderPropTooltipFormatter; rightSide?: Side; tooltipDirection?: Direction; tooltipPossibleDirections?: Direction[]; }; export type Line = { width: number; active: boolean; size?: number[]; }; export type SliderLineProps = { view?: SliderPropView; lines: Line[]; disabled?: boolean; hovered?: boolean; onHover?: (hovered: boolean) => void; }; export type SliderPointProps = PropsWithHTMLAttributes<{ value?: number; disabled?: boolean; focused?: boolean; hovered?: boolean; withTooltip?: boolean; handlePress?: (typeButton: ActiveButton) => void; buttonLabel?: ActiveButton; buttonRef?: React.RefObject; popoverPosition?: TrackPosition; tooltipFormatter?: SliderPropTooltipFormatter; onFocus?: (e: React.FocusEvent | React.MouseEvent, button: ActiveButton) => void; onKeyPress?: (e: React.KeyboardEvent, typeButton?: ActiveButton) => void; onHover?: (hovered: boolean) => void; position: number; active?: boolean; tooltipZIndex?: number; tooltipDirection?: Direction; tooltipPossibleDirections?: Direction[]; }, HTMLButtonElement>; export type SliderProps = PropsWithHTMLAttributes, HTMLDivElement>; export type SliderComponent = (props: SliderProps) => React.ReactNode | null; export declare const isRangeParams: (params: Props) => params is Props; export declare const isNotRangeParams: (params: Props) => params is Props; export declare const defaultTooltipFormatter: SliderPropTooltipFormatter; export type TrackPosition = { x: number; y: number; } | null; export declare const getValueForInput: (props: SliderProps, field: 0 | 1) => number; type GetOnChangeForInputReturned = (props: { e?: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent; value: number; }) => void; export declare const getOnChangeForInput: (props: SliderProps, field: 0 | 1) => GetOnChangeForInputReturned; export declare const getIcon: (side?: Side) => IconComponent | undefined; export declare const getMaxForStartField: (props: SliderProps) => number | undefined; export declare const getMinForEndField: (props: SliderProps) => number | undefined; export declare const getValidStep: (min: number, max: number, step?: number | number[]) => number | number[]; export {};