import { ITriggerOptions, IUseTriggerResult, TriggerType } from '@rc-hooks/popper';
import { UnionOmit } from '@co-hooks/util';
import React, { CSSProperties, HTMLAttributes, ReactNode } from 'react';
import { IPopoverWrapperProps } from './PopoverWrapper';
export interface IPopoverExtra<T> extends ITriggerOptions<T> {
    trigger?: TriggerType;
    showDelay?: number;
    hideDelay?: number;
    children: ((data: IUseTriggerResult) => React.ReactNode) | React.ReactNode;
    popoverClassName?: string;
    popoverStyle?: CSSProperties;
    disableToggleClose?: boolean;
    getPopper: ((triggerData: T | null) => ReactNode) | ReactNode;
}
export declare type IPopoverProps<T> = UnionOmit<IPopoverExtra<T> & Omit<IPopoverWrapperProps<T>, 'triggerIds' | 'getPopper'>, HTMLAttributes<HTMLSpanElement>>;
export declare function Popover<T>(props: IPopoverProps<T>): JSX.Element;
export declare namespace Popover {
    var ClickTrigger: typeof import("./components/ClickTrigger").ClickTrigger;
    var HoverTrigger: typeof import("./components/HoverTrigger").HoverTrigger;
    var FocusTrigger: typeof import("./components/FocusTrigger").FocusTrigger;
    var ManualTrigger: typeof import("./components/ManualTrigger").ManualTrigger;
}
