import * as React from "react";
import { OverlayTriggerProps } from "../../themes/theme";
import { FormContext } from "../LajiForm";
type IsHoverableProps = {
    hoverable: true;
    formContext: FormContext;
};
type IsNotHoverableProps = {
    hoverable?: false;
    formContext?: FormContext;
};
type Props = OverlayTriggerProps & (IsHoverableProps | IsNotHoverableProps) & {
    style?: React.CSSProperties;
};
type State = {
    hoveringElem?: boolean;
    hoveringOverlay?: boolean;
};
/**
 * OverlayTrigger that is hoverable if `hoverable: true`
 *
 * If you pass `hoverable: true`, you must also pass `formContext`.
 */
export declare class OverlayTrigger extends React.Component<Props, State> {
    static contextType: React.Context<import("../../ReactContext").ContextProps>;
    overlayTimeout?: ReturnType<FormContext["setTimeout"]>;
    popoverMouseIn?: boolean;
    constructor(props: Props);
    componentWillUnmount(): void;
    overlayTriggerMouseOver: () => void;
    overlayTriggerMouseOut: () => void;
    overlayMouseOver: () => void;
    overlayMouseOut: () => void;
    render(): JSX.Element;
}
export {};
