import * as React from "react"; import type { AgnosticIndexRouteObject, AgnosticNonIndexRouteObject, AgnosticRouteMatch, History, LazyRouteFunction, Location, Action as NavigationType, RelativeRoutingType, Router, StaticHandlerContext, To, TrackedPromise } from "@remix-run/router"; export interface IndexRouteObject { caseSensitive?: AgnosticIndexRouteObject["caseSensitive"]; path?: AgnosticIndexRouteObject["path"]; id?: AgnosticIndexRouteObject["id"]; loader?: AgnosticIndexRouteObject["loader"]; action?: AgnosticIndexRouteObject["action"]; hasErrorBoundary?: AgnosticIndexRouteObject["hasErrorBoundary"]; shouldRevalidate?: AgnosticIndexRouteObject["shouldRevalidate"]; handle?: AgnosticIndexRouteObject["handle"]; index: true; children?: undefined; element?: React.ReactNode | null; hydrateFallbackElement?: React.ReactNode | null; errorElement?: React.ReactNode | null; Component?: React.ComponentType | null; HydrateFallback?: React.ComponentType | null; ErrorBoundary?: React.ComponentType | null; lazy?: LazyRouteFunction; } export interface NonIndexRouteObject { caseSensitive?: AgnosticNonIndexRouteObject["caseSensitive"]; path?: AgnosticNonIndexRouteObject["path"]; id?: AgnosticNonIndexRouteObject["id"]; loader?: AgnosticNonIndexRouteObject["loader"]; action?: AgnosticNonIndexRouteObject["action"]; hasErrorBoundary?: AgnosticNonIndexRouteObject["hasErrorBoundary"]; shouldRevalidate?: AgnosticNonIndexRouteObject["shouldRevalidate"]; handle?: AgnosticNonIndexRouteObject["handle"]; index?: false; children?: RouteObject[]; element?: React.ReactNode | null; hydrateFallbackElement?: React.ReactNode | null; errorElement?: React.ReactNode | null; Component?: React.ComponentType | null; HydrateFallback?: React.ComponentType | null; ErrorBoundary?: React.ComponentType | null; lazy?: LazyRouteFunction; } export type RouteObject = IndexRouteObject | NonIndexRouteObject; export type DataRouteObject = RouteObject & { children?: DataRouteObject[]; id: string; }; export interface RouteMatch extends AgnosticRouteMatch { } export interface DataRouteMatch extends RouteMatch { } export interface DataRouterContextObject extends Omit { router: Router; staticContext?: StaticHandlerContext; } export declare const DataRouterContext: React.Context; export declare const DataRouterStateContext: React.Context; export declare const AwaitContext: React.Context; export interface NavigateOptions { replace?: boolean; state?: any; preventScrollReset?: boolean; relative?: RelativeRoutingType; unstable_flushSync?: boolean; unstable_viewTransition?: boolean; } /** * A Navigator is a "location changer"; it's how you get to different locations. * * Every history instance conforms to the Navigator interface, but the * distinction is useful primarily when it comes to the low-level `` API * where both the location and a navigator must be provided separately in order * to avoid "tearing" that may occur in a suspense-enabled app if the action * and/or location were to be read directly from the history instance. */ export interface Navigator { createHref: History["createHref"]; encodeLocation?: History["encodeLocation"]; go: History["go"]; push(to: To, state?: any, opts?: NavigateOptions): void; replace(to: To, state?: any, opts?: NavigateOptions): void; } interface NavigationContextObject { basename: string; navigator: Navigator; static: boolean; future: { v7_relativeSplatPath: boolean; }; } export declare const NavigationContext: React.Context; interface LocationContextObject { location: Location; navigationType: NavigationType; } export declare const LocationContext: React.Context; export interface RouteContextObject { outlet: React.ReactElement | null; matches: RouteMatch[]; isDataRoute: boolean; } export declare const RouteContext: React.Context; export declare const RouteErrorContext: React.Context; export {};