import { ComponentRef, DestroyRef } from '@angular/core';
import { DialogConfig } from '../utils/dialog-config.class';
import { DialogContainer } from '../utils/dialog-container.model';
import { DialogConfigBase } from './dialog-config-base.class';
import { DialogRefBase } from './dialog-ref-base.class';
import * as i0 from "@angular/core";
/** Service used to dynamically generate a dialog. */
export declare abstract class DialogBaseService<T extends DialogContainer<any>> {
    abstract open<D>(content: unknown, config: DialogConfigBase<D>): DialogRefBase<D>;
    /** @hidden Collection of existing dialog references */
    protected _dialogs: ComponentRef<T>[];
    /** @hidden */
    protected _destroyRef: DestroyRef;
    /**
     * Status of the dialog service.
     * Returns true if there are open dialogs, false otherwise.
     */
    hasOpenDialogs(): boolean;
    /** Dismisses all currently open dialogs. */
    dismissAll(reason?: any): void;
    /** @hidden Extends configuration using default values*/
    protected _applyDefaultConfig(config: DialogConfig, defaultConfig: DialogConfig): DialogConfig;
    /** @hidden Destroy existing dialog */
    protected _destroyDialog(dialog: ComponentRef<T>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DialogBaseService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DialogBaseService<any>>;
}
