/**
 * Copyright (c) Cisco Systems, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */
import { PlacementType, StrategyType } from "../popover/Popover.types";
import { LitElement, PropertyValues } from "lit";
export declare const tooltipPlacement: readonly ["auto", "auto-start", "auto-end", "left-start", "left", "left-end", "right-start", "right", "right-end", "top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"];
export declare const tooltipStrategy: readonly ["fixed", "absolute"];
export type TooltipEvent = {
    placement: Tooltip.Placement;
    reference: HTMLElement;
    popper: HTMLElement;
    slotContent?: Element[] | null;
};
export declare namespace Tooltip {
    export type Placement = PlacementType;
    export type Strategy = StrategyType;
    const ELEMENT_base: typeof LitElement & import("../../mixins/FocusMixin").AnyConstructor<import("../../mixins/FocusMixin").FocusClassInterface & import("../../mixins/FocusMixin").FocusClass> & import("../../mixins/ResizeMixin").AnyConstructor<import("../../mixins/ResizeMixin").ResizeClass>;
    export class ELEMENT extends ELEMENT_base {
        message: string;
        placement: Tooltip.Placement;
        disabled: boolean;
        opened: boolean;
        slotToTooltip: boolean;
        popper: HTMLDivElement;
        reference: HTMLDivElement;
        private slotContent;
        private readonly _keyDownListener;
        private readonly _wheelListener;
        private hasMessage;
        private hasSlotContent;
        private get hasTooltipContent();
        connectedCallback(): void;
        disconnectedCallback(): void;
        protected handleResize(contentRect: DOMRect): void;
        protected handleFocusIn(event: Event): void;
        protected handleFocusOut(event: Event): void;
        private openTooltip;
        private notifyTooltipDisconnected;
        private closeTooltip;
        private changeMessage;
        private changeSlotContent;
        notifyTooltipCreate(): void;
        notifyTooltipDestroy(): void;
        handleKeyDown(event: KeyboardEvent): void;
        handleSlotContentChange(event: Event): void;
        protected updated(changedProperties: PropertyValues): void;
        handleSlotChanged(event: Event): void;
        private isContentTruncated;
        private get tooltipClassMap();
        render(): import("lit-html").TemplateResult<1>;
        static get styles(): import("lit").CSSResult[];
    }
    export {};
}
declare global {
    interface HTMLElementTagNameMap {
        "md-tooltip": Tooltip.ELEMENT;
    }
}
