import { ExtendComponent, Factory } from '../../core';
import { PopoverProps, PopoverStylesNames } from '../Popover';
import { PopoverCssVariables } from '../Popover/Popover';
import { HoverCardContextValue } from './HoverCard.context';
import { HoverCardDropdown, HoverCardDropdownProps } from './HoverCardDropdown/HoverCardDropdown';
import { HoverCardGroup, HoverCardGroupContextValue, HoverCardGroupProps } from './HoverCardGroup/HoverCardGroup';
import { HoverCardTarget, HoverCardTargetProps } from './HoverCardTarget/HoverCardTarget';
export interface HoverCardProps extends Omit<PopoverProps, 'opened' | 'onChange'> {
    /** Initial opened state */
    initiallyOpened?: boolean;
    /** Called when the dropdown is opened */
    onOpen?: () => void;
    /** Called when the dropdown is closed */
    onClose?: () => void;
    /**
     * Delay in ms before the dropdown opens after mouse enters the target.
     * Overridden by HoverCard.Group delay if used within a group.
     * @default 0
     */
    openDelay?: number;
    /**
     * Delay in ms before the dropdown closes after mouse leaves the target or dropdown.
     * Overridden by HoverCard.Group delay if used within a group.
     * @default 150
     */
    closeDelay?: number;
}
export type HoverCardFactory = Factory<{
    props: HoverCardProps;
    stylesNames: PopoverStylesNames;
    vars: PopoverCssVariables;
}>;
export declare function HoverCard(props: HoverCardProps): import("react/jsx-runtime").JSX.Element;
export declare namespace HoverCard {
    var displayName: string;
    var Target: typeof HoverCardTarget;
    var Dropdown: typeof HoverCardDropdown;
    var Group: typeof HoverCardGroup;
    var extend: (input: ExtendComponent<HoverCardFactory>) => import("../../core/factory/factory").ExtendsRootComponent<{
        props: HoverCardProps;
        stylesNames: PopoverStylesNames;
        vars: PopoverCssVariables;
    }>;
}
export declare namespace HoverCard {
    type Props = HoverCardProps;
    type DropdownProps = HoverCardDropdownProps;
    type TargetProps = HoverCardTargetProps;
    type GroupProps = HoverCardGroupProps;
    type ContextValue = HoverCardContextValue;
    namespace Group {
        type Props = HoverCardGroupProps;
        type ContextValue = HoverCardGroupContextValue;
    }
}
