import React, { ElementType, MutableRefObject } from 'react'; import { Props } from '../../types'; declare let DEFAULT_POPOVER_TAG: "div"; interface PopoverRenderPropArg { open: boolean; close(focusableElement?: HTMLElement | MutableRefObject): void; } export declare function Popover(props: Props): JSX.Element; export declare namespace Popover { var Button: ( = "button">(props: Props, ref: React.Ref) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | null) & { displayName: string; }; var Overlay: ( = "div">(props: (Pick, Exclude, "children" | "as" | "refName" | "className" | "id">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: OverlayRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: OverlayRenderPropArg) => string) | undefined; } : {}) & { static?: undefined; } & { unmount?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "id">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: OverlayRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: OverlayRenderPropArg) => string) | undefined; } : {}) & { unmount?: undefined; } & { static?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "onClick">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: OverlayRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: OverlayRenderPropArg) => string) | undefined; } : {}) & { static?: undefined; } & { unmount?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "onClick">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: OverlayRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: OverlayRenderPropArg) => string) | undefined; } : {}) & { unmount?: undefined; } & { static?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "aria-hidden">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: OverlayRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: OverlayRenderPropArg) => string) | undefined; } : {}) & { static?: undefined; } & { unmount?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "aria-hidden">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: OverlayRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: OverlayRenderPropArg) => string) | undefined; } : {}) & { unmount?: undefined; } & { static?: boolean | undefined; }), ref: React.Ref) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | null) & { displayName: string; }; var Panel: ( = "div">(props: (Pick, Exclude, "children" | "as" | "refName" | "className" | "id">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: PanelRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: PanelRenderPropArg) => string) | undefined; } : {}) & { static?: undefined; } & { unmount?: boolean | undefined; } & { focus?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "id">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: PanelRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: PanelRenderPropArg) => string) | undefined; } : {}) & { unmount?: undefined; } & { static?: boolean | undefined; } & { focus?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "onKeyDown">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: PanelRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: PanelRenderPropArg) => string) | undefined; } : {}) & { static?: undefined; } & { unmount?: boolean | undefined; } & { focus?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "onKeyDown">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: PanelRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: PanelRenderPropArg) => string) | undefined; } : {}) & { unmount?: undefined; } & { static?: boolean | undefined; } & { focus?: boolean | undefined; }), ref: React.Ref) => JSX.Element) & { displayName: string; }; var Group: = "div">(props: Props) => JSX.Element; } interface ButtonRenderPropArg { open: boolean; } declare type ButtonPropsWeControl = 'id' | 'type' | 'aria-expanded' | 'aria-controls' | 'onKeyDown' | 'onClick'; interface OverlayRenderPropArg { open: boolean; } interface PanelRenderPropArg { open: boolean; close: (focusableElement?: HTMLElement | MutableRefObject) => void; } interface GroupRenderPropArg { } export {};