import * as React from 'react'; import type { UnitSpace } from '../../../metrics/metrics'; import type { SurfaceHeaderProps } from '../../header/header'; import type { ContentContainerProps } from '../../internal/content_container'; import type { Trigger } from '../../internal/trigger'; import type { Offset as PinOffset, Placement as PinPlacement } from '../../pin/pin'; export type PopoverProps = { id?: string open: boolean blockOutsidePointerEvents?: boolean trigger: Trigger placement?: Placement enableFlip?: boolean enableShift?: boolean width?: Width widthMode?: WidthMode offset?: Offset arrow?: boolean borderRadius?: 'container' | 'none' background?: 'surface' | 'none' shadow?: 'surface' | 'none' children?: React.ReactNode } & EventHandlerProps & HeaderAndFooterProps & ContentContainerProps; type ExtractStrings = T extends string ? T : never; export type Placement = ExtractStrings; export type HeaderAndFooterProps = Pick & { headerStart?: SurfaceHeaderProps['start'] headerEnd?: SurfaceHeaderProps['end'] headerDivider?: 'always' | 'when-scrolled' | 'never' headerAlignment?: SurfaceHeaderProps['alignment'] header?: React.ReactNode footer?: React.ReactNode }; type EventHandlerProps = { onRequestClose?: () => void onCloseComplete?: () => void onScroll?: (arg: { scrollTop: number; }) => void }; export type Width = '16u' | '32u' | '40u' | '45u' | '52u' | 'trigger' | 'auto'; export type WidthMode = 'fixed' | 'maximum'; export type StandardOffset = TypesafeExtract; export type Offset = StandardOffset | PinOffset; type TypesafeExtract = Extract; export declare function Popover( { id: idProp, open, onRequestClose, onCloseComplete, onScroll, blockOutsidePointerEvents, trigger, placement, enableFlip, enableShift, width, widthMode, offset, arrow, borderRadius, background, shadow, children, title, description, header, headerStart, headerEnd, headerAlignment, headerDivider, footer, ...contentContainerProps }: PopoverProps ): React.JSX.Element; export {};