import React from 'react';
import { type ContentProps, type DialogContentProps, type PopupProps as LegacyPopupProps, type TInitialFocusRole } from '../types';
type CommonContentPopupProps = Pick<LegacyPopupProps, 'xcss' | 'appearance' | 'boundary' | 'offset' | 'onClose' | 'testId' | 'placement' | 'fallbackPlacements' | 'popupComponent' | 'shouldFlip' | 'rootBoundary' | 'autoFocus' | 'shouldRenderToParent' | 'shouldUseCaptureOnOutsideClick' | 'shouldIgnoreCloseEvent' | 'shouldDisableFocusLock' | 'strategy' | 'zIndex' | 'shouldFitViewport' | 'label' | 'titleId'> & {
    /**
     * ___Use with caution___
     *
     * Disables popper.js GPU acceleration for this popup.
     * This means only positioning will be used, without any transforms.
     *
     * Performance will be degraded if the popup is expected to move.
     *
     * This should almost never be used, but is sometimes needed
     * to resolve layering issues.
     */
    shouldDisableGpuAcceleration?: boolean;
};
type ShouldFitContainerContentPopupProps = CommonContentPopupProps & {
    shouldFitContainer: true;
    shouldRenderToParent?: true;
    strategy?: 'absolute';
};
type StandardPopupContentProps = CommonContentPopupProps & {
    shouldFitContainer?: false;
};
type TPopupContentBase = ShouldFitContainerContentPopupProps | StandardPopupContentProps;
/**
 * Props for popup content with any role, or no role. `children` does not get `setInitialFocusRef`.
 */
export type PopupContentProps = TPopupContentBase & {
    /**
     * Use this to set the accessibility role for the popup.
     * We strongly recommend using only `menu` or `dialog`.
     * Must be used along with `label` or `titleId`.
     *
     * Only `role="dialog"` and `role="alertdialog"` (as literal types) give `children`
     * the `setInitialFocusRef` setter.
     */
    role?: string;
    children: (props: ContentProps) => React.ReactNode;
};
/**
 * Props for popup content with `role="dialog"` or `role="alertdialog"`.
 * `children` gets `setInitialFocusRef`.
 */
export type DialogPopupContentProps = TPopupContentBase & {
    /**
     * Use this to set the accessibility role for the popup.
     * Must be used along with `label` or `titleId`.
     * Required. `undefined` lets a role gated on `platform-dst-top-layer` keep the setter.
     */
    role: TInitialFocusRole | undefined;
    children: (props: DialogContentProps) => React.ReactNode;
};
/**
 * The `PopupContent` component type. The dialog signature comes first, so only a role
 * that is always `'dialog'` or `'alertdialog'` gets `setInitialFocusRef`.
 */
export interface TPopupContent {
    (props: DialogPopupContentProps): React.ReactNode;
    (props: PopupContentProps): React.ReactNode;
}
/**
 * __Popup content__
 *
 * Popup content is the component that renders the content of the popup.
 *
 * It must be a child of the Popup component. Only `role="dialog"` and
 * `role="alertdialog"` give `children` the `setInitialFocusRef` setter.
 */
declare function PopupContent(props: DialogPopupContentProps): React.ReactNode;
declare function PopupContent(props: PopupContentProps): React.ReactNode;
export { PopupContent };
