import { CSSProperties } from 'vue';
export type ScrollBarDirection = 'vertical' | 'horizontal';
export type ColorType = CSSProperties['background-color'];
export interface InternalScrollBarProps {
    /**
     * 滚动条的方向
     */
    direction?: ScrollBarDirection;
    /**
     * 滚动条当前的位置（百分比值）
     */
    scroll?: number;
    /**
     * 滚动条的长（高）度
     */
    barLength?: number;
    /**
     * 滚动条的高（宽）度
     */
    width?: number;
    /**
     * 滚动条的颜色
     */
    barColor?: ColorType;
    /**
     * 滑轨的颜色
     */
    trackColor?: ColorType;
    /**
     * 滑动滚条的长度
     */
    trackWidth?: number;
    /**
     * 是否禁用
     */
    disabled?: boolean;
    /**
     * 是否显示滑轨
     */
    showTrack?: boolean;
    /**
     * 点击滑轨滚动的速度
     */
    trackSpeed?: number;
    onScrollStart?: (percent: number) => void;
    onScroll?: (percent: number) => void;
    onScrollEnd?: (percent: number) => void;
}
export interface ScrollBarProps extends InternalScrollBarProps {
    /**
     * 可滚动容器
     */
    scrollContainer?: HTMLElement;
    /**
     * 额外的尺寸（宽/高）
     */
    extraSize?: number;
}
export interface InternalScrollBarExpose {
    currentScroll: number;
    container: HTMLElement;
    track: HTMLElement;
    bar: HTMLElement;
    scroll: (percent: number) => void;
}
export type ScrollBarExpose = Pick<InternalScrollBarExpose, 'scroll' | 'currentScroll'> & {
    visible: boolean;
    rootElement: HTMLElement;
};
