import { NgZone, Compiler, Type, OnDestroy, ViewContainerRef, Injector } from '@angular/core';
import { DialogRef, ModalComponent, CloseGuard } from 'angular2-modal';
import { Modal, BSModalContext } from 'angular2-modal/plugins/bootstrap';
import { ToasterService } from "./ToasterService";
import { LocalizationService } from "./LocalizationService";
import * as IDialogService from '../../../models/IDialogService';
export declare class BaseDialogModel<T> extends BSModalContext {
    params: T;
    size: any;
    dialogClass: any;
    constructor(params: T, size: any, dialogClass: any);
}
export declare class BaseDialogComponent<T> implements OnDestroy, CloseGuard, ModalComponent<T> {
    dialog: DialogRef<T>;
    context: T;
    beforeDismiss?(): boolean | Promise<boolean>;
    beforeClose?(): boolean | Promise<boolean>;
    constructor(dialog: DialogRef<T>);
    close: () => void;
    ngOnDestroy(): void;
}
export declare class DialogService {
    private modal;
    private toasterService;
    private localizationService;
    private compiler;
    private ngZone;
    protected injector: Injector;
    constructor(modal: Modal, toasterService: ToasterService, localizationService: LocalizationService, compiler: Compiler, ngZone: NgZone, injector: Injector);
    onConfirmationDialog: (title: string, body: string, viewContainerRef: ViewContainerRef, okCallback?: () => void, cancelCallback?: () => void) => void;
    onCustomDialog: (title: string, body: string, buttons: IDialogService.IDialogButton[], viewContainerRef: ViewContainerRef, dialogSize?: any) => void;
    openDialog: (componentType: Type<any>, params: any, viewContainerRef: ViewContainerRef, dialogSize?: string, dialogClass?: string, injector?: Injector, okCallback?: (result: any) => void, cancelCallback?: () => void) => Promise<any>;
    openDialogUseDynamicResource: (params: any, viewContainerRef: ViewContainerRef, useDynamicResource: IDialogService.IDynamicResource, dialogSize?: string, dialogClass?: string, injector?: Injector, okCallback?: (result: any) => void, cancelCallback?: () => void) => void;
    private showIndicator;
    private removeIndicator;
    blockUI: () => void;
    unblockUI: () => void;
}
