import PropTypes from 'prop-types';
import { anchorRef, bindTrigger, bindContextMenu, bindToggle, bindHover, bindFocus, bindMenu, bindPopover, bindPopper, bindDoubleClick, bindDialog, type Variant, type PopupState as InjectedProps } from "./hooks.js";
export { anchorRef, bindTrigger, bindContextMenu, bindToggle, bindHover, bindFocus, bindMenu, bindPopover, bindPopper, bindDoubleClick, bindDialog, type Variant, type InjectedProps };
export type Props = {
popupId?: string;
children: (props: InjectedProps) => any;
variant: Variant;
parentPopupState?: InjectedProps | null;
disableAutoFocus?: boolean | null;
};
declare function PopupState({
children,
popupId,
variant,
parentPopupState,
disableAutoFocus
}: Props): any;
declare namespace PopupState {
var propTypes: {
/**
* The render function.
*
* @param {object} props the properties injected by `PopupState`:
*
*
`open(eventOrAnchorEl)`: opens the popup
*
`close()`: closes the popup
*
`toggle(eventOrAnchorEl)`: opens the popup if it is closed, or
* closes the popup if it is open.
*
*
`setOpen(open, [eventOrAnchorEl])`: sets whether the popup is open.
* `eventOrAnchorEl` is required if `open` is truthy.
*
*
`isOpen`: `true`/`false` if the popup is open/closed
*
`anchorEl`: the current anchor element (`null` the popup is closed)
*
`popupId`: the `popupId` prop you passed
*
*
* @returns {React.Node} the content to display
*/
children: PropTypes.Validator<(...args: any[]) => any>;
/**
* The `id` property to use for the popup. Will be passed to the render
* function as `bindPopup.id`, and also used for the `aria-controls` property
* passed to the trigger component via `bindTrigger`.
*/
popupId: PropTypes.Requireable;
/**
* Which type of popup you are controlling. Use `'popover'` for `Popover`
* and `Menu`; use `'popper'` for `Popper`s. Right now this only affects
* whether `aria-controls` or `aria-describedby` is used on the trigger
* component.
*/
variant: PropTypes.Validator;
/**
* The popupState of the parent menu (for cascading menus)
*/
parentPopupState: PropTypes.Requireable