import type { GestureEventData } from './gestures-types';
import type { View } from '../core/view';
import { GesturesObserverBase, GestureTypes } from './gestures-common';
export * from './gestures-common';
export * from './gestures-types';
export * from './touch-manager';
export declare function observe(target: View, type: GestureTypes, callback: (args: GestureEventData) => void, context?: any): GesturesObserver;
export declare class GesturesObserver extends GesturesObserverBase {
    private readonly _recognizers;
    private _onTargetLoaded;
    private _onTargetUnloaded;
    androidOnTouchEvent(motionEvent: android.view.MotionEvent): void;
    /**
     * Observes a singular GestureTypes value (e.g. GestureTypes.tap).
     *
     * Does not support observing plural GestureTypes values, e.g.
     * GestureTypes.tap & GestureTypes.doubleTap.
     */
    observe(type: GestureTypes): void;
    /**
     * Given a singular GestureTypes value (e.g. GestureTypes.tap), adds a
     * UIGestureRecognizer for it and populates a RecognizerCache entry in
     * this._recognizers.
     *
     * Does not support attaching plural GestureTypes values, e.g.
     * GestureTypes.tap & GestureTypes.doubleTap.
     */
    private _attach;
    private _detach;
    disconnect(): void;
    _executeCallback(args: GestureEventData): void;
    /**
     * Creates a UIGestureRecognizer (and populates a RecognizerCache entry in
     * this._recognizers) corresponding to the singular GestureTypes value passed
     * in.
     */
    private _createRecognizer;
}
declare class Pointer {
    android: any;
    ios: UITouch;
    private _view;
    private _location;
    private get location();
    constructor(touch: UITouch, targetView: View);
    getX(): number;
    getY(): number;
}
export declare class TouchGestureEventData {
    eventName: string;
    type: GestureTypes;
    android: any;
    action: string;
    view: View;
    ios: {
        touches: NSSet<any>;
        event: _UIEvent;
    };
    object: any;
    private _activePointers;
    private _allPointers;
    private _mainPointer;
    prepare(view: View, action: string, touches: NSSet<any>, event: _UIEvent): void;
    getPointerCount(): number;
    private getMainPointer;
    getActivePointers(): Array<Pointer>;
    getAllPointers(): Array<Pointer>;
    getX(): number;
    getY(): number;
}
