import type { HydrationState, Router as RemixRouter } from "../router/router";
import type { AssetsManifest, FutureConfig as RemixFutureConfig } from "./ssr/entry";
import type { RouteModules } from "./ssr/routeModules";
export type WindowRemixContext = {
    basename?: string;
    state: HydrationState;
    criticalCss?: string;
    future: RemixFutureConfig;
    isSpaMode: boolean;
    stream: ReadableStream<Uint8Array> | undefined;
    streamController: ReadableStreamDefaultController<Uint8Array>;
    a?: number;
    dev?: {
        port?: number;
        hmrRuntime?: string;
    };
};
export interface ViewTransition {
    finished: Promise<void>;
    ready: Promise<void>;
    updateCallbackDone: Promise<void>;
    skipTransition(): void;
}
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 __remixHdrActive: boolean;
    var __remixClearCriticalCss: (() => void) | undefined;
    var $RefreshRuntime$: {
        performReactRefresh: () => void;
    } | undefined;
}
export {};
