import { Injector, OnDestroy, TemplateRef } from '@angular/core';
import { ModalOptions } from 'ngx-bootstrap/modal';
import { BaseComponent, IDialog, IWidgetConfig } from '@wm/components/base';
import * as i0 from "@angular/core";
export declare abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {
    protected modalOptions: ModalOptions;
    name: string;
    private readonly dialogService;
    private readonly bsModal;
    private dialogRef;
    private dialogId;
    titleId: string;
    protected constructor(inj: Injector, config: IWidgetConfig, modalOptions: ModalOptions, explicitContext: any);
    /**
     * Opens the dialog
     * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback
     */
    open(initState?: any): void;
    /**
     * closes the dialog
     * invokes the on-close event callback
     */
    close(): void;
    /**
     * Register the dialog with the dialog service for programmatic access
     */
    protected register(scope: any): void;
    /**
     * De Register the dialog with the dialog service after dialog destruction
     */
    protected deRegister(scope: any): void;
    /**
     * subclasses of BaseDialog must implement this method to return the proper template element ref
     * bsModal will use this refence to open the dialog
     * @returns {TemplateRef<any>}
     */
    protected abstract getTemplateRef(): TemplateRef<any>;
    protected onPropertyChange(key: string, nv: any, ov?: any): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseDialog, [null, null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<BaseDialog>;
}
