import { FC, Ref, HTMLAttributes, ReactNode } from 'react';
import { SliderButtonProps } from '../SliderButton';
import '../style';
import { Status } from '../interface';
export type TipTextType = {
    /**
     * @description 默认状态显示内容。
     * @default '向右拖动滑块填充拼图'
     */
    default: ReactNode;
    /**
     * @description 加载中显示内容。
     * @default '加载中...'
     */
    loading: ReactNode;
    /**
     * @description 用户操作滑块移动中显示内容。
     * @default null
     */
    moving: ReactNode;
    /**
     * @description 用户停止操作验证中显示内容。
     * @default null
     */
    verifying: ReactNode;
    /**
     * @description 验证成功显示内容。
     * @default null
     */
    success: ReactNode;
    /**
     * @description 验证失败显示内容。
     * @default null
     */
    error: ReactNode;
    /**
     * @description 验证失败且连续错误次数超出限制显示内容。
     * @default <SliderIcon type="x" style={{ fontSize: 20 }} /> 失败过多，点击重试
     */
    errors: ReactNode;
    /**
     * @description `request` 请求返回失败显示内容。
     * @default '加载失败，点击重试'
     */
    loadFailed: ReactNode;
};
export type TipIconType = {
    /**
     * @description 默认状态滑轨按钮图标。
     * @default <SliderIcon type="arrowRight" />
     */
    default: ReactNode;
    /**
     * @description 加载中滑轨按钮图标。
     * @default <SliderIcon type="loading" spin />
     */
    loading: ReactNode;
    /**
     * @description 验证失败滑轨提示图标。
     * @default <SliderIcon type="x" />
     */
    error: ReactNode;
    /**
     * @description 验证成功滑轨提示图标。
     * @default <SliderIcon type="check" />
     */
    success: ReactNode;
};
export type ControlBarRefType = {
    getSliderButtonWidth(force?: boolean): number;
    getIndicatorBorderWidth(force?: boolean): number;
    getRect(force?: boolean): DOMRect;
    updateLeft(left: number): void;
};
interface ControlBarProps extends HTMLAttributes<HTMLDivElement> {
    status?: Status;
    isLimitErrors?: boolean;
    tipText?: Partial<TipTextType>;
    tipIcon?: Partial<TipIconType>;
    sliderButtonProps?: SliderButtonProps;
    indicatorProps?: HTMLAttributes<HTMLDivElement>;
    controlRef?: Ref<ControlBarRefType>;
}
declare const ControlBar: FC<ControlBarProps>;
export default ControlBar;
