import { IAnimatableProps } from '../../../Behaviors/Animatable';
import { IAppearanceableProps } from '../../../Behaviors/Appearanceable';
import { IAttachableProps } from '../../../Behaviors/Attachable';
import { IDisableableProps } from '../../../Behaviors/Disableable';
import { IElevatableProps } from '../../../Behaviors/Elevatable';
import { IVariantableProps } from '../../../Behaviors/Variantable';
import { Placement } from '../../../Types/Placement';
import type { Trigger } from '../../../Types/Trigger';
import { IOverlayElementProps } from '../../Overlays/Abstracts/OverlayElement';
/**
 * Represents the `IPopupElementProps` interface.
 *
 * @public
 */
export interface IPopupElementProps extends IOverlayElementProps, IAppearanceableProps, IVariantableProps, IDisableableProps, IElevatableProps, IAnimatableProps, IAttachableProps {
    /**
     * The placement of the popup relative to its anchor element.
     */
    placement: Placement;
    /**
     * The fallback placements to use when the preferred placement doesn't fit.
     */
    placements: Array<Placement>;
    /**
     * The horizontal offset (distance) from the anchor element in pixels.
     */
    distance: number;
    /**
     * The vertical offset (skidding) along the anchor element in pixels.
     */
    skidding: number;
    /**
     * The trigger(s) that will open/close the popup.
     * Can be combined using bitwise OR (e.g., `Trigger.Hover | Trigger.Focus`).
     */
    trigger: Trigger;
    /**
     * Delay in milliseconds before showing the popup.
     */
    showDelay: number;
    /**
     * Delay in milliseconds before hiding the popup.
     */
    hideDelay: number;
    /**
     * Whether the popup stays open when the mouse moves from anchor to popup content.
     */
    staysOpen: boolean;
    /**
     * Whether scrolling should close the popup.
     */
    closeOnScroll: boolean;
    /**
     * Whether the popup content is interactive (allows clicks, focus, etc.).
     */
    interactive: boolean;
    /**
     * Whether to automatically flip the popup to the opposite side when there's not enough space.
     */
    flip: boolean;
    /**
     * Whether to shift the popup along its axis to stay within the viewport.
     */
    shift: boolean;
    /**
     * Whether to trap focus within the popup (for accessibility).
     */
    trapFocus: boolean;
}
/**
 * Default values for PopupElement properties.
 *
 * @public
 */
export declare namespace IPopupElementProps {
    const DEFAULTS: IPopupElementProps;
}
//# sourceMappingURL=IPopupElementProps.d.ts.map