import { IInteractionEvent } from "../../interfaces/Interaction.interface";
/**
 * InteractionManager class for interaction handling.
 *
 * @class
 * @memberof Scuti
 */
export declare class InteractionManager {
    /**
     * A boolean indicating if the user have clicked at least one time, indicating that the second click is a double click.
     *
     * @member {boolean}
     * @private
     */
    private _isDoubleClicking;
    /**
     * The double click timeout that set the _isDoubleClicking boolean value to false after 350ms.
     *
     * @member {number}
     * @private
     */
    private _doubleClickTimeout;
    /**
     * The pointer down event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @private
     */
    private _onPointerDown;
    /**
     * The pointer up event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @private
     */
    private _onPointerUp;
    /**
     * The pointer move event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @private
     */
    private _onPointerMove;
    /**
     * The pointer out event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @private
     */
    private _onPointerOut;
    /**
     * The pointer ouver event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @private
     */
    private _onPointerOver;
    /**
     * The pointer double click event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @private
     */
    private _onDoubleClick;
    /**
     * Reference to the pointer down event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerDown(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerDown(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer up event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerUp(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerUp(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer move event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerMove(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerMove(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer out event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerOut(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerOut(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer over event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerOver(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerOver(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer double click event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onDoubleClick(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onDoubleClick(value: (event: IInteractionEvent) => void);
    /**
     * Handle the pointer down event.
     *
     * @return {void}
     * @public
     */
    handlePointerDown(event: IInteractionEvent): void;
    /**
     * Handle the pointer up event.
     *
     * @return {void}
     * @public
     */
    handlePointerUp(event: IInteractionEvent): void;
    /**
     * Handle the pointer move event.
     *
     * @return {void}
     * @public
     */
    handlePointerMove(event: IInteractionEvent): void;
    /**
     * Handle the pointer out event.
     *
     * @return {void}
     * @public
     */
    handlePointerOut(event: IInteractionEvent): void;
    /**
     * Handle the pointer over event.
     *
     * @return {void}
     * @public
     */
    handlePointerOver(event: IInteractionEvent): void;
}
