/// <reference types="node" />
import { EventEmitter } from "events";
import { CHAIN, CommunityUser, Network, Option, RequestResponse, SignData, Transaction } from "./types";
export default class Community extends EventEmitter {
    private _endPoint;
    private _apiKey;
    private _apiSecret?;
    private MAX_COUNT;
    private _eventDrivenMode;
    private _es;
    private _esRequests;
    private _esRequestShowHex;
    constructor(option: Option);
    private _callApi;
    private _callHMACApi;
    signalPull(requestId: string): void;
    setEventDrivenMode(mode: boolean): void;
    registerEventListener(projectId: string, session: string): Promise<void>;
    private _pull;
    private _pullRequest;
    createUser(projectId: string, session: string, chain?: CHAIN): Promise<RequestResponse>;
    getUserInfo(projectId: string, session: string, chain?: CHAIN): Promise<CommunityUser | null>;
    getAddress(projectId: string, session: string, chain?: CHAIN): Promise<string | null>;
    getAddressWithPubkey(projectId: string, session: string, chain?: CHAIN): Promise<{
        address: string;
        pubkey: string;
    } | null>;
    submitTransaction(projectId: string, session: string, transaction: Transaction, showHex?: boolean): Promise<RequestResponse>;
    signTransaction(projectId: string, session: string, data: Transaction | SignData): Promise<RequestResponse>;
    signData(projectId: string, session: string, data: SignData): Promise<RequestResponse>;
    listNetworks(projectId: string, session: string): Promise<Network[] | null>;
    submitGenPasskeyOptRequest(projectId: string, session: string): Promise<RequestResponse>;
    submitAPITransaction(projectId: string, session: string, data: Transaction | SignData): Promise<RequestResponse>;
}
