import { IframeCommunicator } from "@meteor-web3/communicator";
import { WALLET } from "./constants";
import { PROVIDER, SIGNER, WalletBaseInfo, WalletMethods } from "./types";
export declare class ExternalWallet implements WalletBaseInfo, WalletMethods {
    wallet: WALLET;
    provider?: PROVIDER;
    signer?: SIGNER;
    address?: string;
    namespace?: string;
    reference?: string;
    communicator: IframeCommunicator;
    constructor();
    getExternalProvider(): {
        request: ({ method, params }: {
            method: string;
            params?: any[] | undefined;
        }) => Promise<unknown>;
    };
    connect(): Promise<Required<Omit<WalletBaseInfo, "userInfo">>>;
    requestPermissions(): Promise<string[]>;
    switchNetwork(chainId: number): Promise<void>;
    ethereumRequest({ method, params }: {
        method: string;
        params: any;
    }): Promise<any>;
    chainChanged(): void;
    accountsChanged(): void;
}
