import React, { type HTMLAttributes } from 'react'; import { type OverrideClassName } from "../types/OverrideClassName"; import { type Placement, type PopoverSize } from './types'; export type PopoverProps = { children: React.ReactNode; placement?: Placement; size?: PopoverSize; heading?: string; dismissible?: boolean; onClose?: (event: React.MouseEvent) => void; singleLine?: boolean; referenceElement: HTMLElement | null; } & OverrideClassName>; /** * {@link https://cultureamp.design/components/popover/ Guidance} | * {@link https://cultureamp.design/storybook/?path=/docs/components-popover--default-kaizen-site-demo Storybook} */ export declare const Popover: { ({ children, placement, size, heading, dismissible, onClose, singleLine, referenceElement, classNameOverride, ...restProps }: PopoverProps): JSX.Element; displayName: string; }; type PopoverPropsWithoutRef = Omit; /** * How to use: * * const [referenceElementRef, Popover] = usePopover() * * return (<> * * Hello world * ) * * The purpose of this hook is to abstract away some of the awkwardness with the * requirement of passing in refs with popper. We need to use `useState` instead * of `useRef`, which may not be immediately intuitive. * * The popper documentation to help provide more context: * https://popper.js.org/react-popper/v2/hook/ */ export declare const usePopover: () => [(element: HTMLElement | null) => void, (props: PopoverPropsWithoutRef) => JSX.Element | null]; export {};