import { ViewController } from './ctr';
export declare function getHorizontalDirection(angle: number): number;
export declare function getVerticalDirection(angle: number): number;
export interface Point {
    x: number;
    y: number;
}
export declare enum Direction {
    LEFT = 1,
    TOP = 2,
    RIGHT = 3,
    BOTTOM = 4
}
export interface Event {
    begin: boolean;
    time: number;
    begin_x: number;
    begin_y: number;
    prev_x: number;
    prev_y: number;
    x: number;
    y: number;
    speed: number;
    instant_speed: number;
    begin_angle: number;
    angle: number;
    instant_angle: number;
    begin_direction: Direction;
    direction: Direction;
    instant_direction: Direction;
    distance: number;
    instant_distance: number;
    cancelBubble: boolean;
}
export default abstract class Gesture<P = {}, S = {}> extends ViewController<P, S> {
    private _identifier;
    private _begin_x;
    private _begin_y;
    private _x;
    private _y;
    private _speed;
    private _time;
    private _ev;
    private _begin;
    private _begin_angle;
    private _begin_direction;
    get clientWidth(): number;
    get clientHeight(): number;
    private static _selectTouch;
    private static _handleBegin;
    private static _handleMove;
    private static _handleEnd;
    private static _handleTouchstart;
    private static _handleTouchmove;
    private static _handleTouchend;
    private static _handleMousedown;
    private static _handleMousemove;
    private static _handleMouseup;
    protected abstract get $el(): HTMLElement;
    triggerMounted(): void;
    protected triggerBeginMove(e: Event): void;
    protected triggerMove(e: Event): void;
    protected triggerEndMove(e: Event): void;
}
