import { ScrollbarProps, ScrollState, DragState } from './types'; import { Ref, ShallowReactive, ShallowRef, ComputedRef } from 'vue'; export interface UseScrollbarOptions { props: ScrollbarProps; emit: { (event: 'scroll', scrollInfo: { scrollTop: number; scrollLeft: number; }): void; (event: 'end-reached', direction: 'vertical' | 'horizontal'): void; }; wrapRef: Ref; } export declare const useScrollbar: (options: UseScrollbarOptions) => { scrollState: ShallowReactive; dragState: ShallowRef; vScrollbarData: ComputedRef<{ visible: boolean; maxScrollTop: number; availableHeight: number; thumbHeight: number; thumbTop: number; barStyle: { top: string; height: string | undefined; }; thumbStyle: { height: string; transform: string; display?: undefined; } | { display: string; height?: undefined; transform?: undefined; }; } | undefined>; hScrollbarData: ComputedRef<{ visible: boolean; maxScrollLeft: number; thumbWidth: number; thumbLeft: number; thumbStyle: { width: string; transform: string; display?: undefined; } | { display: string; width?: undefined; transform?: undefined; }; } | undefined>; update: () => void; handleScroll: (event?: Event) => void; handleWheel: (e: WheelEvent) => void; scrollTo: (optionsOrX: ScrollToOptions | number, y?: number) => void; setScrollTop: (value: number) => number | undefined; setScrollLeft: (value: number) => number | undefined; startDrag: (event: MouseEvent) => void; clickTrackHandler: (event: MouseEvent) => void; savePosition: () => void; restorePosition: () => void; cleanup: () => void; getScrollWrap: () => HTMLElement | null; scrollBottom: () => void; };