import { type IAttachable } from '../../../Behaviors/Attachable';
import { Placement } from '../../../Types/Placement';
import { Trigger } from '../../../Types/Trigger';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { ITooltipElementProps } from './ITooltipElementProps';
import { IOpenable } from '../../../Behaviors/Openable';
import { ICloseable } from '../../../Behaviors/Closeable';
import { ISlottable } from '../../../Behaviors/Slottable';
declare const TooltipElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => IAttachable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/TextFormattable").ITextFormattableProps) & (abstract new (...args: Array<any>) => IOpenable & import("../../../Behaviors/Openable").IOpenableEvents) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Closeable").ICloseableProps & import("../../../Behaviors/Closeable").ICloseableEvents & ICloseable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Tooltip - A brief, contextual description that appears when hovering over an element.
 *
 * @element mosaik-tooltip
 *
 * @fires opened - Called when the tooltip is opened.
 * @fires closed - Called when the tooltip is closed.
 *
 * @public
 */
export declare class TooltipElement extends TooltipElement_base implements ITooltipElementProps, IAttachable, IOpenable, ICloseable, ISlottable {
    private _body;
    private _popup;
    private _content;
    private _placement;
    private _horizontalOffset;
    private _verticalOffset;
    private _isOpen;
    private _showDelay;
    private _hideDelay;
    private _trigger;
    private _staysOpen;
    private _hoverTimeout;
    private _blurSubscription;
    private _focusSubscription;
    private _clickSubscription;
    private _keydownSubscription;
    private _mouseoutSubscription;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `content` property.
     *
     * @public
     * @attr
     */
    get content(): string;
    set content(value: string);
    /**
     * Gets or sets the `placement` property.
     *
     * @public
     * @attr
     */
    get placement(): Placement;
    set placement(value: Placement);
    /**
     * Gets or sets the `horizontalOffset` property.
     *
     * @public
     * @attr
     */
    get horizontalOffset(): number;
    set horizontalOffset(value: number);
    /**
     * Gets or sets the `verticalOffset` property.
     *
     * @public
     * @attr
     */
    get verticalOffset(): number;
    set verticalOffset(value: number);
    /**
     * Gets or sets the `isOpen` property.
     *
     * @public
     * @attr
     */
    get isOpen(): boolean;
    set isOpen(value: boolean);
    /**
     * Gets or sets the `showDelay` property.
     *
     * @public
     * @attr
     */
    get showDelay(): number;
    set showDelay(value: number);
    /**
     * Gets or sets the `hideDelay` property.
     *
     * @public
     * @attr
     */
    get hideDelay(): number;
    set hideDelay(value: number);
    /**
     * Gets or sets the `trigger` property.
     *
     * @public
     * @attr
     */
    get trigger(): Trigger;
    set trigger(value: Trigger);
    /**
     * Gets or sets the `staysOpen` property.
     *
     * @public
     * @attr
     */
    get staysOpen(): boolean;
    set staysOpen(value: boolean);
    /**
     * Opens the tooltip.
     *
     * @public
     * @override
     */
    open(): Promise<void>;
    /**
     * Closes the tooltip.
     *
     * @public
     * @override
     */
    close(): Promise<boolean>;
    /**
     * @public
     * @override
     */
    attach(control: HTMLElement | string): void;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * @public
     * @override
     */
    disconnectedCallback(): void;
    /**
    * @protected
    * @override
    */
    protected onApplyTemplate(): void;
    /**
     * @protected
     * @override
     */
    protected firstUpdated(changedProperties: Map<keyof this, unknown>): void;
    /**
     * @protected
     */
    protected onBlur(_event: FocusEvent): void;
    /**
     * @protected
     */
    protected onClick(_event: MouseEvent): void;
    /**
     * @protected
     */
    protected onFocus(_event: FocusEvent): void;
    /**
     * @protected
     */
    protected onKeyDown(event: KeyboardEvent): void;
    /**
     * @protected
     */
    protected onMouseOver(_event: MouseEvent): void;
    /**
     * @protected
     */
    protected onMouseOut(_event: MouseEvent): void;
    /**
     * @protected
     */
    protected onIsOpenPropertyChange(): void;
    /**
     * @protected
     */
    protected onContentPropertyChange(_oldValue: string, newValue: string): void;
    /**
     * @protected
     */
    protected onDistancePropertyChange(): void;
    /**
     * @protected
     */
    protected onPlacementPropertyChange(): void;
    /**
     * @protected
     */
    protected onSkiddingPropertyChange(): void;
    /**
     * @protected
     */
    protected onDisabledPropertyChange(): void;
    /**
     * @private
     */
    private hasTrigger;
}
/**
 * @public
 */
export declare namespace TooltipElement {
    type Props = ITooltipElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-tooltip': TooltipElement;
    }
}
export {};
//# sourceMappingURL=TooltipElement.d.ts.map