/**
* Browser client navigation �?same-app `` SPA takeover.
* Zero-JS still works via real ``; with JS, intercept same-origin
* `a[data-vmz-route]` clicks, pushState, fetch SSR HTML, swap page (retain layout
* when `data-vmz-layout` is unchanged) or full `#app`, then hydrate.
*/
/**
* fetchImpl?: typeof fetch,
* document?: Document,
* history?: History,
* location?: Location,
* hydrate?: (Ctor: any, root: Element, props: object) => Promise,
* hydrateRoute?: (Page: any, root: Element, props: object, layouts?: any[]) => Promise,
* hydrateRoutePage?: (Page: any, root: Element, props: object) => Promise,
* destroy?: (inst: object) => void,
* importPage?: (chunkId: string) => Promise,
* }} [opts]
*/
export declare function installClientNavigation(opts?: Record): {
ok: boolean;
reason: string;
transitionTo?: undefined;
transitionLocale?: undefined;
dispose?: undefined;
} | {
ok: boolean;
transitionTo: (url: any, { replace, fromPop, softFail }?: any) => Promise<{
ok: boolean;
reason: string;
href?: undefined;
chunkId?: undefined;
retainedLayout?: undefined;
scrollMode?: undefined;
focusTarget?: undefined;
localeId?: undefined;
} | {
ok: boolean;
href: string;
chunkId: any;
retainedLayout: boolean;
scrollMode: string;
focusTarget: any;
localeId: any;
reason?: undefined;
}>;
transitionLocale: (toLocale: any, opts?: any) => Promise<{
status: string;
fromLocale: any;
toLocale: any;
reason: string;
}>;
dispose(): void;
reason?: undefined;
};
export declare function extractAppHtml(html: any, doc: any): any;