abstract class Client {
public abstract init(): Promise<void>;
public abstract request(params: RequestParams, topic: string): Promise<{ uri, id }>;
public abstract respond(params: RespondParams, iss: string): Promise<boolean>;
public abstract getPendingRequests(): Promise<Record<number, PendingRequest>>;
public abstract formatMessage(payload: PayloadParams, iss: string): Promise<string>;
public abstract on("auth_response", (response: Response) => {}): void;
public abstract on("auth_request", (id: number, pairingTopic: String, payload: PayloadParams, verifyContext: VerifyContext) => {}): void;
}