/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { PositionPlacement } from '../core/utils/position-utils';
export declare const OVERLAY_CONSTANTS: {
    elementName: "forge-overlay";
    observedAttributes: {
        readonly ANCHOR: "anchor";
        readonly NO_ANCHOR: "no-anchor";
        readonly OPEN: "open";
        readonly INLINE: "inline";
        readonly PLACEMENT: "placement";
        readonly POSITION_STRATEGY: "position-strategy";
        readonly HIDE: "hide";
        readonly PERSISTENT: "persistent";
        readonly SHIFT: "shift";
        readonly FLIP: "flip";
        readonly BOUNDARY: "boundary";
        readonly FALLBACK_PLACEMENTS: "fallback-placements";
    };
    attributes: {
        readonly POSITION_PLACEMENT: "position-placement";
        readonly ANCHOR: "anchor";
        readonly NO_ANCHOR: "no-anchor";
        readonly OPEN: "open";
        readonly INLINE: "inline";
        readonly PLACEMENT: "placement";
        readonly POSITION_STRATEGY: "position-strategy";
        readonly HIDE: "hide";
        readonly PERSISTENT: "persistent";
        readonly SHIFT: "shift";
        readonly FLIP: "flip";
        readonly BOUNDARY: "boundary";
        readonly FALLBACK_PLACEMENTS: "fallback-placements";
    };
    classes: {
        readonly OVERLAY: "forge-overlay";
    };
    selectors: {
        readonly ROOT: ".forge-overlay";
    };
    events: {
        readonly LIGHT_DISMISS: "forge-overlay-light-dismiss";
        readonly DESCENDANT_TEST: "forge-overlay-descendant-test";
    };
    defaults: {
        readonly HIDE: "anchor-hidden";
        readonly FLIP: "auto";
    };
};
export declare const SUPPORTS_POPOVER: boolean;
export interface IOverlayOffset {
    mainAxis?: number;
    crossAxis?: number;
    alignmentAxis?: number;
}
export type OverlayPositionStrategy = 'absolute' | 'fixed';
export type OverlayPlacement = PositionPlacement;
export type OverlayHideState = 'anchor-hidden' | 'never';
export type OverlayFlipState = 'auto' | 'main' | 'cross' | 'never';
export type OverlayLightDismissReason = 'click' | 'escape';
export interface IOverlayToggleEvent extends Event {
    newState: 'closed' | 'open';
    oldState: 'closed' | 'open';
}
export interface OverlayLightDismissEventData {
    reason: OverlayLightDismissReason;
}
export declare const overlayStack: unique symbol;
/**
 * This is a map of fallback placements for each placement. The fallback placements are used when the
 * original placement is not possible due to the boundary or other constraints.
 */
export declare const OVERLAY_FALLBACK_PLACEMENT_MAP: Record<OverlayPlacement, OverlayPlacement[]>;
