import type { Deferred, Timeout } from "./util"; import type { MuxSubscription } from "./muxsubscription"; import type { Msg, Request, RequestManyOptions, RequestOptions } from "./core"; import { RequestError } from "./errors"; export declare class BaseRequest { token: string; received: number; ctx?: RequestError; requestSubject: string; mux: MuxSubscription; constructor(mux: MuxSubscription, requestSubject: string, asyncTraces?: boolean); } export interface RequestManyOptionsInternal extends RequestManyOptions { callback: (err: Error | null, msg: Msg | null) => void; } /** * Request expects multiple message response * the request ends when the timer expires, * an error arrives or an expected count of messages * arrives, end is signaled by a null message */ export declare class RequestMany extends BaseRequest implements Request { callback: (err: Error | null, msg: Msg | null) => void; done: Deferred; timer: number; max: number; opts: Partial; constructor(mux: MuxSubscription, requestSubject: string, opts?: Partial); cancel(err?: Error): void; resolver(err: Error | null, msg: Msg): void; } export declare class RequestOne extends BaseRequest implements Request { deferred: Deferred; timer: Timeout; constructor(mux: MuxSubscription, requestSubject: string, opts?: RequestOptions, asyncTraces?: boolean); resolver(err: Error | null, msg: Msg): void; cancel(err?: Error): void; }