import { createStreamMetrics } from "../helpers/metrics.js";
import type { ClientRscStreamOptions, ServerRscStreamOptions, BaseRscStreamResult } from "./createRscStream.types.js";
import type { PassThrough } from "node:stream";
import { type Logger } from "vite";
/**
 * Validates common RSC stream options
 *
 * @param options - RSC stream options to validate
 * @param context - Context for error messages
 * @throws Error if validation fails
 */
export declare function validateRscStreamOptions(options: ClientRscStreamOptions | ServerRscStreamOptions, context: string): void;
/**
 * Creates common RSC stream result structure
 *
 * @param rscStream - The RSC stream
 * @param elements - React elements
 * @param pipe - Pipe function
 * @param abort - Abort function
 * @param metrics - Stream metrics
 * @returns Base RSC stream result
 */
export declare function createBaseRscStreamResult(rscStream: PassThrough, pipe: <Writable extends NodeJS.WritableStream>(destination: Writable) => Writable, abort: (reason?: unknown) => void, metrics: ReturnType<typeof createStreamMetrics>, id: string): BaseRscStreamResult;
/**
 * Handles RSC stream errors with consistent error handling
 *
 * @param error - The error that occurred
 * @param options - RSC stream options for context
 * @param context - Additional context for error handling
 * @throws Error if panic threshold is met
 */
export declare function handleRscStreamError(error: unknown, options: ClientRscStreamOptions | ServerRscStreamOptions, context: string): void;
/**
 * Creates stream metrics with common setup
 *
 * @param route - Route for logging context
 * @param verbose - Whether to enable verbose logging
 * @returns Stream metrics instance
 */
export declare function createRscStreamMetrics(): ReturnType<typeof createStreamMetrics>;
/**
 * Sets up common stream event handlers for metrics collection
 *
 * @param stream - The stream to monitor
 * @param metrics - Metrics to update
 * @param options - Configuration options
 * @returns Cleanup function
 */
export declare function setupRscStreamEventHandlers(stream: PassThrough, metrics: ReturnType<typeof createStreamMetrics>, options: {
    route: string;
    verbose?: boolean;
    logger?: Logger;
}): () => void;
//# sourceMappingURL=createRscStream.utils.d.ts.map