import { Transform } from 'node:stream';
import type { IncomingMessage, OutgoingHttpHeaders } from 'node:http';
import type { Broadcastable } from './types/main.js';
interface Message {
    data: Broadcastable;
}
interface WriteHeaders {
    writeHead?(statusCode: number, headers?: OutgoingHttpHeaders): WriteHeaders;
    flushHeaders?(): void;
}
export type HeaderStream = NodeJS.WritableStream & WriteHeaders;
export declare class Stream extends Transform {
    #private;
    constructor(uid: string, request?: IncomingMessage);
    getUid(): string;
    pipe<T extends HeaderStream>(destination: T, options?: {
        end?: boolean;
    }, injectResponseHeaders?: Record<string, any>): T;
    _transform(message: Message, _encoding: string, callback: (error?: Error | null, data?: any) => void): void;
    writeMessage(message: Message, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean;
}
export {};
