/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { TooltipPlacement, TooltipTriggerType, TooltipType } from './tooltip-constants';
import { BaseComponent } from '../core/base/base-component';
import { IWithDefaultAria } from '../core/mixins/internals/with-default-aria';
import { IWithElementInternals } from '../core/mixins/internals/with-element-internals';
import { OverlayFlipState } from '../overlay/overlay-constants';
import { PositionPlacement } from '../core/utils/position-utils';
import { IDismissible, IDismissibleStackState, tryDismiss } from '../core/utils/dismissible-stack';
export interface ITooltipComponent extends IWithDefaultAria, IWithElementInternals, IDismissible {
    open: boolean;
    type: TooltipType;
    anchor: string;
    anchorElement: HTMLElement | null;
    /** @deprecated use `anchor` instead */
    target: string;
    placement: `${TooltipPlacement}`;
    /** @deprecated use `placement` instead */
    position: `${TooltipPlacement}`;
    delay: number;
    offset: number;
    flip: OverlayFlipState;
    boundary: string | null;
    boundaryElement: HTMLElement | null;
    fallbackPlacements: PositionPlacement[] | null;
    triggerType: TooltipTriggerType | TooltipTriggerType[];
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-tooltip': ITooltipComponent;
    }
}
declare const BaseClass: import("..").AbstractConstructor<import("../core/mixins/internals/with-default-aria").WithDefaultAriaContract> & import("..").AbstractConstructor<import("../core/mixins/internals/with-element-internals").WithElementInternalsContract> & typeof BaseComponent;
/**
 * @tag forge-tooltip
 *
 * @summary Tooltips display information related to an element when the user hovers over an element.
 *
 * @property {boolean} open - Whether or not the tooltip is open.
 * @property {TooltipType} type - The type of tooltip. Valid values are `presentation` (default), `label`, and `description`.
 * @property {string} anchor - The id of the element that the tooltip is anchored to.
 * @property {TooltipPlacement} placement - The placement of the tooltip relative to the anchor element.
 * @property {number} delay - The delay in milliseconds before the tooltip is shown.
 * @property {number} offset - The offset in pixels between the tooltip and the anchor element.
 * @property {OverlayFlipState} flip - How the tooltip should place itself if there is not enough space at the desired placement.
 * @property {string | null} boundary - The id of the element that the tooltip should be constrained to.
 * @property {HTMLElement | null} boundaryElement - The element that the tooltip should be constrained to.
 * @property {PositionPlacement[] | null} fallbackPlacements - The fallback placements of the tooltip relative to the anchor element.
 * @property {TooltipTriggerType | TooltipTriggerType[]} triggerType - The trigger type(s) that will open the tooltip. Valid values are `hover` (default), `longpress`, and `focus`.
 *
 * @attribute {boolean} open - Whether or not the tooltip is open.
 * @attribute {TooltipType} type - The type of tooltip. Valid values are `presentation` (default), `label`, and `description`.
 * @attribute {string} anchor - The id of the element that the tooltip is anchored to.
 * @attribute {TooltipPlacement} placement - The placement of the tooltip relative to the anchor element.
 * @attribute {number} delay - The delay in milliseconds before the tooltip is shown.
 * @attribute {number} offset - The offset in pixels between the tooltip and the anchor element.
 * @attribute {OverlayFlipState} flip - How the tooltip should place itself if there is not enough space at the desired placement.
 * @attribute {string | null} boundary - The id of the element that the tooltip should be constrained to.
 * @attribute {PositionPlacement[]} fallbackPlacements - The fallback placements of the tooltip relative to the anchor element.
 *
 * @cssproperty --forge-tooltip-background - The background color of the tooltip surface.
 * @cssproperty --forge-tooltip-color - The text color of the tooltip surface.
 * @cssproperty --forge-tooltip-shape - The shape of the tooltip surface.
 * @cssproperty --forge-tooltip-padding - The padding of the tooltip surface.
 * @cssproperty --forge-tooltip-padding-block - The block padding of the tooltip surface.
 * @cssproperty --forge-tooltip-padding-inline - The inline padding of the tooltip surface.
 * @cssproperty --forge-tooltip-max-width - The maximum width of the tooltip surface.
 * @cssproperty --forge-tooltip-elevation - The elevation of the tooltip surface.
 * @cssproperty --forge-tooltip-border-width - The border width of the tooltip surface.
 * @cssproperty --forge-tooltip-border-style - The border style of the tooltip surface.
 * @cssproperty --forge-tooltip-border-color - The border color of the tooltip surface.
 * @cssproperty --forge-tooltip-animation-timing - The animation timing function of the tooltip surface.
 * @cssproperty --forge-tooltip-animation-duration - The animation duration of the tooltip surface.
 * @cssproperty --forge-tooltip-animation-offset - The animation offset of the tooltip surface.
 * @cssproperty --forge-tooltip-arrow-size - The size of the tooltip arrow.
 * @cssproperty --forge-tooltip-arrow-height - The height of the tooltip arrow.
 * @cssproperty --forge-tooltip-arrow-width - The width of the tooltip arrow.
 * @cssproperty --forge-tooltip-arrow-shape - The shape of the tooltip arrow.
 * @cssproperty --forge-tooltip-arrow-clip-path - The clip path of the tooltip arrow.
 * @cssproperty --forge-tooltip-arrow-rotation - The rotation of the tooltip arrow.
 * @cssproperty --forge-tooltip-arrow-top-rotation - The rotation of the tooltip arrow when the tooltip is placed on top.
 * @cssproperty --forge-tooltip-arrow-right-rotation - The rotation of the tooltip arrow when the tooltip is placed on the right.
 * @cssproperty --forge-tooltip-arrow-bottom-rotation - The rotation of the tooltip arrow when the tooltip is placed on the bottom.
 * @cssproperty --forge-tooltip-arrow-left-rotation- The rotation of the tooltip arrow when the tooltip is placed on the left.
 *
 * @slot - The content to display in the tooltip.
 *
 * @csspart surface - The tooltip surface.
 * @csspart arrow - The tooltip arrow.
 * @csspart overlay - The overlay surface.
 */
export declare class TooltipComponent extends BaseClass implements ITooltipComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    [tryDismiss](state?: IDismissibleStackState<string> | undefined): boolean;
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    open: boolean;
    type: TooltipType;
    anchor: string;
    anchorElement: HTMLElement | null;
    /** @deprecated use `anchor` instead */
    target: string;
    placement: `${TooltipPlacement}`;
    /** @deprecated use `placement` instead */
    position: `${TooltipPlacement}`;
    delay: number;
    offset: number;
    flip: OverlayFlipState;
    boundary: string | null;
    boundaryElement: HTMLElement | null;
    fallbackPlacements: PositionPlacement[] | null;
    triggerType: TooltipTriggerType | TooltipTriggerType[];
}
export {};
