import { FormGroup } from '@angular/forms';
import { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { ConfirmationDialogOptions } from '../dialog/confirmation-dialog/confirmation-dialog.component';
import * as i0 from "@angular/core";
export interface CanComponentDeactivate {
    canDeactivate: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => Observable<boolean> | Promise<boolean> | boolean;
    confirmContinueEditingDialogOptions: (dirtyForm: FormGroup, allForms: FormGroup[]) => ConfirmationDialogOptions;
}
export declare class CanDeactivateGuard implements CanDeactivate<CanComponentDeactivate> {
    canDeactivate(component: CanComponentDeactivate, route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Promise<boolean> | Observable<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<CanDeactivateGuard, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CanDeactivateGuard>;
}
