import type { PassThrough, Readable } from "node:stream";
import type { Logger } from "vite";
/**
 * Options for creating React elements from RSC streams
 */
export type CreateFromNodeStreamOptions<Env extends "client" | "server" = "client" | "server"> = Env extends "client" ? {
    children?: any;
    rscStream: PassThrough | Readable;
    moduleRootPath?: string;
    moduleBasePath?: string;
    moduleBaseURL?: string;
    logger?: Logger;
    verbose?: boolean;
} : {
    model: React.ReactElement;
    moduleBasePath?: string;
    logger?: Logger;
    verbose?: boolean;
};
/**
 * Result of creating React elements from RSC streams
 */
export interface FromNodeStreamResult {
    children: React.ReactElement;
}
/**
 * Function type for creating React elements from RSC streams
 */
export type CreateFromNodeStreamFn<Env extends "client" | "server" = "client" | "server"> = <Opt extends CreateFromNodeStreamOptions<Env> = CreateFromNodeStreamOptions<Env>>(options: Opt) => Env extends "client" ? FromNodeStreamResult & {
    type: "client";
} : FromNodeStreamResult & {
    type: "server";
};
export type CreateNodeStreamOptions = CreateFromNodeStreamOptions;
export type CreateNodeStreamResult = FromNodeStreamResult;
export type CreateNodeStreamFn<Env extends "client" | "server" = "client" | "server"> = CreateFromNodeStreamFn<Env>;
//# sourceMappingURL=createFromNodeStream.types.d.ts.map