import { HttpResponse, StreamResponse } from './httpResponse'; export type RequestClientResponse = undefined | void | HttpResponse; export interface RequestClient { readonly supportsStreaming: boolean; getSessionId?(): string; reportMessage: string; nativeClient: T; connect(obj: T | undefined): Promise; send(body?: unknown): Promise; /** * called after onStreaming finished using this client */ streamEnded?(): void; disconnect(err?: Error): void; addEventListener(type: K, listener: (ev: RequestClientEvent) => void): void; removeEventListener(type: K, listener: (ev: RequestClientEvent) => void): void; triggerEnd(): void; } interface RequestClientEventMap { progress: number; message: [string, HttpResponse & StreamResponse]; metaData: [string, HttpResponse & StreamResponse]; disconnect: void; end: void; } export declare class RequestClientEvent extends Event { readonly detail: T; constructor(message: string, detail: T); } export declare abstract class AbstractRequestClient implements RequestClient { abstract readonly supportsStreaming: boolean; abstract disconnect(err?: Error): void; abstract nativeClient: T; abstract reportMessage: string; abstract connect(obj: T | undefined): Promise; abstract send(body?: unknown): Promise; private eventEmitter; addEventListener(type: K, listener: (evt: RequestClientEvent) => void): void; removeEventListener(type: K, listener: (evt: RequestClientEvent) => void): void; private isRequestClientEvent; protected onMessage(type: string, response: HttpResponse & StreamResponse): void; protected onProgress(percent: number): void; protected onMetaData(type: string, response: HttpResponse & StreamResponse): void; protected onDisconnect(): void; triggerEnd(): void; } export {};