import type { IElementRef, OnCreate, OnDestroy } from '@melodicdev/core';
import type { Placement } from '../../../types/index.js';
/**
 * ml-popover - Popover component that shows on trigger click
 *
 * @example
 * ```html
 * <ml-popover placement="bottom">
 *   <button slot="trigger">Open</button>
 *   <p>Popover content here</p>
 * </ml-popover>
 *
 * <ml-popover placement="bottom-start" manual>
 *   <button slot="trigger">Open</button>
 *   <div>
 *     <p>Locked content</p>
 *     <button>Close me manually</button>
 *   </div>
 * </ml-popover>
 * ```
 *
 * @slot trigger - The element that toggles the popover
 * @slot default - The popover content
 */
export declare class PopoverComponent implements IElementRef, OnCreate, OnDestroy {
    elementRef: HTMLElement;
    /** Popover placement relative to trigger */
    placement: Placement;
    /** Gap between trigger and popover in px */
    offset: number;
    /** When true, uses popover="manual" (no light-dismiss) */
    manual: boolean;
    /** When true, shows an arrow pointing to the trigger */
    arrow: boolean;
    /** Current open state */
    isOpen: boolean;
    private _cleanupAutoUpdate;
    onCreate(): void;
    onDestroy(): void;
    /** Open the popover */
    open(): void;
    /** Close the popover */
    close(): void;
    /** Toggle the popover */
    toggle: () => void;
    private readonly handleToggle;
    private startPositioning;
    private updatePosition;
    private positionArrow;
    private getTriggerEl;
    private getPopoverEl;
}
//# sourceMappingURL=popover.component.d.ts.map