import React, { type ReactElement } from "react";
import { type SliderProps } from "./Slider";
import { type SliderContextActions, type SliderContextInfix, type SliderContextSelection, type SliderContextUI } from "./SliderConstants";
import { type IconType } from "@vibe/icon";
export interface SliderProviderProps extends SliderProps {
    /**
     * The child elements inside the slider provider.
     */
    children?: ReactElement | ReactElement[];
    /**
     * Configuration options for prefix, postfix, and selection indicator.
     */
    infixOptions?: {
        /**
         * If true, displays the selected value from the slider range.
         */
        indicateSelection?: boolean;
        /**
         * Configuration for the prefix (start) element, which can be:
         * - A React component, text, number, or node.
         * - An object with an icon.
         * - A function that receives the value and valueText.
         */
        prefix?: {
            icon: IconType;
        } | string | ((value: number, valueText: string) => void) | ReactElement;
        /**
         * Configuration for the postfix (end) element, similar to prefix.
         */
        postfix?: {
            icon: IconType;
        } | string | ((value: number, valueText: string) => void) | ReactElement;
        /**
         * The width of the selection indicator.
         */
        selectionIndicatorWidth?: string;
    };
}
export declare function SliderProvider({ children, ariaLabel, ariaLabelledby, color, "data-testid": dataTestId, defaultValue, disabled, max, min, onChange, ranged, showValue, valueLabelPosition, valueLabelColor, size, step, value, valueFormatter, valueText, infixOptions }: SliderProviderProps): React.JSX.Element;
export declare function useSliderUi(): SliderContextUI;
export declare function useSliderInfix(): SliderContextInfix;
export declare function useSliderSelection(): SliderContextSelection;
export declare function useSliderActions(): SliderContextActions;
