import * as React from 'react';
import { PopoverProps } from 'reactstrap/lib/Popover';
interface Props {
    /**
     * An additional class name to set on the root element.
     */
    className?: string;
    /** An additional class name for the popover element. */
    popoverClassName?: string;
    /**
     * The button label.
     */
    children?: React.ReactFragment;
    /**
     * The link destination URL for the button. If set, the caret is outside of the button.
     */
    link?: string;
    /**
     * The element to display in the popover.
     */
    popoverElement: React.ReactElement<any>;
    /**
     * Hide the popover when this prop changes.
     */
    hideOnChange?: any;
    /** If set, pressing this key toggles the popover's open state. */
    globalKeyBinding?: string;
    /**
     * Whether the global keybinding should be active even when the user has an input element focused. This should
     * only be used for keybindings that would not conflict with routine user input. For example, use it for a
     * keybinding to F1, which will ensure that F1 doesn't open Chrome help when the user is focused in an input
     * field.
     *
     */
    globalKeyBindingActiveInInputs?: boolean;
    /** Popover placement. */
    placement?: PopoverProps['placement'];
    /** Force open, if true. */
    open?: boolean;
}
interface State {
    /** Whether the popover is open. */
    open: boolean;
}
/**
 * A button that toggles the visibility of a popover.
 */
export declare class PopoverButton extends React.PureComponent<Props, State> {
    state: State;
    private subscriptions;
    private rootRef;
    componentDidMount(): void;
    componentWillReceiveProps(props: Props): void;
    componentWillUnmount(): void;
    render(): React.ReactFragment;
    private onClickLink;
    private onGlobalKeyDown;
    private setRootRef;
    private onPopoverVisibilityToggle;
}
export {};
//# sourceMappingURL=PopoverButton.d.ts.map