/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IPopupAdapter } from './popup-adapter';
import { IPopupPosition, PopupAnimationType, PopupPlacement, PopupStateCallback } from './popup-constants';
export interface IPopupFoundation extends ICustomElementFoundation {
    targetElement: HTMLElement;
    placement: PopupPlacement;
    fallbackPlacements: PopupPlacement[];
    open: boolean;
    manageFocus: boolean;
    animationType: PopupAnimationType;
    static: boolean;
    offset: IPopupPosition;
    hideWhenClipped: boolean;
    position(): void;
    openCallback: PopupStateCallback;
    closeCallback: PopupStateCallback;
}
export declare class PopupFoundation implements IPopupFoundation {
    private _adapter;
    private _targetElement;
    private _placement;
    private _fallbackPlacements;
    private _open;
    private _manageFocus;
    private _animationType;
    private _static;
    private _offset?;
    private _hideWhenClipped;
    private _destroyBlurListener;
    private _openCallback;
    private _closeCallback;
    private _blurListener;
    constructor(_adapter: IPopupAdapter);
    disconnect(): void;
    private _openPopup;
    private _closePopup;
    private _destroyPopup;
    private _applyOpenAnimation;
    private _applyCloseAnimation;
    private _onBlur;
    private _applyOpen;
    private _executeOpenCallback;
    private _executeCloseCallback;
    get targetElement(): HTMLElement;
    set targetElement(element: HTMLElement);
    get placement(): PopupPlacement;
    set placement(value: PopupPlacement);
    get fallbackPlacements(): PopupPlacement[];
    set fallbackPlacements(value: PopupPlacement[]);
    get open(): boolean;
    set open(value: boolean);
    get manageFocus(): boolean;
    set manageFocus(value: boolean);
    get animationType(): PopupAnimationType;
    set animationType(value: PopupAnimationType);
    get static(): boolean;
    set static(value: boolean);
    get hideWhenClipped(): boolean;
    set hideWhenClipped(value: boolean);
    get offset(): IPopupPosition;
    set offset(value: IPopupPosition);
    get openCallback(): PopupStateCallback;
    set openCallback(callback: PopupStateCallback);
    get closeCallback(): PopupStateCallback;
    set closeCallback(callback: PopupStateCallback);
    position(): void;
}
