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 };