import { ExtractSuccessResponseMessage, SuccessResponseMessage, TransactionsHandlers, UnknownRequestMessage, UnknownResponseMessage, UnknownTransaction } from "./types.cjs";
import { ChannelNetwork, ChannelNetworkOptions, PostRequestOptions } from "./ChannelNetwork.cjs";

//#region src/channel/ChannelReceiver.d.ts
type ChannelReceiverOptions = {
  readyTimeout: number;
};
type AllChannelReceiverOptions = ChannelReceiverOptions & ChannelNetworkOptions;
declare abstract class ChannelReceiver<TEmitterTransactions extends Record<string, UnknownTransaction> = Record<string, never>, TOptions extends Record<string, unknown> = Record<string, unknown>> extends ChannelNetwork<TEmitterTransactions, ChannelReceiverOptions & TOptions> {
  private _ready;
  constructor(requestHandlers: TransactionsHandlers<TEmitterTransactions>, options: Partial<AllChannelReceiverOptions> & TOptions);
  /** Tells the emitter that receiver is ready */
  ready(): Promise<SuccessResponseMessage>;
  /** Handles public messages */
  private _onPublicMessage;
  protected postFormattedRequest<TRequest extends UnknownRequestMessage, TResponse extends UnknownResponseMessage>(type: TRequest["type"], data?: TRequest["data"], options?: PostRequestOptions): Promise<ExtractSuccessResponseMessage<TResponse>>;
}
//#endregion
export { AllChannelReceiverOptions, ChannelReceiver };
//# sourceMappingURL=ChannelReceiver.d.cts.map