/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { PositionPlacement } from '../core/utils/position-utils';
import { IBaseOverlayFoundation, BaseOverlayFoundation } from './base/base-overlay-foundation';
import { IOverlayAdapter } from './overlay-adapter';
import { IOverlayOffset, OverlayPlacement, OverlayPositionStrategy, OverlayFlipState, OverlayHideState } from './overlay-constants';
export interface IOverlayFoundation extends IBaseOverlayFoundation {
    arrowElement: HTMLElement;
    arrowElementOffset: number;
}
export declare class OverlayFoundation extends BaseOverlayFoundation<IOverlayAdapter> implements IOverlayFoundation {
    private _anchorElement;
    private _anchor;
    private _noAnchor;
    private _open;
    private _inline;
    private _placement;
    private _positionStrategy;
    private _offset;
    private _shift;
    private _hide;
    private _flip;
    private _boundary;
    private _boundaryElement;
    private _fallbackPlacements;
    private _persistent;
    private _arrowElement;
    private _arrowElementOffset;
    private _lightDismissListener;
    constructor(adapter: IOverlayAdapter);
    initialize(): void;
    destroy(): void;
    position(): void;
    private _onLightDismiss;
    protected _applyOpen(value: boolean): void;
    private _showOverlay;
    private _hideOverlay;
    private _applyLightDismissListener;
    get anchorElement(): HTMLElement | null;
    set anchorElement(value: HTMLElement | null);
    get anchor(): string | null;
    set anchor(value: string | null);
    get noAnchor(): boolean;
    set noAnchor(value: boolean);
    get open(): boolean;
    set open(value: boolean);
    get arrowElement(): HTMLElement;
    set arrowElement(value: HTMLElement);
    get arrowElementOffset(): number;
    set arrowElementOffset(value: number);
    get inline(): boolean;
    set inline(value: boolean);
    get placement(): OverlayPlacement;
    set placement(value: OverlayPlacement);
    get positionStrategy(): OverlayPositionStrategy;
    set positionStrategy(value: OverlayPositionStrategy);
    get offset(): IOverlayOffset;
    set offset(value: IOverlayOffset);
    get shift(): boolean;
    set shift(value: boolean);
    get hide(): OverlayHideState;
    set hide(value: OverlayHideState);
    get persistent(): boolean;
    set persistent(value: boolean);
    get flip(): OverlayFlipState;
    set flip(value: OverlayFlipState);
    get boundary(): string | null;
    set boundary(value: string | null);
    get boundaryElement(): HTMLElement | null;
    set boundaryElement(value: HTMLElement | null);
    get fallbackPlacements(): PositionPlacement[] | null;
    set fallbackPlacements(value: PositionPlacement[] | null);
}
