import { TypedDataSigner, Signer } from '@ethersproject/abstract-signer'; import { TransactionRequest } from '@ethersproject/providers'; import { TypedData } from '@lens-protocol/blockchain-bindings'; import { AnyTransactionRequestModel, InsufficientGasError, ISignedProtocolCall, IUnsignedProtocolCall, NativeTransaction, PendingSigningRequestError, ProtocolTransactionRequestModel, Signature, SignedFrameAction, UnsignedFrameAction, UnsignedTransaction, UserRejectedError, Wallet, WalletConnectionError } from '@lens-protocol/domain/entities'; import { AnyTransactionRequest } from '@lens-protocol/domain/use-cases/transactions'; import { ChainType, EvmAddress, PromiseResult } from '@lens-protocol/shared-kernel'; import { z } from 'zod'; import { ITransactionFactory } from "../../transactions/adapters/ITransactionFactory.js"; export type RequiredSigner = Signer & TypedDataSigner; export type CreateSignerConfig = { address: EvmAddress; chainType?: ChainType; }; export interface ISignerFactory { createSigner(config: CreateSignerConfig): PromiseResult; } export declare const WalletDataSchema: z.ZodObject<{ address: z.ZodString; }, "strip", z.ZodTypeAny, { address: string; }, { address: string; }>; export type WalletDataSchema = z.infer; export declare class UnsignedProtocolCall implements IUnsignedProtocolCall { readonly id: string; readonly request: T; readonly typedData: TypedData; private constructor(); get nonce(): number; static create({ id, request, typedData, }: { id: string; request: T; typedData: TypedData; }): UnsignedProtocolCall; } export declare class SignedProtocolCall implements ISignedProtocolCall { readonly id: string; readonly request: T; readonly signature: Signature; readonly nonce: number; private constructor(); static create({ unsignedCall, signature, }: { unsignedCall: UnsignedProtocolCall; signature: string; }): SignedProtocolCall; } export interface ITransactionRequest { get transactionRequest(): TransactionRequest; } export declare class ConcreteWallet extends Wallet { private readonly signerFactory; private readonly transactionFactory; private signingInProgress; private constructor(); signProtocolCall(unsignedCall: UnsignedProtocolCall): PromiseResult, PendingSigningRequestError | UserRejectedError | WalletConnectionError>; signFrameAction(unsignedAction: UnsignedFrameAction): PromiseResult, PendingSigningRequestError | UserRejectedError | WalletConnectionError>; signMessage(message: string): PromiseResult; sendTransaction(unsignedTransaction: UnsignedTransaction & ITransactionRequest): PromiseResult, InsufficientGasError | PendingSigningRequestError | UserRejectedError | WalletConnectionError>; toWalletData(): WalletDataSchema; static create(address: EvmAddress, signerFactory: ISignerFactory, transactionFactory: ITransactionFactory): ConcreteWallet; }