import { generate } from './yuku.js';
import { type RouteExportResolver } from './route-export-resolution.js';
import { type RouteChunkCache, type RouteChunkConfig } from './route-chunks.js';
export type RouteTransformResult = {
    code: string;
    map?: ReturnType<typeof generate>['map'];
};
type BaseRouteTransformTask = {
    code: string;
    resourcePath: string;
};
export type RouteClientEntryTransformTask = BaseRouteTransformTask & {
    kind: 'routeClientEntry';
    environmentName?: string;
    isBuild: boolean;
    routeChunkConfig: RouteChunkConfig;
    routeId?: string;
    devHmr?: boolean;
};
export type RouteChunkTransformTask = BaseRouteTransformTask & {
    kind: 'routeChunk';
    resource: string;
    isBuild: boolean;
    routeChunkConfig: RouteChunkConfig;
};
export type SplitRouteExportsTransformTask = BaseRouteTransformTask & {
    kind: 'splitRouteExports';
    routeChunkConfig: RouteChunkConfig;
};
export type ClientOnlyStubTransformTask = BaseRouteTransformTask & {
    kind: 'clientOnlyStub';
    resolveExportAllModule?: RouteExportResolver;
};
export type RouteModuleTransformTask = BaseRouteTransformTask & {
    kind: 'routeModule';
    resource: string;
    environmentName: string;
    sourceMaps: boolean;
    ssr: boolean;
    isBuild: boolean;
    isSpaMode: boolean;
    rootRoutePath: string | null;
    devHmr?: boolean;
};
export type RouteTransformTask = RouteClientEntryTransformTask | RouteChunkTransformTask | SplitRouteExportsTransformTask | ClientOnlyStubTransformTask | RouteModuleTransformTask;
export type RouteTransformTaskOptions = {
    routeChunkCache?: RouteChunkCache;
};
export declare const executeRouteTransformTask: (task: RouteTransformTask, options?: RouteTransformTaskOptions) => Promise<RouteTransformResult>;
export {};
