import App from '../app';
import React from 'react';
import type { ApplicationInterface } from '../applicationManager/application';
export interface RouterOptions {
    routes?: Record<string, RouteType>;
    basename?: string;
}
export interface RouteType extends ApplicationInterface {
}
export declare class RouterManager {
    routes: Record<string, RouteType>;
    options: RouterOptions;
    app: App;
    constructor(options: RouterOptions | undefined, app: App);
    init(): void;
    getRoutes(): Record<string, RouteType>;
    getBasename(): string | undefined;
    setBasename(basename: string): void;
    add(name: string, route: any): void;
    get(name: string): RouteType;
    has(name: string): boolean;
    remove(name: string): void;
    renderComponent(item: RouteType, children?: React.ReactNode): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
    getPageByRoute(route: string): ApplicationInterface | undefined;
    getRouterComponent({ fallback }: {
        fallback?: React.ReactNode;
    }): React.JSX.Element[];
}
