import type { Theme } from '../../core/models/types';
type ScrollbarOrientation = 'horizontal' | 'vertical';
export interface KonvaScrollbarViewConfig {
    container: HTMLElement;
    orientation: ScrollbarOrientation;
    theme: Theme;
    onScrollChange: (nextOffset: number) => void;
    leadingInset?: number;
    trailingInset?: number;
}
export declare class KonvaScrollbarView {
    private readonly container;
    private readonly orientation;
    private readonly theme;
    private readonly onScrollChange;
    private readonly leadingInset;
    private readonly trailingInset;
    private readonly stage;
    private readonly layer;
    private readonly hitAreaRect;
    private readonly thumbRect;
    private viewportSize;
    private contentSize;
    private scrollOffset;
    private isDragging;
    private dragStartClient;
    private dragStartOffset;
    private hasBoundGlobalPointerListeners;
    private readonly handleGlobalPointerMove;
    private readonly handleGlobalPointerEnd;
    private readonly handleVisibilityChange;
    constructor(config: KonvaScrollbarViewConfig);
    setViewportMetrics(viewportSize: number, contentSize: number): void;
    setScrollLeft(scrollLeft: number): void;
    setScrollTop(scrollTop: number): void;
    resize(): void;
    destroy(): void;
    private readonly handleStageMouseDown;
    private readonly handleStageMouseUp;
    private readonly handleStageMouseEnter;
    private readonly handleStageMouseMove;
    private readonly handleStageMouseLeave;
    private bindGlobalPointerListeners;
    private unbindGlobalPointerListeners;
    private handleDragMove;
    private jumpToPointer;
    private emitScrollChange;
    private render;
    private getTrackSize;
    private getAvailableTrackSize;
    private getMaxScrollOffset;
    private clampScrollOffset;
    private shouldHideScrollbar;
    private updateCursor;
    private getThumbSize;
    private getThumbPosition;
}
export {};
