import { OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Subject, Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * Places a navigation lock on this page.
 *
 * Don't forget to add the following to your route:
 *
 * ```ts
 * canDeactivate: [BsNavigationLockGuard]
 * ```
 *
 * and implement the `BsHasNavigationLock` on the page:
 *
 * ```ts
 * ViewChild('navigationLock') navigationLock!: BsNavigationLockDirective;
 * ```
 *
 **/
export declare class BsNavigationLockDirective implements OnDestroy {
    private router;
    private route;
    constructor(router: Router, route: ActivatedRoute);
    canExit?: boolean | (() => boolean) | Observable<boolean>;
    exitMessage?: string;
    requestCanExit(): Promise<boolean>;
    onBeforeUnload(ev: BeforeUnloadEvent): Promise<string | undefined>;
    onUnload(ev: Event): void;
    ngOnDestroy(): void;
    destroyed$: Subject<unknown>;
    static ɵfac: i0.ɵɵFactoryDeclaration<BsNavigationLockDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BsNavigationLockDirective, "[bsNavigationLock]", ["bsNavigationLock"], { "canExit": "canExit"; "exitMessage": "exitMessage"; }, {}, never, never, false, never>;
}
