import { EventCallback } from '../event'; import { EndpointHandlers } from '../../types'; import { Logger } from '../../logger'; export interface InvokeRequest { methodName: string; context: { header?: { height: number; timestamp: number; aggregateCommit: { height: number; }; }; }; params?: Record; } export declare abstract class BaseChannel { readonly eventsList: ReadonlyArray; readonly endpointsList: ReadonlyArray; readonly namespace: string; protected readonly endpointHandlers: EndpointHandlers; protected readonly _logger: Logger; private _requestId; constructor(logger: Logger, namespace: string, events: ReadonlyArray, endpoints: EndpointHandlers); isValidEventName(name: string, throwError?: boolean): boolean | never; isValidActionName(name: string, throwError?: boolean): boolean | never; protected _getNextRequestId(): string; abstract subscribe(eventName: string, cb: EventCallback): void; abstract unsubscribe(eventName: string, cb: EventCallback): void; abstract publish(eventName: string, data?: Record): void; abstract invoke(req: InvokeRequest): Promise; abstract registerToBus(arg: unknown): Promise; abstract once(eventName: string, cb: EventCallback): void; }