import { CanvasColor, ICanvasContext2D } from "./CanvasContext2D";
import { ICanvasTableTouchEvent } from "./CanvasTableTouchEvent";
import { IDrawable } from "./Drawable";
export interface IScrollViewConfig {
    buttonHoverColor?: CanvasColor;
    buttonColor?: CanvasColor;
    backgroundColor?: CanvasColor;
}
export declare class ScrollView {
    private readonly drawable;
    private readonly askForExtentedMouseMoveAndMaouseUp;
    private readonly askForNormalMouseMoveAndMaouseUp;
    private readonly scrollViewChange;
    private canvasWidth;
    private canvasHeight;
    private context;
    private height?;
    private width?;
    private r;
    private timeout?;
    private hasScrollBarY;
    private scrollBarThumbDownY;
    private isOverScrollUpY;
    private isOverScrollDownY;
    private isOverScollThumbY;
    private posYvalue;
    private scrollBarThumbMinY;
    private scrollBarThumbMaxY;
    private scrollBarPosMaxY;
    private pageY;
    private touchStartY;
    private hasScrollBarX;
    private scrollBarThumbDownX;
    private isOverScrollUpX;
    private isOverScrollDownX;
    private isOverScollThumbX;
    private posXvalue;
    private scrollBarThumbMinX;
    private scrollBarThumbMaxX;
    private scrollBarPosMaxX;
    private pageX;
    private touchStartX;
    private lastmove;
    private scrollbarSize;
    private cellHeight;
    private run;
    private runXOrY;
    private runStart;
    private speed;
    private scrollViewConfig;
    constructor(context: ICanvasContext2D, drawable: IDrawable, config: IScrollViewConfig | undefined, askForExtentedMouseMoveAndMaouseUp: () => void, askForNormalMouseMoveAndMaouseUp: () => void, scrollViewChange: () => void);
    getPosY(): number;
    setPosY(value: number): void;
    getPosX(): number;
    setPosX(value: number): void;
    getScrollBarPosMaxY(): number;
    getScrollBarPosMaxX(): number;
    getHasScrollBarY(): boolean;
    getHasScrollBarX(): boolean;
    getScrollbarSize(): number;
    draw(): void;
    setSize(r: number, canvasWidth: number, canvasHeight: number, width?: number, height?: number): void;
    beforeDraw(): boolean;
    OnKeydown(keyCode: number): boolean;
    OnTouchStart(e: ICanvasTableTouchEvent, offsetLeft: number, offsetTop: number): boolean;
    OnTouchMove(e: ICanvasTableTouchEvent, offsetLeft: number, offsetTop: number): void;
    OnTouchEnd(e: ICanvasTableTouchEvent): void;
    onScroll: (deltaMode: number, deltaX: number, deltaY: number) => void;
    onMouseLeave(): void;
    onExtendedMouseUp(x: number, y: number): boolean;
    onExtendedMouseMove(x: number, y: number): boolean;
    onMouseDown(x: number, y: number): boolean;
    onMouseMove(x: number, y: number): boolean;
    onMouseUp(x: number, y: number): boolean;
    private scrollClick;
    private drawMe;
    private fixPos;
}
