///
import { WardenRequestOptions } from "./request-manager";
import * as http from "http";
interface HttpResponse extends http.IncomingMessage {
body?: string | object | null | undefined;
}
type RequestCallback = (error: any, response: HttpResponse | undefined, body: string | object | null | undefined) => void;
interface RequestChunk {
id: number;
key: string;
requestOptions: WardenRequestOptions;
cb: RequestCallback;
}
interface ResponseChunk extends RequestChunk {
response?: HttpResponse | undefined;
error?: {
code: string;
};
}
type NextHandler = (chunk: ResponseChunk | RequestChunk) => void;
declare class Streamer {
readonly name: string;
nextStream?: Streamer;
previousStream?: Streamer;
constructor(name: string);
connect(wardenStream: Streamer): Streamer;
start(key: string, id: number, requestOptions: WardenRequestOptions, cb: RequestCallback): void;
respond(chunk: T): void;
request(chunk: T): void;
protected onRequest(chunk: RequestChunk, next?: NextHandler): void;
protected onResponse(chunk: ResponseChunk, next?: NextHandler): void;
private _onRequest;
private _onResponse;
}
export { HttpResponse, RequestCallback, NextHandler, Streamer, RequestChunk, ResponseChunk };