import { Ref } from 'vue';
import { NativeScrollMode } from './symbol';
export declare function useScrollWrapper({ mode, disabled, appear, scrollX, scrollY, onResize, onBeforeRefresh, onAfterRefresh, }: {
    mode: Ref<NativeScrollMode>;
    disabled: Ref<boolean>;
    appear: Ref<boolean>;
    scrollX: Ref<number>;
    scrollY: Ref<number>;
    onResize?: (entity: ResizeObserverEntry) => void;
    onBeforeRefresh?: () => void;
    onAfterRefresh?: () => void;
}): {
    contentEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
    content: {
        el: HTMLElement | undefined;
        scrollWidth: number;
        offsetWidth: number;
        scrollHeight: number;
        offsetHeight: number;
    };
    x: Ref<number, number>;
    y: Ref<number, number>;
    percentX: Ref<number, number>;
    percentY: Ref<number, number>;
    xScrollLimit: import('vue').ComputedRef<number>;
    yScrollLimit: import('vue').ComputedRef<number>;
    enableXScroll: import('vue').ComputedRef<boolean>;
    enableYScroll: import('vue').ComputedRef<boolean>;
    xBarLength: import('vue').ComputedRef<number>;
    yBarLength: import('vue').ComputedRef<number>;
    handleResize: (entity: ResizeObserverEntry) => void;
    setScrollX: (value: number) => void;
    setScrollY: (value: number) => void;
    computePercent: () => void;
    refresh: () => Promise<void>;
    scrollTo: (clientX: number, clientY: number, duration?: number) => Promise<void>;
    scrollBy: (deltaX: number, deltaY: number, duration?: number) => Promise<void>;
    scrollToElement: (el: string | Element, duration?: number, offset?: number) => Promise<void>;
    triggerUpdate: () => void;
};
