import type { HydrationState, Router as RemixRouter } from "../router";
import type { ViewTransition } from "./lib";
import type { AssetsManifest, FutureConfig as RemixFutureConfig } from "./ssr/entry";
import type { RouteModules } from "./ssr/routeModules";
export type WindowRemixContext = {
    url: string;
    basename?: string;
    state: HydrationState;
    criticalCss?: string;
    future: RemixFutureConfig;
    isSpaMode: boolean;
    stream: ReadableStream<Uint8Array> | undefined;
    streamController: ReadableStreamDefaultController<Uint8Array>;
    streamAction?: ReadableStream<Uint8Array> | undefined;
    streamControllerAction?: ReadableStreamDefaultController<Uint8Array>;
    a?: number;
    dev?: {
        port?: number;
        hmrRuntime?: string;
    };
};
declare global {
    var __staticRouterHydrationData: HydrationState | undefined;
    var __reactRouterVersion: string;
    interface Document {
        startViewTransition(cb: () => Promise<void> | void): ViewTransition;
    }
    var __remixContext: WindowRemixContext | undefined;
    var __remixManifest: AssetsManifest | undefined;
    var __remixRouteModules: RouteModules | undefined;
    var __remixRouter: RemixRouter | undefined;
    var __remixRevalidation: number | undefined;
    var __remixClearCriticalCss: (() => void) | undefined;
    var $RefreshRuntime$: {
        performReactRefresh: () => void;
    } | undefined;
}
export {};
