/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';
import { IPopupComponent, IPopupCloseEventData } from './popup';
export interface IPopupAdapter extends IBaseAdapter {
    setAttribute(attribute: string, value: string, element?: HTMLElement): void;
    removeAttribute(attribute: string, element?: HTMLElement): void;
    positionPopup(): void;
    addPopup(targetElement: HTMLElement, manageFocus: boolean): void;
    removePopup(manageFocus: boolean): void;
    manageWindowEvents(add: boolean): void;
    dispatchEvent(type: string, data?: any, bubbles?: boolean, cancellable?: boolean): boolean;
    addClass(classes: string | string[]): void;
    removeClass(classes: string | string[]): void;
    setAnimationEndListener(listener: (evt: TransitionEvent) => void, classes?: string | string[]): void;
    removeEventListener(type: string, listener: (evt: Event) => void): void;
    setBlurListener(listener: () => void): () => void;
    trySetInitialFocus(): void;
    getCloseEventData(): IPopupCloseEventData;
}
export declare class PopupAdapter extends BaseAdapter<IPopupComponent> implements IPopupAdapter {
    private _windowEventCallback?;
    private _previouslyFocusedElement?;
    private _hostElement?;
    private _rootElement;
    constructor(component: IPopupComponent);
    setAttribute(attribute: string, value: string, element?: HTMLElement): void;
    removeAttribute(attribute: string, element?: HTMLElement): void;
    positionPopup(): Promise<void>;
    addPopup(targetElement: HTMLElement, manageFocus: boolean): void;
    removePopup(manageFocus: boolean): void;
    manageWindowEvents(add?: boolean): void;
    dispatchEvent(type: string, data?: any, bubbles?: boolean, cancelable?: boolean): boolean;
    getCloseEventData(): IPopupCloseEventData;
    addClass(classes: string | string[]): void;
    removeClass(classes: string | string[]): void;
    setAnimationEndListener(listener: (evt: TransitionEvent) => void, classes?: string | string[]): void;
    removeEventListener(type: string, listener: (evt: Event) => void): void;
    setBlurListener(listener: () => void): () => void;
    trySetInitialFocus(): void;
    private _windowInteraction;
}
