import { Path } from '@angular-devkit/core';
import { Tree } from '@angular-devkit/schematics';
/**
 * Interface used to create a new LF route.
 */
export interface NewLfRoute {
    /**
     * Route's path.
     */
    routePath: string;
    /**
     * Route's associated LF path.
     */
    storagePath: string;
    /**
     * Name of the component to route to.
     */
    componentTsName?: string;
    /**
     * File path of the component to route to.
     */
    componentFilePath?: Path;
    /**
     * When redirecting, route path to which to redirect to.
     */
    redirectTo?: string;
    /**
     * Used to set the `pathMatch` route attribute.
     */
    pathMatch?: string;
}
/**
 * Information about an LF route.
 */
export interface LfRouteInfo {
    /**
     * Route.
     */
    route?: string;
    /**
     * Route parameters.
     */
    params: string[];
}
/**
 * Changes the usage of `Routes` in a given routing module to `LfRoutes`.
 * @param host Source tree.
 * @param modulePath Path for the routing module on which to make the change.
 */
export declare function changeRoutesToLfRoutes(host: Tree, modulePath: Path): void;
/**
 * Adds a new LF route to the router module.
 * @param host Source tree.
 * @param modulePath Path for the routing module on which to add the route.
 * @param route Route to create.
 */
export declare function addLfRoute(host: Tree, modulePath: Path, { routePath, storagePath, componentTsName, componentFilePath, redirectTo, pathMatch, }: NewLfRoute): void;
/**
 * Returns whether the routing module at the given path has routes.
 * @param host Source tree.
 * @param modulePath Path for the routing module.
 * @returns Whether the module has any routes.
 */
export declare function hasRoutes(host: Tree, modulePath: Path): boolean;
/**
 * Gets the route information of the route associated with the given storage
 * path.
 * @param host Source tree.
 * @param modulePath Path for the routing module.
 * @param storagePath Storage path for which to fetch matching route.
 * @returns Information about the route matching the provided storage path or
 * `undefined` when no match was found.
 */
export declare function getLfRouteInfo(host: Tree, modulePath: Path, storagePath: string): LfRouteInfo | undefined;
/**
 * Whether a given route matches with a given storage path.
 * @param routePrefix Part of the route before the provided route.
 * @param routePath Route.
 * @param storagePath Storage path.
 * @returns Whether the route matches with a given storage path.
 */
export declare function routeMatchesStoragePath(routePrefix: string, routePath: string, storagePath: string): boolean;
