import { type PropType } from 'vue';
import type { Sizes } from '../ScrollArea.types';
export interface ScrollbarPrivateProps {
    sizes: Sizes;
    hasThumb: boolean;
    onThumbChange: (thumb: HTMLDivElement | null) => void;
    onThumbPointerUp: () => void;
    onThumbPointerDown: (pointerPos: {
        x: number;
        y: number;
    }) => void;
    onThumbPositionChange: () => void;
    onWheelScroll: (event: WheelEvent, maxScrollPos: number) => void;
    onDragScroll: (pointerPos: {
        x: number;
        y: number;
    }) => void;
    onResize: () => void;
}
export declare const Scrollbar: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    sizes: {
        type: PropType<Sizes>;
        required: true;
    };
    hasThumb: {
        type: BooleanConstructor;
        required: true;
    };
    onThumbChange: {
        type: PropType<ScrollbarPrivateProps["onThumbChange"]>;
        required: true;
    };
    onThumbPointerUp: {
        type: PropType<ScrollbarPrivateProps["onThumbPointerUp"]>;
        required: true;
    };
    onThumbPointerDown: {
        type: PropType<ScrollbarPrivateProps["onThumbPointerDown"]>;
        required: true;
    };
    onThumbPositionChange: {
        type: PropType<ScrollbarPrivateProps["onThumbPositionChange"]>;
        required: true;
    };
    onWheelScroll: {
        type: PropType<ScrollbarPrivateProps["onWheelScroll"]>;
        required: true;
    };
    onDragScroll: {
        type: PropType<ScrollbarPrivateProps["onDragScroll"]>;
        required: true;
    };
    onResize: {
        type: PropType<ScrollbarPrivateProps["onResize"]>;
        required: true;
    };
    onScrollbarMounted: {
        type: PropType<(node: HTMLDivElement | null) => void>;
        default: undefined;
    };
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    sizes: {
        type: PropType<Sizes>;
        required: true;
    };
    hasThumb: {
        type: BooleanConstructor;
        required: true;
    };
    onThumbChange: {
        type: PropType<ScrollbarPrivateProps["onThumbChange"]>;
        required: true;
    };
    onThumbPointerUp: {
        type: PropType<ScrollbarPrivateProps["onThumbPointerUp"]>;
        required: true;
    };
    onThumbPointerDown: {
        type: PropType<ScrollbarPrivateProps["onThumbPointerDown"]>;
        required: true;
    };
    onThumbPositionChange: {
        type: PropType<ScrollbarPrivateProps["onThumbPositionChange"]>;
        required: true;
    };
    onWheelScroll: {
        type: PropType<ScrollbarPrivateProps["onWheelScroll"]>;
        required: true;
    };
    onDragScroll: {
        type: PropType<ScrollbarPrivateProps["onDragScroll"]>;
        required: true;
    };
    onResize: {
        type: PropType<ScrollbarPrivateProps["onResize"]>;
        required: true;
    };
    onScrollbarMounted: {
        type: PropType<(node: HTMLDivElement | null) => void>;
        default: undefined;
    };
}>> & Readonly<{}>, {
    onScrollbarMounted: (node: HTMLDivElement | null) => void;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
