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;
    constructor(props: BaseNavigatorProps);
    /**
     * We resolve all screen components here
     * @param props
     */
    componentWillMount(): void;
    render(): JSX.Element | null;
    /**
     * Render each indivitual route
     * @param route
     * @param BB
     */
    protected renderRoute(route: RouteConfigWithResolveSubRoutes): JSX.Element;
    /**
     * Redirects to the initial route, if non is given redirects to the
     * first route in the routes array.
     * @param BB
     */
    protected renderInitialRoute(): JSX.Element | null;
    private getNavigationOptions;
}
