import { RequestArgs, UnknownRpcTypes } from '@canton-network/core-types'; export type EventListener = (...args: T[]) => void; /** * The Provider interface is generic over a type `T` that defines a mapping between supported methods * and their corresponding request and response types. The request method takes an argument of type RequestArgs, * where `M` is a key of `T` representing the method being called. * * The type of the params body for a method `M` is derived from T[M]['params'] * The type of the result of calling a method `M` is derived from T[M]['result'] */ export interface Provider { request(args: RequestArgs): Promise; on(event: string, listener: EventListener): Provider; emit(event: string, ...args: E[]): boolean; removeListener(event: string, listenerToRemove: EventListener): Provider; } /** * An abstract base class for Providers that implements the event handling logic. It maintains a mapping of event names to arrays of listeners and provides methods to register, emit, and remove listeners. The request method is left abstract for subclasses to implement according to their specific RPC transport mechanism. */ export declare abstract class AbstractProvider implements Provider { listeners: { [event: string]: EventListener[]; }; constructor(); abstract request(args: RequestArgs): Promise; on(event: string, listener: EventListener): Provider; emit(event: string, ...args: E[]): boolean; removeListener(event: string, listenerToRemove: EventListener): Provider; } //# sourceMappingURL=index.d.ts.map