import { CSSResultGroup, LitElement, TemplateResult } from "lit";
export declare type Placement = "top-start" | "top" | "top-end" | "bottom-start" | "bottom" | "bottom-end" | "left-start" | "left" | "left-end" | "right-start" | "right" | "right-end";
/**
 * @tag bl-popover
 * @summary Baklava Popover component
 *
 * @cssproperty [--bl-popover-arrow-display=none] - Sets the display of popovers arrow. Set as `block` to make arrow visible.
 * @cssproperty [--bl-popover-background-color=--bl-color-neutral-full] - Sets the background color of popover.
 * @cssproperty [--bl-popover-border-color=--bl-color-primary-highlight] - Sets the border color of popover.
 * @cssproperty [--bl-popover-border-size=1px] - Sets the border size of popover. You can set it to `0px` to not have a border (if you use a custom background color). Always use with a length unit.
 * @cssproperty [--bl-popover-padding=--bl-size-m] - Sets the padding of popover.
 * @cssproperty [--bl-popover-border-radius=--bl-size-3xs] - Sets the border radius of popover.
 * @cssproperty [--bl-popover-max-width=100vw] - Sets the maximum width of the popover (including border and padding).
 * @cssproperty [--bl-popover-position=fixed] - Sets the position of popover. You can set it to `absolute` if parent element is a fixed positioned element like drawer or dialog.
 */
export default class BlPopover extends LitElement {
    static get styles(): CSSResultGroup;
    private popover;
    private arrow;
    /**
     * Sets placement of the popover
     */
    placement: Placement;
    /**
     * Target elements state
     */
    _target: string | Element;
    /**
     * Sets size of popover same as trigger element
     */
    fitSize: boolean;
    /**
     * Sets the distance between popover and target/trigger element
     */
    offset: number;
    /**
     * Visibility state
     */
    private _visible;
    /**
     * Fires when the popover is shown
     */
    private onBlPopoverShow;
    /**
     * Fires when popover becomes hidden
     */
    private onBlPopoverHide;
    connectedCallback(): void;
    disconnectedCallback(): void;
    private getMiddleware;
    private _handleClickOutside;
    private popoverAutoUpdateCleanup;
    private setPopover;
    /**
     * Sets the target element of the popover to align and trigger.
     * It can be a string id of the target element or can be a direct Element reference of it.
     */
    get target(): string | Element;
    set target(value: string | Element);
    /**
     * Shows popover
     */
    show(): void;
    /**
     * Hides popover
     */
    hide(): void;
    /**
     * Gives the visibility status of the popover
     */
    get visible(): boolean;
    private _handlePopoverShowEvent;
    private _handleKeydownEvent;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        "bl-popover": BlPopover;
    }
}
//# sourceMappingURL=bl-popover.d.ts.map