import { type BaseAttrs, type BaseEmits, type Emit2EventMap, UiBase } from '../web-component-base';
export type { reExportPopoverAttrs as reExportAttrs } from './attr-sync-helper';
export interface Attrs extends BaseAttrs {
    open?: boolean;
    disabled?: boolean;
    /** @default 'bottom-start' */
    placement?: `${'top' | 'bottom' | 'left' | 'right'}${'' | '-start' | '-end'}`;
    /** @default 'none' */
    strategy?: 'absolute' | 'fixed' | 'none';
    /** @default 0 */
    offset?: number;
    'min-width-with-trigger'?: boolean;
}
export interface Emits extends BaseEmits {
    'open-change': boolean;
}
export type EventMap = Emit2EventMap<Emits>;
/**
 * 点击触发器后气泡弹出
 */
export declare class Ele extends UiBase<Attrs, Emits> {
    static readonly tagName: "dt-popover";
    protected static _style: string;
    protected static _template: string;
    static get observedAttributes(): string[];
    get open(): boolean;
    set open(v: boolean);
    get disabled(): boolean;
    set disabled(v: boolean);
    get placement(): Attrs["placement"];
    set placement(v: Attrs['placement']);
    get strategy(): Attrs["strategy"];
    set strategy(v: Attrs['strategy']);
    get offset(): number;
    set offset(v: number);
    get _staticEls(): {
        readonly pop: HTMLSlotElement;
        readonly trigger: HTMLSlotElement;
    };
    private get _triggerAssignedEle();
    private get _popAssignedEle();
    /**
     * toggle open state
     * @returns null if disabled, otherwise the new open state
     */
    toggleOpen: (force?: boolean) => boolean | null;
    connectedCallback(): void;
    disconnectedCallback(): boolean | void;
    protected _onAttrChanged(name: string, oldValue: string | null, newValue: string | null): void;
    private _onTriggerClick;
    private _onDocClick;
    private _cleanupAutoUpdate;
    private _autoUpdatePosition;
    protected _onScreenSizeChanged(isSmall: boolean): void;
}
