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;
declare type FromPropsOptions = {
    force?: t.MouseEventType[] | boolean;
    getEnabled?: () => boolean;
};
export declare function useState<T>(props: T, options?: FromPropsOptions): t.IMouseHandlers | undefined;
export declare const fromProps: (props: t.IMouseEventProps, options?: FromPropsOptions) => t.IMouseHandlers;
export declare const handlers: (handler?: t.MouseEventHandler, args?: {
    getEnabled?: (() => boolean) | undefined;
    onClick?: React.MouseEventHandler<Element> | undefined;
    onDoubleClick?: React.MouseEventHandler<Element> | undefined;
    onMouseDown?: React.MouseEventHandler<Element> | undefined;
    onMouseUp?: React.MouseEventHandler<Element> | undefined;
    onMouseEnter?: React.MouseEventHandler<Element> | undefined;
    onMouseLeave?: React.MouseEventHandler<Element> | undefined;
}) => t.IMouseHandlers;
export declare const handle: MouseHandlerFactory;
