import { Worker, type ResourceLimits, type TransferListItem, type MessagePort } from "node:worker_threads";
import type { ConfigEnv } from "vite";
import { type Logger } from "vite";
import type { SerializedResolvedConfig, SerializedUserOptions } from "../types.js";
import type { Manifest } from "vite";
import type { OutputBundle } from "rollup";
export declare function shutdownAllWorkers(timeout?: number): Promise<void>;
type CreateWorkerSuccess = {
    type: "success";
    workerPath: string;
    reason?: never;
    error?: never;
    worker: Worker;
};
type CreateWorkerError = {
    type: "error";
    workerPath: string;
    error: Error | null;
    worker?: never;
    reason?: never;
};
type CreateWorkerSkip = {
    type: "skip";
    reason: string;
    workerPath: string;
    worker?: never;
    error?: never;
};
export type CreateWorkerReturn = CreateWorkerSuccess | CreateWorkerError | CreateWorkerSkip;
export type CreateWorkerOptions = {
    projectRoot?: string;
    currentCondition?: "react-server" | "react-client";
    nodePath?: string;
    nodeOptions?: string[];
    envPrefix?: string;
    mode?: "production" | "development" | "test";
    reverseCondition?: string;
    maxListeners?: number;
    workerPath?: string;
    resourceLimits?: ResourceLimits;
    typescript?: boolean;
    htmlChunkSize?: number;
    workerData: {
        userOptions?: SerializedUserOptions;
        resolvedConfig?: SerializedResolvedConfig;
        configEnv?: ConfigEnv;
        reactVersion?: string;
        id?: string;
        serverManifest?: Manifest;
        bundle?: OutputBundle;
        staticBundle?: OutputBundle;
        serverPipeableStreamOptions?: any;
        clientPipeableStreamOptions?: any;
        hmrPort?: MessagePort;
        runnerPort?: MessagePort;
    };
    transferList?: TransferListItem[];
    logger?: Logger;
    verbose?: boolean;
};
export type CreateWorkerFn = (options: CreateWorkerOptions) => Promise<CreateWorkerReturn>;
export declare const createWorker: CreateWorkerFn;
export {};
//# sourceMappingURL=createWorker.d.ts.map