import * as React from 'react';
import { Observable } from 'rxjs';
export declare type MouseEventType = 'DOWN' | 'UP' | 'ENTER' | 'LEAVE' | 'CLICK' | 'DOUBLE_CLICK';
export declare type MouseEvent = {
    type: MouseEventType;
    button: 'LEFT' | 'RIGHT';
    cancel: () => void;
};
export declare type MouseEventHandler = (e: MouseEvent) => void;
export declare type IMouseEventProps = {
    onMouse?: MouseEventHandler;
    onClick?: React.MouseEventHandler;
    onDoubleClick?: React.MouseEventHandler;
    onMouseDown?: React.MouseEventHandler;
    onMouseUp?: React.MouseEventHandler;
    onMouseEnter?: React.MouseEventHandler;
    onMouseLeave?: React.MouseEventHandler;
};
export declare type IMouseHandlers = {
    isActive: boolean;
    events$: Observable<MouseEvent>;
    events: {
        onClick?: React.MouseEventHandler;
        onDoubleClick?: React.MouseEventHandler;
        onMouseDown?: React.MouseEventHandler;
        onMouseUp?: React.MouseEventHandler;
        onMouseEnter?: React.MouseEventHandler;
        onMouseLeave?: React.MouseEventHandler;
    };
};
