import { PreloadingStrategy, Route, Router } from '@angular/router';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * Data to inject to the route parameter to specify preloading strategy
 */
export interface O3rOnDemandPreloadingData {
    /** List of page reached that trigger preloading */
    preloadOn: string[] | '*' | RegExp;
}
/**
 * Check if the route has preload instructions
 * @param  data Route data
 */
export declare function hasPreloadingOnDemand(data: any): data is O3rOnDemandPreloadingData;
/**
 * Otter Preloading strategy base on previous route
 * @inheritDoc
 */
export declare class O3rOnNavigationPreloadingStrategy implements PreloadingStrategy {
    private readonly router;
    constructor(router: Router);
    /**
     * Check if the module should be preloaded based on the data preload array of routes or regex value
     * @param data Route data
     * @param url URL of current page
     */
    private isUrlMatchingPreloadConfig;
    /** @inheritDoc */
    preload(route: Route, preload: () => Observable<any>): Observable<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<O3rOnNavigationPreloadingStrategy, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<O3rOnNavigationPreloadingStrategy>;
}
//# sourceMappingURL=on-navigation-strategy.preloader.d.ts.map