import { BlueBase } from '@bluebase/core';
import { NavigatorPropsWithResolvedRoutes, RouteConfigWithResolveSubRoutes } from '../../types';
import React from 'react';
export interface BaseNavigatorProps extends NavigatorPropsWithResolvedRoutes {
}
export interface BaseNavigatorState {
    routes: RouteConfigWithResolveSubRoutes[];
    RouteView?: React.ComponentType<any>;
}
/**
 * Base Navigator
 *
 * Contain functionality common to all Navigators
 */
export declare class BaseNavigator extends React.Component<BaseNavigatorProps> {
    static contextType: React.Context<BlueBase>;
    readonly state: BaseNavigatorState;
    /**
     * We resolve all screen components here
     * @param props
     */
    static getDerivedStateFromProps(props: BaseNavigatorProps): {
        routes: RouteConfigWithResolveSubRoutes[];
    };
    render(): JSX.Element | null;
    /**
     * Render each indivitual route
     * @param route
     * @param BB
     */
    protected renderRoute(route: RouteConfigWithResolveSubRoutes, BB: BlueBase): JSX.Element;
}
