import * as React from "react"; import type { UIMatch as UIMatchRR } from "@remix-run/router"; import type { FetcherWithComponents, FormProps, LinkProps, NavLinkProps } from "react-router-dom"; import { useFetcher as useFetcherRR } from "react-router-dom"; import type { SerializeFrom } from "@remix-run/server-runtime"; import type { AppData } from "./data"; import type { RemixContextObject } from "./entry"; import type { PrefetchPageDescriptor } from "./links"; import type { RouteHandle } from "./routeModules"; export declare const RemixContext: React.Context; export declare function useRemixContext(): RemixContextObject; /** * Defines the discovery behavior of the link: * * - "render": Eagerly discover when the link is rendered (default) * - "none": No eager discovery - discover when the link is clicked */ export type DiscoverBehavior = "render" | "none"; /** * Defines the prefetching behavior of the link: * * - "none": Never fetched * - "intent": Fetched when the user focuses or hovers the link * - "render": Fetched when the link is rendered * - "viewport": Fetched when the link is in the viewport */ type PrefetchBehavior = "intent" | "render" | "none" | "viewport"; export interface RemixLinkProps extends LinkProps { discover?: DiscoverBehavior; prefetch?: PrefetchBehavior; } export interface RemixNavLinkProps extends NavLinkProps { discover?: DiscoverBehavior; prefetch?: PrefetchBehavior; } /** * A special kind of `` that knows whether it is "active". * * @see https://remix.run/components/nav-link */ declare let NavLink: React.ForwardRefExoticComponent>; export { NavLink }; /** * This component renders an anchor tag and is the primary way the user will * navigate around your website. * * @see https://remix.run/components/link */ declare let Link: React.ForwardRefExoticComponent>; export { Link }; export interface RemixFormProps extends FormProps { discover?: DiscoverBehavior; } /** * This component renders a form tag and is the primary way the user will * submit information via your website. * * @see https://remix.run/components/form */ declare let Form: React.ForwardRefExoticComponent>; export { Form }; export declare function composeEventHandlers(theirHandler: ((event: EventType) => any) | undefined, ourHandler: (event: EventType) => any): (event: EventType) => any; /** * Renders the `` tags for the current routes. * * @see https://remix.run/components/links */ export declare function Links(): React.JSX.Element; /** * This component renders all the `` and * `` tags for all the assets (data, modules, css) of * a given page. * * @param props * @param props.page * @see https://remix.run/components/prefetch-page-links */ export declare function PrefetchPageLinks({ page, ...dataLinkProps }: PrefetchPageDescriptor): React.JSX.Element | null; /** * Renders HTML tags related to metadata for the current route. * * @see https://remix.run/components/meta */ export declare function Meta(): React.JSX.Element; export interface AwaitProps { children: React.ReactNode | ((value: Awaited) => React.ReactNode); errorElement?: React.ReactNode; resolve: Resolve; } export declare function Await(props: AwaitProps): React.JSX.Element; export type ScriptProps = Omit, "children" | "async" | "defer" | "src" | "type" | "noModule" | "dangerouslySetInnerHTML" | "suppressHydrationWarning">; /** * Renders the `