import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import { HTMLStencilElement } from '../../stencil-public-runtime';
import { LogInstance, Loggable } from '../../utils/log';
export declare class Tooltip implements ComponentInterface, Loggable {
    private tooltipId;
    el: HTMLStencilElement;
    private containerEl;
    private contentEl;
    private arrowEl;
    private trigger;
    private cleanup?;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    /**
     * PUBLIC PROPERTY API
     * ------------------------------------------------------
     */
    /**
     * Id of the reference element default is the trigger element.
     */
    reference: string;
    /**
     * If set it turns a tooltip into a fullscreen or a drawer on touch devices
     */
    placement: BalProps.BalTooltipPlacement;
    /**
     * Offset form trigger to tooltip.
     */
    offset: number;
    /**
     * @internal
     */
    demo: boolean;
    /**
     * Internal active state
     */
    presented: boolean;
    /**
     * Defines the width of the content
     */
    contentWidth?: number;
    contentWidthChanged(newValue?: number, oldValue?: number): void;
    /**
     * Emitted before the animation starts
     */
    balWillAnimate: EventEmitter<BalEvents.BalTooltipWillAnimateDetail>;
    /**
     * Emitted after the animation has finished
     */
    balDidAnimate: EventEmitter<BalEvents.BalTooltipDidAnimateDetail>;
    /**
     * LIFECYCLE
     * ------------------------------------------------------
     */
    componentDidLoad(): void;
    /**
     * INTERNAL METHODS
     * ------------------------------------------------------
     */
    /**
     * @internal
     */
    present(): Promise<boolean>;
    /**
     * @internal
     */
    dismiss(): Promise<boolean>;
    /**
     * @internal
     */
    update(): Promise<boolean>;
    /**
     * GETTERS
     * ------------------------------------------------------
     */
    private get triggerElement();
    /**
     * RENDER
     * ------------------------------------------------------
     */
    render(): any;
}
