import type { Ethereum } from "@rarible/ethereum-provider"; import type { Fcl } from "@rarible/fcl-types"; import type { TezosProvider } from "@rarible/tezos-sdk"; import type { SolanaWalletProvider } from "@rarible/solana-wallet"; import type { AuthWithPrivateKey } from "@rarible/flow-sdk/build/types"; import type { ImxWallet } from "@rarible/immutable-wallet"; import type { AbstractWallet, UserSignature } from "./domain"; import { WalletType } from "./domain"; export declare class EthereumWallet implements AbstractWallet { readonly ethereum: T; readonly walletType = WalletType.ETHEREUM; constructor(ethereum: T); signPersonalMessage(message: string): Promise; } export declare class FlowWallet implements AbstractWallet { readonly fcl: Fcl; auth?: AuthWithPrivateKey; readonly walletType = WalletType.FLOW; constructor(fcl: Fcl, auth?: AuthWithPrivateKey); getAuth(): AuthWithPrivateKey; signPersonalMessage(message: string): Promise; } export interface TezosSignatureResult { signature: string; edpk: string; prefix: string; } export declare class TezosWallet implements AbstractWallet { readonly provider: TezosProvider; readonly walletType = WalletType.TEZOS; constructor(provider: TezosProvider); private sign; signPersonalMessage(message: string): Promise; } export declare class SolanaWallet implements AbstractWallet { readonly provider: SolanaWalletProvider; readonly walletType = WalletType.SOLANA; constructor(provider: SolanaWalletProvider); signPersonalMessage(message: string): Promise; } export declare class ImmutableXWallet implements AbstractWallet { wallet: ImxWallet; readonly walletType = WalletType.IMMUTABLEX; constructor(wallet: ImxWallet); signPersonalMessage(message: string): Promise; } export declare type BlockchainWallet = EthereumWallet | FlowWallet | TezosWallet | SolanaWallet | ImmutableXWallet; export declare type WalletByBlockchain = { "FLOW": FlowWallet; "ETHEREUM": EthereumWallet; "TEZOS": TezosWallet; "SOLANA": SolanaWallet; "IMMUTABLEX": ImmutableXWallet; }; export { WalletType };