import { StyleValue } from 'vue';
export interface Props {
    tag?: string;
    viewClass?: string;
    wrapClass?: string;
    viewStyle?: StyleValue;
    wrapStyle?: StyleValue;
    interceptShiftScroll?: boolean;
    alwayHorizontal?: boolean;
    alwayVertical?: boolean;
}
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {
        wrapRef: HTMLDivElement;
        resizeRef: unknown;
        barRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./Bar.vue').Props> & Readonly<{
            onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
        }>, {
            handleScroll: (wrap: HTMLDivElement) => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
            triggerScrollFromThumb: (options: ScrollToOptions) => any;
        }, import('vue').PublicProps, {
            scrollbarHeight: number;
            scrollbarWidth: number;
        }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
            horizontalThumbRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./Thumb.vue').Props> & Readonly<{
                onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
            }>, {
                handleScroll: (option: {
                    left: number;
                    top: number;
                }) => void;
            }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
                triggerScrollFromThumb: (options: ScrollToOptions) => any;
            }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
                thumbRef: HTMLDivElement;
            }, HTMLDivElement, import('vue').ComponentProvideOptions, {
                P: {};
                B: {};
                D: {};
                C: {};
                M: {};
                Defaults: {};
            }, Readonly<import('./Thumb.vue').Props> & Readonly<{
                onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
            }>, {
                handleScroll: (option: {
                    left: number;
                    top: number;
                }) => void;
            }, {}, {}, {}, {}> | null;
            verticalThumbRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./Thumb.vue').Props> & Readonly<{
                onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
            }>, {
                handleScroll: (option: {
                    left: number;
                    top: number;
                }) => void;
            }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
                triggerScrollFromThumb: (options: ScrollToOptions) => any;
            }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
                thumbRef: HTMLDivElement;
            }, HTMLDivElement, import('vue').ComponentProvideOptions, {
                P: {};
                B: {};
                D: {};
                C: {};
                M: {};
                Defaults: {};
            }, Readonly<import('./Thumb.vue').Props> & Readonly<{
                onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
            }>, {
                handleScroll: (option: {
                    left: number;
                    top: number;
                }) => void;
            }, {}, {}, {}, {}> | null;
        }, any, import('vue').ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly<import('./Bar.vue').Props> & Readonly<{
            onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
        }>, {
            handleScroll: (wrap: HTMLDivElement) => void;
        }, {}, {}, {}, {
            scrollbarHeight: number;
            scrollbarWidth: number;
        }> | null;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<Props, {
    onResize: () => void;
    scrollTo: (options: ScrollToOptions) => void;
    handleScroll: () => void;
    triggerScrollFromOutSide: (options: ScrollToOptions) => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
    resize: (target: HTMLDivElement) => any;
    scroll: (args_0: {
        scrollTop: number;
        scrollLeft: number;
    }) => any;
    wheel: (e: WheelEvent) => any;
    wrapResize: (target: HTMLDivElement) => any;
    shiftScroll: (e: WheelEvent) => any;
    verticalScrollBarShow: (args_0: {
        show: boolean;
        scrollbarWidth: number;
    }) => any;
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
    onResize?: ((target: HTMLDivElement) => any) | undefined;
    onScroll?: ((args_0: {
        scrollTop: number;
        scrollLeft: number;
    }) => any) | undefined;
    onWheel?: ((e: WheelEvent) => any) | undefined;
    onWrapResize?: ((target: HTMLDivElement) => any) | undefined;
    onShiftScroll?: ((e: WheelEvent) => any) | undefined;
    onVerticalScrollBarShow?: ((args_0: {
        show: boolean;
        scrollbarWidth: number;
    }) => any) | undefined;
}>, {
    tag: string;
    interceptShiftScroll: boolean;
    alwayHorizontal: boolean;
    alwayVertical: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    wrapRef: HTMLDivElement;
    resizeRef: unknown;
    barRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./Bar.vue').Props> & Readonly<{
        onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
    }>, {
        handleScroll: (wrap: HTMLDivElement) => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
        triggerScrollFromThumb: (options: ScrollToOptions) => any;
    }, import('vue').PublicProps, {
        scrollbarHeight: number;
        scrollbarWidth: number;
    }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
        horizontalThumbRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./Thumb.vue').Props> & Readonly<{
            onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
        }>, {
            handleScroll: (option: {
                left: number;
                top: number;
            }) => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
            triggerScrollFromThumb: (options: ScrollToOptions) => any;
        }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
            thumbRef: HTMLDivElement;
        }, HTMLDivElement, import('vue').ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly<import('./Thumb.vue').Props> & Readonly<{
            onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
        }>, {
            handleScroll: (option: {
                left: number;
                top: number;
            }) => void;
        }, {}, {}, {}, {}> | null;
        verticalThumbRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./Thumb.vue').Props> & Readonly<{
            onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
        }>, {
            handleScroll: (option: {
                left: number;
                top: number;
            }) => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
            triggerScrollFromThumb: (options: ScrollToOptions) => any;
        }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
            thumbRef: HTMLDivElement;
        }, HTMLDivElement, import('vue').ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly<import('./Thumb.vue').Props> & Readonly<{
            onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
        }>, {
            handleScroll: (option: {
                left: number;
                top: number;
            }) => void;
        }, {}, {}, {}, {}> | null;
    }, any, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import('./Bar.vue').Props> & Readonly<{
        onTriggerScrollFromThumb?: ((options: ScrollToOptions) => any) | undefined;
    }>, {
        handleScroll: (wrap: HTMLDivElement) => void;
    }, {}, {}, {}, {
        scrollbarHeight: number;
        scrollbarWidth: number;
    }> | null;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
