import { HTMLUIProps, CSSUIProps, PropGetter } from '@yamada-ui/core'; import { FormControlOptions } from '@yamada-ui/form-control'; type Hsv = [number, number, number]; type Overlay = ((value: Hsv) => HTMLUIProps) | HTMLUIProps; interface UseSaturationSliderOptions { /** * The base `id` to use for the saturation slider. */ id?: string; /** * The name attribute of the hidden `input` field. * This is particularly useful in forms. */ name?: string; /** * The initial value of the saturation slider. * * @default "[0, 0, 1]" */ defaultValue?: Hsv; /** * If `false`, the saturation slider handle will not capture focus when value changes. * * @default true */ focusThumbOnChange?: boolean; /** * The overlay used for the saturation slider. */ overlays?: Overlay[]; /** * The step in which increments or decrements have to be made. * * @default 0.01 */ step?: number; /** * The CSS `background` property. Used in `background` of thumb element. */ thumbColor?: CSSUIProps["bg"]; /** * The value of the saturation slider. */ value?: Hsv; /** * If `true`, the slider has an inner `box-shadow`. * * @default true */ withShadow?: boolean; /** * Function called whenever the saturation slider value changes. */ onChange?: (value: Hsv) => void; /** * Function called when the user is done selecting a new value. */ onChangeEnd?: (value: Hsv) => void; /** * Function called when the user starts selecting a new value. */ onChangeStart?: (value: Hsv) => void; } interface UseSaturationSliderProps extends Omit, UseSaturationSliderOptions, FormControlOptions { } declare const useSaturationSlider: ({ focusThumbOnChange, ...props }: UseSaturationSliderProps) => { overlays: HTMLUIProps[]; value: Hsv; getContainerProps: PropGetter<"div", undefined>; getInnerProps: PropGetter<"div", undefined>; getInputProps: PropGetter<"input", undefined>; getThumbProps: PropGetter<"div", undefined>; getTrackProps: PropGetter<"div", undefined>; }; type UseSaturationSliderReturn = ReturnType; export { type Hsv, type UseSaturationSliderProps, type UseSaturationSliderReturn, useSaturationSlider };