/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
import { IBaseOverlayFoundation } from './base-overlay-foundation';
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy } from '../overlay-constants';
import { PositionPlacement, VirtualElement } from '../../core/utils/position-utils';
export interface IBaseOverlay extends IBaseComponent {
    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;
    position(): void;
}
export declare abstract class BaseOverlay<T extends IBaseOverlayFoundation> extends BaseComponent implements IBaseOverlay {
    protected _foundation: T;
    constructor();
    position(): void;
    attributeChangedCallback(name: string, _oldValue: string, newValue: string): void;
    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;
    auto: boolean;
}
