import * as React from 'react';
import * as t from './types';
import { MouseEvent, MouseEventHandler, MouseEventType, IMouseEventProps, IMouseHandlers } from './types';
export { MouseEvent, MouseEventHandler, MouseEventType, IMouseEventProps, IMouseHandlers };
export declare type MouseHandlerFactory = (args: {
    type: t.MouseEvent['type'];
    handlers?: t.MouseEventHandler[];
    getEnabled?: () => boolean;
}) => React.MouseEventHandler | undefined;
export declare const fromProps: (props: t.IMouseEventProps, args?: {
    force?: boolean | t.MouseEventType[] | undefined;
    getEnabled?: (() => boolean) | undefined;
}) => t.IMouseHandlers;
export declare const handlers: (handler?: t.MouseEventHandler | undefined, args?: {
    getEnabled?: (() => boolean) | undefined;
    onClick?: ((event: React.MouseEvent<Element, globalThis.MouseEvent>) => void) | undefined;
    onDoubleClick?: ((event: React.MouseEvent<Element, globalThis.MouseEvent>) => void) | undefined;
    onMouseDown?: ((event: React.MouseEvent<Element, globalThis.MouseEvent>) => void) | undefined;
    onMouseUp?: ((event: React.MouseEvent<Element, globalThis.MouseEvent>) => void) | undefined;
    onMouseEnter?: ((event: React.MouseEvent<Element, globalThis.MouseEvent>) => void) | undefined;
    onMouseLeave?: ((event: React.MouseEvent<Element, globalThis.MouseEvent>) => void) | undefined;
}) => t.IMouseHandlers;
export declare const handle: MouseHandlerFactory;
