import { ElementRef, EventEmitter, Injector, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { UniqueIdService } from '@ironsource/fusion-ui/services/unique-id';
import { LogService } from '@ironsource/fusion-ui/services/log';
import { WindowService } from '@ironsource/fusion-ui/services/window';
import { ModalConfiguration } from './modal.entities';
import { ModalTestIdModifiers } from '@ironsource/fusion-ui/entities';
import { TestIdsService } from '@ironsource/fusion-ui/services/test-ids';
import * as i0 from "@angular/core";
export declare class ModalComponent implements OnDestroy, OnInit {
    protected document: Document;
    private uidService;
    private elRef;
    private windowRef;
    private logService;
    private renderer;
    private injector;
    /** @internal */
    static activeModals: {
        [id: string]: ModalComponent;
    };
    submitPending: boolean;
    /** @internal */
    set isModalOpen(value: boolean);
    set configuration(config: ModalConfiguration);
    get configuration(): ModalConfiguration;
    /** @internal */
    testId: string;
    openModal: EventEmitter<any>;
    closeModal: EventEmitter<any>;
    /** @internal */
    modalBody: ElementRef;
    /** @internal */
    modalHolder: ElementRef;
    /** @internal */
    modalTestIdModifiers: typeof ModalTestIdModifiers;
    /** @internal */
    testIdsService: TestIdsService;
    private uid;
    private _configuration;
    private isClosed$;
    private modalOpenListener$;
    private onDestroy$;
    constructor(document: Document, uidService: UniqueIdService, elRef: ElementRef, windowRef: WindowService, logService: LogService, renderer: Renderer2, injector: Injector);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /** @internal */
    onOpen(): void;
    /** @internal */
    onClose(emitEvent?: boolean, eventType?: 'close' | 'submit'): void;
    private initListeners;
    private addModal;
    private removeModal;
    private onModalOpened;
    private onModalClosed;
    private setModalConfiguration;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "fusion-modal", never, { "submitPending": { "alias": "submitPending"; "required": false; }; "isModalOpen": { "alias": "isModalOpen"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; }, { "openModal": "openModal"; "closeModal": "closeModal"; }, never, ["*"], false, never>;
}
