import type { ExtractPropTypes } from 'vue';
export interface PointerPosition {
    top: number;
    left: number;
}
export declare const makePointerProps: <Defaults extends {
    pointerDownStopPropagation?: unknown;
    pointerDownPreventDefault?: unknown;
    pointerMovePreventDefault?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    pointerDownStopPropagation: unknown extends Defaults["pointerDownStopPropagation"] ? BooleanConstructor : {
        type: import("vue").PropType<unknown extends Defaults["pointerDownStopPropagation"] ? boolean : boolean | Defaults["pointerDownStopPropagation"]>;
        default: unknown extends Defaults["pointerDownStopPropagation"] ? boolean : boolean | Defaults["pointerDownStopPropagation"];
    };
    pointerDownPreventDefault: unknown extends Defaults["pointerDownPreventDefault"] ? BooleanConstructor : {
        type: import("vue").PropType<unknown extends Defaults["pointerDownPreventDefault"] ? boolean : boolean | Defaults["pointerDownPreventDefault"]>;
        default: unknown extends Defaults["pointerDownPreventDefault"] ? boolean : boolean | Defaults["pointerDownPreventDefault"];
    };
    pointerMovePreventDefault: unknown extends Defaults["pointerMovePreventDefault"] ? BooleanConstructor : {
        type: import("vue").PropType<unknown extends Defaults["pointerMovePreventDefault"] ? boolean : boolean | Defaults["pointerMovePreventDefault"]>;
        default: unknown extends Defaults["pointerMovePreventDefault"] ? boolean : boolean | Defaults["pointerMovePreventDefault"];
    };
};
export declare const usePointer: (props?: Partial<ExtractPropTypes<ReturnType<typeof makePointerProps>>>) => {
    isPointerDown: Readonly<import("vue").Ref<boolean>>;
    isPointerMoving: Readonly<import("vue").Ref<boolean>>;
    pointerCurrentPosition: Readonly<import("vue").Ref<{
        readonly top: number;
        readonly left: number;
    } | undefined>>;
    pointerDown: (e: MouseEvent | TouchEvent) => void;
    pointerMove: (e: MouseEvent | TouchEvent) => void;
    pointerUp: (e: MouseEvent | TouchEvent) => void;
    pointerDownEl: import("vue").Ref<HTMLElement | undefined>;
    pointerDownPosition: Readonly<import("vue").Ref<{
        readonly top: number;
        readonly left: number;
    } | undefined>>;
    pointerMovement: Readonly<import("vue").Ref<{
        readonly left: number;
        readonly top: number;
    } | undefined>>;
    pointerEvents: import("vue").ComputedRef<Partial<{
        touchstartPassive: (e: MouseEvent | TouchEvent) => void;
        touchstart: (e: MouseEvent | TouchEvent) => void;
        mousedown: (e: MouseEvent | TouchEvent) => void;
    }>>;
};
