import type { Manifest, ViteDevServer, Logger, ResolvedConfig, ConfigEnv } from "vite";
import type { AutoDiscoveredFiles, CreateHandlerOptions, ResolvedUserOptions } from "../types.js";
import type { IncomingMessage, ServerResponse } from "http";
import type { MessageChannel, Worker } from "node:worker_threads";
import type { PassThrough } from "node:stream";
import type { RscChunkOutputMessage } from "../worker/rsc/types.js";
import type { MessageHandler } from "../types.js";
export type ConfigureRequestHandlerFn = (req: IncomingMessage, res: ServerResponse, worker: Worker, logger: ViteDevServer["config"]["logger"]) => Promise<void>;
/**
 * React Worker Server - configures worker-based rendering infrastructure
 * Similar to configureReactServer but for worker-based rendering
 */
export type CreateReactWorkerServerFn = (props: {
    server: ViteDevServer;
    autoDiscoveredFiles: AutoDiscoveredFiles;
    userOptions: ResolvedUserOptions;
    configEnv: ConfigEnv;
    hmrChannel?: MessageChannel;
    serverManifest: Manifest;
    resolvedConfig: ResolvedConfig;
    onWorkerCreated?: (worker: any, restart?: () => Promise<void>) => void;
}) => {
    sendHmrUpdate: (file: string, routes?: string[]) => void;
} | null;
export type HandleServerActionFn = (req: IncomingMessage, res: ServerResponse, server: ViteDevServer, handlerOptions: Pick<CreateHandlerOptions, "verbose" | "moduleBasePath" | "projectRoot" | "loader">) => Promise<void>;
export type ConfigureReactServerFn = (options: {
    server: ViteDevServer;
    autoDiscoveredFiles: AutoDiscoveredFiles;
    userOptions: ResolvedUserOptions;
    serverManifest: Manifest;
    resolvedConfig: ResolvedConfig;
    hmrChannel?: MessageChannel;
    onWorkerCreated?: (worker: Worker, restart?: () => Promise<void>) => void;
}) => void;
export type CleanupWorkerServerActionFn = (passThrough: PassThrough, worker: Worker, messageHandler: MessageHandler<RscChunkOutputMessage>, res: ServerResponse, error?: unknown, logger?: Logger) => void;
export type CleanupServerActionFn = (passThrough: PassThrough, worker: Worker, messageHandler: MessageHandler<RscChunkOutputMessage>, res: ServerResponse, error?: unknown, logger?: Logger) => void;
//# sourceMappingURL=types.d.ts.map