import { PublicInterface } from "../model";
import { ClickEvent } from "./utilities/click.component";
import { ClassEvent } from "./utilities/class.component";
export declare namespace PublicAPI {
    var ClassBehavior: typeof ClassEvent;
    var ClickBehavior: typeof ClickEvent;
    class CoordinateComponent {
        element: HTMLElement;
        private _element;
        private _coordinates;
        private _onBorder;
        private _isDrag;
        private _variation;
        constructor(element: HTMLElement);
        /**
         * Return coordinates
         */
        getCoordinates(): PublicInterface.Coordinate;
        /**
         * Detect when module is on border of element
         */
        onBorder(): PublicInterface.OnBorder;
        /**
         * Detect hen drag starts
         */
        onDragStart(): PublicInterface.isDrag;
        /**
         * addEventListener to detect when on border
         *
         * @param name 'mousedown' | 'mouseup' | 'mouseover'
         */
        addListener(name: string): void;
        /**
         * Set variation to detect mouse on border
         *
         * @param value
         */
        setVariation(value: number): void;
        /**
         * calculate current coordinate of HTMlelement
         *
         * @param element
         */
        private setCoordinates;
        /**
         * Private method to assign drag start
         *
         * @param name
         * @param mouse
         */
        private detectOnDragStart;
        /**
         * detect when mouse click is on border
         *
         * @param mouse
         */
        private detectOnborder;
        private detectMouseUpOutSide;
    }
}
