/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
import { IOverlayComponent } from '../overlay';
import { IOverlayAwareFoundation } from './overlay-aware-foundation';
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy } from '../overlay-constants';
import { PositionPlacement, VirtualElement } from '../../core/utils/position-utils';
import { IBaseOverlay } from './base-overlay';
export interface IOverlayAware extends IBaseComponent, IBaseOverlay {
    readonly overlay: IOverlayComponent;
}
export declare abstract class OverlayAware<T extends IOverlayAwareFoundation> extends BaseComponent implements IOverlayAware {
    protected _foundation: T;
    constructor();
    position(): void;
    attributeChangedCallback(name: string, _oldValue: string, newValue: string): void;
    get overlay(): IOverlayComponent;
    anchorElement: HTMLElement | VirtualElement | null;
    anchor: string | null;
    noAnchor: boolean;
    open: boolean;
    inline: boolean;
    placement: OverlayPlacement;
    positionStrategy: OverlayPositionStrategy;
    offset: IOverlayOffset;
    shift: boolean;
    hide: OverlayHideState;
    persistent: boolean;
    flip: OverlayFlipState;
    boundary: string | null;
    boundaryElement: HTMLElement | null;
    fallbackPlacements: PositionPlacement[] | null;
}
