import { Type } from '@angular/core';
import { ActivatedRouteSnapshot, Data, Params, Route, UrlSegment } from '@angular/router';
declare type ComponentType = Type<any> | string | null;
export declare const createRouteSnapshot: ({ url, data, params, queryParams, outlet, component, routeConfig, firstChild, parent }: {
    url?: UrlSegment[];
    data?: Data;
    params?: Params;
    queryParams?: Params;
    outlet?: string;
    component?: ComponentType;
    routeConfig?: RouteConfigStub;
    firstChild?: ActivatedRouteSnapshot;
    parent?: ActivatedRouteSnapshot;
}) => ActivatedRouteSnapshot;
export declare class ComponentStub {
}
interface RouteSnapshotStub {
    url: UrlSegment[];
    data: Data;
    params: Params;
    queryParams: Params;
    outlet: string;
    component: Type<any> | string | null;
    routeConfig: Route | null;
    firstChild: ActivatedRouteSnapshot;
    parent: ActivatedRouteSnapshot;
}
export declare class ActivatedRouteSnapshotStub extends ActivatedRouteSnapshot {
    url: UrlSegment[];
    data: Data;
    params: Params;
    queryParams: Params;
    outlet: string;
    component: Type<any> | string | null;
    readonly routeConfig: Route | null;
    get parent(): ActivatedRouteSnapshot | null;
    set parent(parent: ActivatedRouteSnapshot);
    get firstChild(): ActivatedRouteSnapshot | null;
    protected _parent: ActivatedRouteSnapshot;
    protected _firstChild: ActivatedRouteSnapshot;
    constructor(snapshot: RouteSnapshotStub);
    toString(): string;
}
export declare class RouteConfigStub implements Route {
    path: string;
    component: Type<any>;
    outlet: string;
    constructor(path: string, component: Type<any>, outlet: string);
}
export {};
