import { ApplicationRef, ComponentFactoryResolver, Injector, Type } from '@angular/core';
import { Observable } from 'rxjs';
import { NgxModalComponent } from './ngx-modal.component';
import { NgxModalOptionsOverrides } from './ngx-modal-options';
import * as i0 from "@angular/core";
export declare class NgxModalServiceConfig {
    container: HTMLElement | string;
}
export declare class NgxModalService {
    private resolver;
    private applicationRef;
    private injector;
    /**
     * Placeholder of modals
     * @type {NgxModalHolderComponent}
     */
    private modalHolderComponent;
    /**
     * HTML container for modals
     * type {HTMLElement | string}
     */
    private _container;
    constructor(resolver: ComponentFactoryResolver, applicationRef: ApplicationRef, injector: Injector, config: NgxModalServiceConfig);
    /**
     * Accessor for contain - will auto generate from string
     * if needed or default to the root element if nothing was set
     */
    private set container(value);
    private get container();
    /**
     * Creates and add to DOM modal holder component.
     *
     * @returns {NgxModalHolderComponent}
     */
    private createSimpleModalHolder;
    /**
     * Adds modal
     *
     * @param {Type<NgxModalComponent<T, T1>>} component
     * @param {T?} data
     * @param {NgxModalOptionsOverrides?} options
     *
     * @returns {Observable<T1>}
     */
    addModal<T, T1>(component: Type<NgxModalComponent<T, T1>>, data?: T, options?: NgxModalOptionsOverrides): Observable<T1>;
    /**
     * Hides and removes modal from DOM, resolves promise when fully removed
     *
     * @param {NgxModalComponent} component
     *
     * @returns {Promise<{}>}
     */
    removeModal(component: NgxModalComponent<any, any>): Promise<{}>;
    /**
     * Closes all modals, resolves promise when they're fully removed
     *
     * @returns {Promise<{}>}
     */
    removeAll(): Promise<{}>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxModalService, [null, null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NgxModalService>;
}
