/// <reference types="node" />
import React from 'react';
import Router, { NextRouter } from '../next-server/lib/router/router';
declare type SingletonRouterBase = {
    router: Router | null;
    readyCallbacks: Array<() => any>;
    ready(cb: () => any): void;
};
export { Router, NextRouter };
export declare type SingletonRouter = SingletonRouterBase & NextRouter;
declare const _default: SingletonRouter;
export default _default;
export { default as withRouter } from './with-router';
export declare function useRouter(): NextRouter;
export declare const createRouter: (pathname: string, query: import("querystring").ParsedUrlQuery, as: string, __3: {
    subscription: (data: {
        Component: React.ComponentType<{}>;
        props?: any;
        err?: Error | undefined;
        error?: any;
    }, App?: React.ComponentClass<{}, any> | React.FunctionComponent<{}> | undefined) => void;
    initialProps: any;
    pageLoader: any;
    Component: React.ComponentType<{}>;
    App: React.ComponentType<{}>;
    wrapApp: (App: React.ComponentType<{}>) => any;
    err?: Error | undefined;
}) => Router;
export declare function makePublicRouterInstance(router: Router): NextRouter;
