import { kdsPopoverPlacement, kdsPopoverRole, kdsPopoverType } from './enums';
export type KdsPopoverPlacement = (typeof kdsPopoverPlacement)[keyof typeof kdsPopoverPlacement];
export type KdsPopoverRole = (typeof kdsPopoverRole)[keyof typeof kdsPopoverRole];
export type KdsPopoverType = (typeof kdsPopoverType)[keyof typeof kdsPopoverType];
type KdsPopoverCommonProps = {
    /**
     * Role of the popover element (for accessibility).
     *
     * Defaults to undefined.
     */
    role?: KdsPopoverRole;
    /**
     * Type of popover element's popover functionality.
     *
     * Defaults to "auto".
     */
    popoverType?: KdsPopoverType;
    /**
     * When true, enforces the popover's minimum width to match the anchor element's width.
     */
    fullWidth?: boolean;
    /**
     * Maximum inline size as a CSS value. The container cannot grow above this value.
     * When not set, there is no upper limit.
     */
    maxInlineSize?: string;
    /**
     * Optional content rendered when no default slot is provided.
     */
    content?: string;
};
type KdsPopoverAnchoredProps = {
    /**
     * Placement of the popover relative to the anchor element.
     *
     * Format: `{side}-{edge}` where:
     * - `side`: which side of the anchor the popover appears on (`top`, `bottom`)
     * - `edge`: which edge of the popover aligns with the anchor's edge (`left`, `right`)
     *
     * @default "bottom-left"
     */
    placement?: Exclude<KdsPopoverPlacement, "custom">;
    /**
     * Not allowed for anchored placements. Only valid when `placement` is `"custom"`.
     */
    customPlacementPosition?: never;
};
type KdsPopoverCustomPlacementProps = {
    /**
     * Positions the popover statically at a fixed coordinate (provided via
     * `customPlacementPosition`) instead of anchoring it to an element.
     */
    placement: "custom";
    /**
     * Fixed coordinate at which the popover is positioned. Required when
     * `placement` is `"custom"`.
     */
    customPlacementPosition: {
        x: number;
        y: number;
    };
};
export type KdsPopoverProps = KdsPopoverCommonProps & (KdsPopoverAnchoredProps | KdsPopoverCustomPlacementProps);
export type KdsPopoverExpose = {
    /**
     * Ready-to-use inline style object (`{ "anchor-name": "..." }`) to apply
     * on the anchor/activator element via `:style="popoverRef?.anchorStyle"`.
     */
    anchorStyle: Record<string, string>;
    /**
     * The popover element's ID. Use for `aria-controls` on the activator.
     */
    popoverId: string;
};
export {};
//# sourceMappingURL=types.d.ts.map