import * as Types from '../common/Types';
import { Navigator as BaseNavigator, NavigatorDelegateSelector as DelegateSelector, NavigatorState, NavigatorProps, NavigatorRoute } from '../common/Types';
import NavigatorExperimentalDelegate from './NavigatorExperimentalDelegate';
export declare class DefaultDelegateSelector implements DelegateSelector {
    getNavigatorDelegate(navigator: BaseNavigator<NavigatorState>): NavigatorExperimentalDelegate;
}
export declare class NavigatorImpl extends BaseNavigator<NavigatorState> {
    private _delegate;
    private _commandQueue;
    constructor(initialProps: NavigatorProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(): void;
    protected getRoutes(): NavigatorRoute[];
    push(route: NavigatorRoute): void;
    pop(): void;
    replace(route: NavigatorRoute): void;
    replacePrevious(route: NavigatorRoute): void;
    replaceAtIndex(route: NavigatorRoute, index: number): void;
    immediatelyResetRouteStack(nextRouteStack: NavigatorRoute[]): void;
    popToRoute(route: NavigatorRoute): void;
    popToTop(): void;
    getCurrentRoutes(): NavigatorRoute[];
    render(): JSX.Element;
    private _enqueueCommand;
    private _processCommand;
}
export default NavigatorImpl;
export declare const Navigator: typeof NavigatorImpl;
export declare const NavigatorDelegateSelector: DefaultDelegateSelector;
export { Types };
