import type { RsbuildPluginAPI } from '@rsbuild/core';
import type { RouteConfigEntry } from '@react-router/dev/routes';
import { type ReactRouterManifestForDev } from './manifest.js';
import type { RouteTransformExecutor } from './parallel-route-transforms.js';
import { type WatchFileConfig } from './route-watch.js';
import type { PluginOptions } from './types.js';
type RegisterReactRouterDevBackgroundResourcesOptions = {
    api: RsbuildPluginAPI;
    isBuild: boolean;
    lazyCompilationPrewarm: PluginOptions['unstableLazyCompilationPrewarm'];
    routeTransformExecutor: RouteTransformExecutor;
    routeRestartMarkerPath: string;
    watchDirectory: string;
    getRouteTopology: () => Promise<Set<string>>;
    initialRouteTopology: Set<string>;
    onRouteTopologyChange: PluginOptions['onRouteTopologyChange'];
};
type ReactRouterDevBackgroundResources = {
    setManifest(manifest: ReactRouterManifestForDev): void;
};
export declare const createReactRouterRouteTopology: ({ appDirectory, rootRouteFile, routeConfig, loadRouteConfig, getRootRoutePath, }: {
    appDirectory: string;
    rootRouteFile: string;
    routeConfig: RouteConfigEntry[];
    loadRouteConfig: () => Promise<RouteConfigEntry[]>;
    getRootRoutePath: () => string;
}) => {
    initialRouteTopology: Set<string>;
    getRouteTopology: () => Promise<Set<string>>;
};
export declare const createReactRouterRouteWatchFiles: ({ configWatchPaths, routeConfigWatchPaths, routeRestartMarkerPath, onRouteTopologyChange, }: {
    configWatchPaths: string | string[];
    routeConfigWatchPaths: string | string[];
    routeRestartMarkerPath: string;
    onRouteTopologyChange: PluginOptions["onRouteTopologyChange"];
}) => WatchFileConfig[];
export declare const registerReactRouterDevBackgroundResources: ({ api, isBuild, lazyCompilationPrewarm, routeTransformExecutor, routeRestartMarkerPath, watchDirectory, getRouteTopology, initialRouteTopology, onRouteTopologyChange, }: RegisterReactRouterDevBackgroundResourcesOptions) => ReactRouterDevBackgroundResources;
export {};
