import { type CSSProperties, type PropType, type ExtractPropTypes } from 'vue';
export declare const scrollbarProps: () => {
    /**
     * @description height of scrollbar
     */
    height: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    /**
     * @description max height of scrollbar
     */
    maxHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    /**
     * @description whether to use the native scrollbar
     */
    native: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description style of wrap
     */
    wrapStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    /**
     * @description class of wrap
     */
    wrapClass: {
        type: (ArrayConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description class of view
     */
    viewClass: {
        type: (ArrayConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description style of view
     */
    viewStyle: {
        type: (ArrayConstructor | ObjectConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance
     */
    noresize: BooleanConstructor;
    /**
     * @description element tag of the view
     */
    component: StringConstructor;
    /**
     * @description always show
     */
    always: BooleanConstructor;
    /**
     * @description minimum size of scrollbar
     */
    minSize: {
        type: NumberConstructor;
        default: number;
    };
};
export interface BarRef {
    handleScroll: (wrap: HTMLDivElement) => void;
}
export declare type ScrollbarRef = {
    wrapRef: HTMLDivElement;
    update: () => void;
    scrollTo: (options: ScrollToOptions | number, yCord?: number) => void;
    setScrollTop: (value: number) => void;
    setScrollLeft: (value: number) => void;
};
export declare type ScrollbarProps = Partial<ExtractPropTypes<ReturnType<typeof scrollbarProps>>>;
declare const Scrollbar: import("vue").DefineComponent<{
    /**
     * @description height of scrollbar
     */
    height: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    /**
     * @description max height of scrollbar
     */
    maxHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    /**
     * @description whether to use the native scrollbar
     */
    native: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description style of wrap
     */
    wrapStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    /**
     * @description class of wrap
     */
    wrapClass: {
        type: (ArrayConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description class of view
     */
    viewClass: {
        type: (ArrayConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description style of view
     */
    viewStyle: {
        type: (ArrayConstructor | ObjectConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance
     */
    noresize: BooleanConstructor;
    /**
     * @description element tag of the view
     */
    component: StringConstructor;
    /**
     * @description always show
     */
    always: BooleanConstructor;
    /**
     * @description minimum size of scrollbar
     */
    minSize: {
        type: NumberConstructor;
        default: number;
    };
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "scroll"[], "scroll", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
    /**
     * @description height of scrollbar
     */
    height: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    /**
     * @description max height of scrollbar
     */
    maxHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    /**
     * @description whether to use the native scrollbar
     */
    native: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description style of wrap
     */
    wrapStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    /**
     * @description class of wrap
     */
    wrapClass: {
        type: (ArrayConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description class of view
     */
    viewClass: {
        type: (ArrayConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description style of view
     */
    viewStyle: {
        type: (ArrayConstructor | ObjectConstructor | StringConstructor)[];
        default: string;
    };
    /**
     * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance
     */
    noresize: BooleanConstructor;
    /**
     * @description element tag of the view
     */
    component: StringConstructor;
    /**
     * @description always show
     */
    always: BooleanConstructor;
    /**
     * @description minimum size of scrollbar
     */
    minSize: {
        type: NumberConstructor;
        default: number;
    };
}>> & {
    onScroll?: (...args: any[]) => any;
}, {
    always: boolean;
    height: string | number;
    maxHeight: string | number;
    native: boolean;
    wrapStyle: CSSProperties;
    wrapClass: string | unknown[];
    viewClass: string | unknown[];
    viewStyle: string | unknown[] | Record<string, any>;
    noresize: boolean;
    minSize: number;
}>;
export default Scrollbar;
