///
import { Logger } from "pino";
import { EventEmitter } from "events";
import { IJsonRpcProvider } from "@walletconnect/jsonrpc-utils";
import { ICore, IMessageTracker, IPublisher, IRelayer, ISubscriber, RelayerOptions, RelayerTypes } from "@walletconnect/types";
export declare class Relayer extends IRelayer {
readonly protocol = "irn";
readonly version = 1;
core: ICore;
logger: Logger;
events: EventEmitter;
provider: IJsonRpcProvider;
messages: IMessageTracker;
subscriber: ISubscriber;
publisher: IPublisher;
name: string;
private initialized;
constructor(opts: RelayerOptions);
init(): Promise;
get context(): string;
get connected(): boolean;
get connecting(): boolean;
publish(topic: string, message: string, opts?: RelayerTypes.PublishOptions): Promise;
subscribe(topic: string, opts?: RelayerTypes.SubscribeOptions): Promise;
unsubscribe(topic: string, opts?: RelayerTypes.UnsubscribeOptions): Promise;
on(event: string, listener: any): void;
once(event: string, listener: any): void;
off(event: string, listener: any): void;
removeListener(event: string, listener: any): void;
private recordMessageEvent;
private shouldIgnoreMessageEvent;
private onProviderPayload;
private onMessageEvent;
private acknowledgePayload;
private registerEventListeners;
private isInitialized;
}
//# sourceMappingURL=relayer.d.ts.map