import { DirectiveBinding } from 'vue';
export interface ITouchHandlers {
    start?: (wrapperEvent: {
        originalEvent: TouchEvent;
    } & ITouchData) => void;
    end?: (wrapperEvent: {
        originalEvent: TouchEvent;
    } & ITouchData) => void;
    move?: (wrapperEvent: {
        originalEvent: TouchEvent;
    } & ITouchData) => void;
    left?: (wrapper: ITouchData) => void;
    right?: (wrapper: ITouchData) => void;
    up?: (wrapper: ITouchData) => void;
    down?: (wrapper: ITouchData) => void;
}
export interface ITouchData {
    touchstartX: number;
    touchstartY: number;
    touchmoveX: number;
    touchmoveY: number;
    touchendX: number;
    touchendY: number;
    offsetX: number;
    offsetY: number;
}
export type TTouchWrapper = ITouchHandlers & ITouchData;
export interface ITouchValue extends ITouchHandlers {
    parent?: boolean;
    options?: AddEventListenerOptions;
}
export interface ITouchStoredHandlers {
    touchstart: (event: TouchEvent) => void;
    touchend: (event: TouchEvent) => void;
    touchmove: (event: TouchEvent) => void;
}
export interface ITouchDirectiveBinding extends Omit<DirectiveBinding, 'value'> {
    value?: ITouchValue;
}
declare function mounted(el: HTMLElement, binding: ITouchDirectiveBinding): void;
declare function unmounted(el: HTMLElement, binding: ITouchDirectiveBinding): void;
export declare const Touch: {
    mounted: typeof mounted;
    unmounted: typeof unmounted;
};
export default Touch;
