import { ethers } from "ethers";
import { WALLET } from "./constants";
export type PROVIDER = ethers.providers.Web3Provider | ethers.providers.BaseProvider;
export type SIGNER = ethers.providers.JsonRpcSigner | ethers.Wallet;
export interface WalletBaseInfo {
    wallet?: WALLET;
    provider?: PROVIDER;
    signer?: SIGNER;
    address?: string;
    namespace?: string;
    reference?: string;
}
export interface WalletMethods {
    connect(domain?: string, preferredAuthType?: any): Promise<{
        provider: PROVIDER;
        signer: SIGNER;
        address: string;
        namespace: string;
        reference: string;
    }>;
    requestPermissions(domain?: string): Promise<string[]>;
    switchNetwork(chainId: number): void;
    ethereumRequest({ method, params, domain, }: {
        method: string;
        params: any;
        domain?: string;
    }): Promise<any>;
}
