import { PropType, CSSProperties, HTMLAttributes } from 'vue'; import type { ExtractInternalPropTypes, ExtractPublicPropTypes } from '../../../_utils'; export interface ScrollTo { (x: number, y: number): void; (options: { left?: number; top?: number; behavior?: ScrollBehavior; debounce?: boolean; }): void; (options: { el: HTMLElement; behavior?: ScrollBehavior; debounce?: boolean; }): void; (options: { index: number; elSize: number; behavior?: ScrollBehavior; debounce?: boolean; }): void; (options: { position: 'top' | 'bottom'; behavior?: ScrollBehavior; debounce?: boolean; }): void; } export interface ScrollbarInst { scrollTo: ScrollTo; sync: () => void; containerRef: HTMLElement | null; contentRef: HTMLElement | null; containerScrollTop: number; } declare const scrollbarProps: { readonly size: { readonly type: NumberConstructor; readonly default: 5; }; readonly duration: { readonly type: NumberConstructor; readonly default: 0; }; readonly scrollable: { readonly type: BooleanConstructor; readonly default: true; }; readonly xScrollable: { readonly type: BooleanConstructor; readonly default: false; }; readonly container: PropType<() => HTMLElement | null | undefined>; readonly content: PropType<() => HTMLElement | null | undefined>; readonly containerStyle: PropType; readonly contentClass: StringConstructor; readonly contentStyle: PropType; readonly horizontalRailStyle: PropType; readonly verticalRailStyle: PropType; readonly onScroll: PropType<(e: Event) => void>; readonly onWheel: PropType<(e: WheelEvent) => void>; readonly onResize: PropType<(e: ResizeObserverEntry) => void>; readonly internalOnUpdateScrollLeft: PropType<(scrollLeft: number) => void>; readonly theme: PropType>; readonly themeOverrides: PropType>>; readonly builtinThemeOverrides: PropType>>; }; export declare type ScrollbarProps = ExtractPublicPropTypes; export declare type ScrollbarInternalProps = ExtractInternalPropTypes; declare const Scrollbar: import("vue").DefineComponent<{ readonly size: { readonly type: NumberConstructor; readonly default: 5; }; readonly duration: { readonly type: NumberConstructor; readonly default: 0; }; readonly scrollable: { readonly type: BooleanConstructor; readonly default: true; }; readonly xScrollable: { readonly type: BooleanConstructor; readonly default: false; }; readonly container: PropType<() => HTMLElement | null | undefined>; readonly content: PropType<() => HTMLElement | null | undefined>; readonly containerStyle: PropType; readonly contentClass: StringConstructor; readonly contentStyle: PropType; readonly horizontalRailStyle: PropType; readonly verticalRailStyle: PropType; readonly onScroll: PropType<(e: Event) => void>; readonly onWheel: PropType<(e: WheelEvent) => void>; readonly onResize: PropType<(e: ResizeObserverEntry) => void>; readonly internalOnUpdateScrollLeft: PropType<(scrollLeft: number) => void>; readonly theme: PropType>; readonly themeOverrides: PropType>>; readonly builtinThemeOverrides: PropType>>; }, { sync: () => void; scrollTo: ScrollTo; mergedClsPrefix: import("vue").ComputedRef; containerScrollTop: import("vue").Ref; containerRef: import("vue").Ref; contentRef: import("vue").Ref; yRailRef: import("vue").Ref; xRailRef: import("vue").Ref; needYBar: import("vue").ComputedRef; needXBar: import("vue").ComputedRef; yBarSizePx: import("vue").ComputedRef; xBarSizePx: import("vue").ComputedRef; yBarTopPx: import("vue").ComputedRef; xBarLeftPx: import("vue").ComputedRef; isShowXBar: import("vue").Ref; isShowYBar: import("vue").Ref; isIos: boolean; handleScroll: (e: Event) => void; handleContentResize: () => void; handleContainerResize: (e: ResizeObserverEntry) => void; handleMouseEnterWrapper: () => void; handleMouseLeaveWrapper: () => void; handleYScrollMouseDown: (e: MouseEvent) => void; handleXScrollMouseDown: (e: MouseEvent) => void; cssVars: import("vue").ComputedRef<{ '--scrollbar-bezier': string; '--scrollbar-color': string; '--scrollbar-color-hover': string; '--scrollbar-border-radius': string; '--scrollbar-width': string; '--scrollbar-height': string; }>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ readonly size?: unknown; readonly duration?: unknown; readonly scrollable?: unknown; readonly xScrollable?: unknown; readonly container?: unknown; readonly content?: unknown; readonly containerStyle?: unknown; readonly contentClass?: unknown; readonly contentStyle?: unknown; readonly horizontalRailStyle?: unknown; readonly verticalRailStyle?: unknown; readonly onScroll?: unknown; readonly onWheel?: unknown; readonly onResize?: unknown; readonly internalOnUpdateScrollLeft?: unknown; readonly theme?: unknown; readonly themeOverrides?: unknown; readonly builtinThemeOverrides?: unknown; } & { size: number; duration: number; scrollable: boolean; xScrollable: boolean; } & { content?: (() => HTMLElement | null | undefined) | undefined; onScroll?: ((e: Event) => void) | undefined; onWheel?: ((e: WheelEvent) => void) | undefined; theme?: import("../../../_mixins").Theme<"Scrollbar", { color: string; colorHover: string; }, any> | undefined; themeOverrides?: import("../../../_mixins/use-theme").ExtractThemeOverrides> | undefined; builtinThemeOverrides?: import("../../../_mixins/use-theme").ExtractThemeOverrides> | undefined; onResize?: ((e: ResizeObserverEntry) => void) | undefined; container?: (() => HTMLElement | null | undefined) | undefined; containerStyle?: string | CSSProperties | undefined; contentClass?: string | undefined; contentStyle?: string | CSSProperties | undefined; horizontalRailStyle?: string | CSSProperties | undefined; verticalRailStyle?: string | CSSProperties | undefined; internalOnUpdateScrollLeft?: ((scrollLeft: number) => void) | undefined; }>, { size: number; duration: number; scrollable: boolean; xScrollable: boolean; }>; declare type NativeScrollbarProps = Omit; declare type MergedProps = Partial; export default Scrollbar; export declare const XScrollbar: new () => { $props: MergedProps; };