import EventEmitter from 'eventemitter3';
import { PROVIDER_ALLIANCE } from '../types';
import { Account, DAPP_METHODS, initOptions } from '../types';
import { Storage } from '../utils/storage';
export type AbstractAdapterOptions = {
    protocol: PROVIDER_ALLIANCE;
};
export declare enum UxuyInternalEventNames {
    Connected = "uxuyConnected",
    Disconnected = "uxuyDisconnected",
    AccountChanged = "uxuyAccountChanged",
    BridgeError = "uxuyBridgeError"
}
export declare enum EventNames {
    Connect = "connect",
    Disconnect = "disconnect",
    AccountChanged = "accountChanged",
    AccountsChanged = "accountsChanged"
}
interface RequestOptions {
    account?: Account;
    metaData?: initOptions["metaData"];
    timeStamp?: number;
    originPayload?: string;
}
export default class AbstractAdapter extends EventEmitter {
    protected storage: Storage;
    protected protocol: PROVIDER_ALLIANCE;
    protected httpBridge: import("../bridge").HttpBridge;
    protected connect_direct_link?: string;
    protected defaultAccount?: Account;
    protected metaData?: initOptions["metaData"];
    protected internalEvent: EventEmitter<string | symbol, any>;
    constructor({ protocol }: AbstractAdapterOptions);
    get _account(): Account | undefined;
    set _account(account: Account | undefined);
    get _accounts(): {
        [key: string]: Account;
    } | undefined;
    set _accounts(accounts: {
        [key: string]: Account;
    } | undefined);
    listenDisconnect(): void;
    disconnectLocal(): void;
    disconnect(): Promise<void>;
    dealUndoneRequest(): void;
    getAppInfo(): {
        id: string;
        version: string;
        name: string;
        homepage: string;
        logo: string;
        description: string;
        downloadLinks: {
            android: string;
            googlePlay: string;
            ios: string;
            appleStore: string;
            testflight: string;
            telegram: string;
            browserExtension: {
                chrome: string;
                edge: string;
            };
        };
        deepLinks: {
            scheme: string;
            universallink: string;
            direct_link: string;
        };
    };
    filterAccounts(accounts: {
        [key: string]: Account;
    }, alliances?: PROVIDER_ALLIANCE[]): {
        [key: string]: Account;
    };
    storeAllAccounts(accounts: {
        [key: string]: Account;
    }): {
        [key: string]: Account;
    };
    deleteAllAccounts(): void;
    storeAccount(availableAccounts: {
        [key: string]: Account;
    }): void;
    protected isConnectMethod(method: DAPP_METHODS): method is DAPP_METHODS.DAPP_CONNECT_ACCOUNTS;
    protected isDisconnectMethod(method: DAPP_METHODS): method is DAPP_METHODS.DAPP_DISCONNECT;
    protected proxyResponse(reponsePayload: any): any;
    protected _request(method: DAPP_METHODS, params: any, requestOptions?: RequestOptions): Promise<unknown>;
}
export {};
