/// <reference types="jquery" />
import { Insets, JQueryMouseWheelEvent, ScrollbarEventMap, ScrollbarModel, Widget } from '../index';
export declare class Scrollbar extends Widget implements ScrollbarModel {
    model: ScrollbarModel;
    eventMap: ScrollbarEventMap;
    self: Scrollbar;
    axis: 'x' | 'y';
    borderless: boolean;
    mouseWheelNeedsShift: boolean;
    /** thumb body for layout purposes */
    $thumb: JQuery;
    /** thumb handle */
    $thumbHandle: JQuery;
    protected _scrollSize: number;
    protected _offsetSize: number;
    protected _dim: 'Width' | 'Height';
    protected _dir: 'left' | 'top';
    protected _dirReverse: 'right' | 'bottom';
    protected _scrollDir: 'scrollLeft' | 'scrollTop';
    protected _thumbClipping: Insets;
    protected _onScrollHandler: (event: JQuery.ScrollEvent) => void;
    protected _onScrollWheelHandler: (event: JQueryMouseWheelEvent) => boolean;
    protected _onScrollbarMouseDownHandler: (event: JQuery.MouseDownEvent) => void;
    protected _onTouchStartHandler: (event: JQuery.TouchStartEvent) => void;
    protected _onThumbMouseDownHandler: (event: JQuery.MouseDownEvent) => boolean;
    protected _onDocumentMousemoveHandler: (event: JQuery.MouseMoveEvent<Document>) => void;
    protected _onDocumentMouseUpHandler: (event: JQuery.MouseUpEvent<Document>) => boolean;
    protected _onAncestorScrollOrResizeHandler: (event: JQuery.TriggeredEvent) => void;
    protected _fixScrollbarHandler: () => void;
    protected _unfixScrollbarHandler: () => void;
    protected _$thumb: JQuery;
    protected _$thumbHandle: JQuery;
    protected _$ancestors: JQuery;
    constructor();
    protected _render(): void;
    protected _remove(): void;
    protected _renderOnAttach(): void;
    protected _ensureParentPosition(): void;
    /**
     * scroll by "diff" in px (positive and negative)
     */
    scroll(diff: number): void;
    /**
     * scroll to absolute point (expressed as absolute point in px)
     */
    protected _scrollToAbsolutePoint(absolutePoint: number): void;
    /**
     * do not use this internal method (triggered by scroll event)
     */
    update(): void;
    protected _resetClipping(): void;
    /**
     * Make sure scrollbar does not appear outside an ancestor when fixed
     */
    protected _clipWhenOverlappingAncestor(): void;
    /**
     * Resets thumb size and scrollbar position to make sure it does not extend the scrollSize
     */
    reset(): void;
    protected _onScroll(event: JQuery.ScrollEvent): void;
    protected _onTouchStart(event: JQuery.TouchStartEvent): void;
    protected _onScrollWheel(event: JQueryMouseWheelEvent): boolean;
    protected _onScrollbarMouseDown(event: JQuery.MouseDownEvent): void;
    protected _onThumbMouseDown(event: JQuery.MouseDownEvent): boolean;
    protected _onDocumentMousemove(event: JQuery.MouseMoveEvent<Document>): void;
    protected _onDocumentMouseUp(event: JQuery.MouseUpEvent<Document>): boolean;
    notifyBeforeScroll(): void;
    notifyAfterScroll(): void;
    /**
     * Sets the position to fixed and updates left and top position
     * (This is necessary to prevent flickering in IE)
     */
    protected _fixScrollbar(): void;
    /**
     * Reverts the changes made by _fixScrollbar
     */
    protected _unfixScrollbar(): void;
    /**
     * If the thumb gets bigger than its container this method will return true, otherwise false
     */
    protected _isContainerTooSmallForThumb(): boolean;
}
//# sourceMappingURL=Scrollbar.d.ts.map