import { Placement } from '../../../Types/Placement';
import { Trigger } from '../../../Types/Trigger';
import { CustomElement } from '../../Abstracts/CustomElement';
import { IToggleTipElementProps } from './IToggleTipElementProps';
declare const ToggleTipElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Sizeable").ISizeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/TextFormattable").ITextFormattableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * ToggleTip - An interactive icon that displays contextual help content in a toggleable tooltip.
 *
 * @description
 * The ToggleTip element combines an information icon with a tooltip to provide on-demand help and
 * context. Unlike standard tooltips that appear on hover, toggletips are explicitly triggered and
 * can remain visible while users interact with the content. Supports various trigger modes (hover,
 * click, focus), placement options, delays, and customizable offset positioning. The icon automatically
 * uses the info-circle icon but can be customized via CSS. Ideal for inline help, form field
 * explanations, and feature descriptions that users can access without leaving their current context.
 *
 * @name ToggleTip
 * @element mosaik-toggletip
 * @category Primitives
 *
 * @slot - Default slot for custom trigger content (overrides default icon)
 *
 * @csspart tooltip - The tooltip component container
 *
 * @dependency {TooltipElement} - Tooltip component for displaying content
 * @dependency {IconElement} - Icon component for the info indicator
 *
 * @example
 * Basic toggletip with hover trigger:
 * ```html
 * <label for="password">
 *   Password
 *   <mosaik-toggletip
 *     content="Must be at least 8 characters with uppercase, lowercase, and numbers">
 *   </mosaik-toggletip>
 * </label>
 * <input type="password" id="password">
 * ```
 *
 * @example
 * Click-triggered toggletip that stays open:
 * ```html
 * <mosaik-toggletip
 *   content="Click the settings icon to customize your preferences"
 *   trigger="click"
 *   stays-open="true"
 *   placement="right">
 * </mosaik-toggletip>
 * ```
 *
 * @example
 * Toggletip with custom positioning:
 * ```html
 * <mosaik-toggletip
 *   content="This is a detailed explanation that appears above"
 *   placement="top"
 *   horizontal-offset="0"
 *   vertical-offset="12"
 *   size="small">
 * </mosaik-toggletip>
 * ```
 *
 * @example
 * Toggletip with delays and custom formatting:
 * ```html
 * <mosaik-toggletip
 *   id="helpTip"
 *   content="Feature available in {plan} plan"
 *   show-delay="300"
 *   hide-delay="100"
 *   placement="bottom">
 * </mosaik-toggletip>
 *
 * <script>
 *   document.getElementById('helpTip').formatter = (text) =>
 *     text.replace('{plan}', 'Premium');
 * </script>
 * ```
 *
 * @public
 */
export declare class ToggleTipElement extends ToggleTipElement_base implements IToggleTipElementProps {
    private _tooltipElement;
    private _content;
    private _placement;
    private _horizontalOffset;
    private _verticalOffset;
    private _isOpen;
    private _showDelay;
    private _hideDelay;
    private _trigger;
    private _staysOpen;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @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);
    /**
     * @public
     */
    open(): void;
    /**
     * @public
     */
    close(): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     */
    protected onOpened(): void;
    /**
     * @protected
     */
    protected onClosed(): void;
}
/**
 * @public
 */
export declare namespace ToggleTipElement {
    type Props = IToggleTipElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-toggletip': ToggleTipElement;
    }
}
export {};
//# sourceMappingURL=ToggleTipElement.d.ts.map