import { ComponentType } from '@angular/cdk/portal';
import { TemplateRef } from '@angular/core';
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
import { BehaviorSubject, Observable } from 'rxjs';
import { DejaPopupAdvancedComponent } from '../component/popup-advanced/popup-advanced.component';
import { DejaPopupAction } from '../model/popup-action.model';
import { DejaPopupBase } from '../model/popup-base.class';
import { DejaPopupConfig } from '../model/popup-config.model';
import { DejaPopupReponse } from '../model/popup-response.model';
import * as i0 from "@angular/core";
export declare class DejaPopupService extends MatDialog {
    defaultActionComponent: ComponentType<unknown>;
    get openDialogs(): MatDialogRef<DejaPopupBase>[];
    private _dialogCom$;
    get dejaPopupCom$(): BehaviorSubject<DejaPopupAction>;
    /**
     * Displays a modal dialog, with the given buttons.
     * @param title
     * @param message
     * @param buttons types de DpiButton
     * @param customComponent Custom Component that must extend DpiDialogComponent.
     * @param data Données que l'on peux passer au Dialog
     * @return La réponse du dialog sous forme d'un Observable
     */
    openInline(title: string, content: string, buttons: DejaPopupAction[], config?: DejaPopupConfig<unknown>): Observable<DejaPopupReponse>;
    openCustom(customComponent: ComponentType<DejaPopupBase> | TemplateRef<DejaPopupBase>, config?: DejaPopupConfig<unknown>): Observable<DejaPopupReponse>;
    openUrl(url: string, config?: DejaPopupConfig<unknown>): Observable<DejaPopupReponse>;
    openAdvanced(config?: DejaPopupConfig<unknown>): MatDialogRef<DejaPopupAdvancedComponent>;
    openAdvanced$(config?: DejaPopupConfig<unknown>): Observable<DejaPopupReponse>;
    openPopUp(config?: DejaPopupConfig<unknown>): Observable<DejaPopupReponse>;
    /**
      * Opens a modal dialog containing the given component.
      * @param componentOrTemplateRef Type of the component to load into the dialog,
      *     or a TemplateRef to instantiate as the dialog content.
      * @param config Extra configuration options.
      * @returns Reference to the newly-opened dialog.
      */
    open<T, DataType = unknown, ResultType = unknown>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config: DejaPopupConfig<DataType>): MatDialogRef<T, ResultType>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DejaPopupService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DejaPopupService>;
}
