/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { IBaseOverlayFoundation } from './base-overlay-foundation';
import { IOverlayComponent } from '../overlay';
import { IOverlayAwareAdapter } from './overlay-aware-adapter';
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy } from '../overlay-constants';
import { PositionPlacement, VirtualElement } from '../../core/utils/position-utils';
export interface IOverlayAwareFoundation extends IBaseOverlayFoundation {
    readonly overlayElement: IOverlayComponent;
}
export declare abstract class OverlayAwareFoundation<T extends IOverlayAwareAdapter> implements IOverlayAwareFoundation {
    protected _adapter: T;
    private _lightDismissListener;
    constructor(_adapter: T);
    protected abstract _onOverlayLightDismiss(evt: CustomEvent): void;
    initialize(): void;
    destroy(): void;
    get overlayElement(): IOverlayComponent;
    get anchorElement(): HTMLElement | VirtualElement | null;
    set anchorElement(value: HTMLElement | VirtualElement | 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 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 hide(): OverlayHideState;
    set hide(value: OverlayHideState);
    get persistent(): boolean;
    set persistent(value: boolean);
    get shift(): boolean;
    set shift(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);
    position(): void;
}
