import { HTMLUIProps, CSSUIProps, PropGetter } from '@yamada-ui/core';
import { FormControlOptions } from '@yamada-ui/form-control';
type ColorSliderChannel = "alpha" | "hue";
interface UseColorSliderOptions {
/**
* The maximum allowed value of the slider. Cannot be less than min.
*/
max: number;
/**
* The minimum allowed value of the slider. Cannot be greater than max.
*/
min: number;
/**
* The base `id` to use for the slider.
*/
id?: string;
/**
* The name attribute of the hidden `input` field.
* This is particularly useful in forms.
*/
name?: string;
/**
* The channel of the slider.
*/
channel?: ColorSliderChannel;
/**
* The initial value of the slider.
*/
defaultValue?: number;
/**
* If `false`, the slider handle will not capture focus when value changes.
*
* @default true
*/
focusThumbOnChange?: boolean;
/**
* The step in which increments or decrements have to be made.
*
* @default 1
*/
step?: number;
/**
* The CSS `background` property. Used in `background` of thumb element.
*/
thumbColor?: CSSUIProps["bg"];
/**
* The value of the slider.
*/
value?: number;
/**
* Function called whenever the slider value changes.
*/
onChange?: (value: number) => void;
/**
* Function called when the user is done selecting a new value.
*/
onChangeEnd?: (value: number) => void;
/**
* Function called when the user starts selecting a new value.
*/
onChangeStart?: (value: number) => void;
}
interface UseColorSliderProps extends Omit, UseColorSliderOptions, FormControlOptions {
}
declare const useColorSlider: ({ focusThumbOnChange, ...props }: UseColorSliderProps) => {
value: number;
getContainerProps: PropGetter<"div", undefined>;
getInputProps: PropGetter<"input", undefined>;
getThumbProps: PropGetter<"div", undefined>;
getTrackProps: PropGetter<"div", undefined>;
};
type UseColorSliderReturn = ReturnType;
declare const getAriaValueText: (channel: ColorSliderChannel, value: number) => string;
export { type UseColorSliderProps, type UseColorSliderReturn, getAriaValueText, useColorSlider };