import type { Preapproval } from './Preapproval'; import type { SuiClient, SuiTransactionBlockResponse } from '@mysten/sui.js/client'; import type { SuiSignPersonalMessageOutput, SuiSignTransactionBlockOutput, WalletAccount } from '@mysten/wallet-standard'; import { EthosSignMessageInput } from './EthosSignMessageInput'; import { EthosSignTransactionBlockInput } from './EthosSignTransactionBlockInput'; import { EthosSignAndExecuteTransactionBlockInput } from './EthosSignAndExecuteTransactionBlockInput'; import { EthosExecuteTransactionBlockInput } from './EthosExecuteTransactionBlockInput'; export declare enum SignerType { Extension = "extension", Hosted = "hosted" } export interface Signer { type: SignerType; name?: string; icon?: string; getAddress: () => Promise; accounts: readonly WalletAccount[]; currentAccount: WalletAccount | null; signAndExecuteTransactionBlock: (input: EthosSignAndExecuteTransactionBlockInput) => Promise; executeTransactionBlock: (input: EthosExecuteTransactionBlockInput) => Promise; signTransactionBlock: (input: EthosSignTransactionBlockInput) => Promise; requestPreapproval: (preApproval: Preapproval) => Promise; signPersonalMessage: (input: EthosSignMessageInput) => Promise; disconnect: () => void; client: SuiClient; } export interface ExtensionSigner extends Signer { type: SignerType.Extension; } export interface HostedSigner extends Signer { type: SignerType.Hosted; email?: string; logout: () => void; }