import algosdk from "algosdk"; import { ethers } from "ethers"; import type { RawSignature, SignedMessage, UserAddress } from "../interfaces"; import { CHAIN_ID_ALGORAND, ChainId } from "../wormhole"; import type { SupportedChainId } from "../chains"; import { Connection, PublicKey, Transaction, VersionedTransaction } from "@solana/web3.js"; type MessageSignCallback = (data: Uint8Array) => Promise; type SignCallback = (txs: algosdk.Transaction[]) => Promise; type TealSignCallback = (data: Uint8Array, address: UserAddress, hash: string) => Promise; /** * Funder is a signer that can only sign transactions, it cannot sign messages and is used to refer the deposit wallet to be used for funding */ interface Funder { } /** * Owner is a signer that has the same functionality of the Funder but can also sign messages. */ interface Owner extends Funder { } declare abstract class MessageSigner implements Owner { readonly address: UserAddress; readonly chainId: ChainId; readonly msgSignCallback: MessageSignCallback; constructor(address: UserAddress, chainId: ChainId, msgSignCallback: MessageSignCallback); signMessage(message: Uint8Array): Promise; toString(): string; } declare class AlgorandSigner extends MessageSigner { private txSignCallback; readonly isArc001: boolean; constructor(address: UserAddress, txSignCallback: SignCallback, tealSignCallback: TealSignCallback, isArc001?: boolean); signTransactions(txs: algosdk.Transaction[]): Promise; } declare class EVMSigner extends MessageSigner { private signer; constructor(address: UserAddress, chainId: Exclude, signer: ethers.Signer); getSigner(): ethers.Signer; } type SolanaTransaction = Transaction | VersionedTransaction; type SolanaSignTxCallback = (tx: T) => Promise; declare class SolanaSigner extends MessageSigner { readonly signTransaction: SolanaSignTxCallback; readonly connection?: Connection | undefined; readonly publickey: PublicKey; constructor(address: UserAddress, signTransaction: SolanaSignTxCallback, signMessage: (messageToSign: Uint8Array) => Promise, connection?: Connection | undefined); } export type { MessageSignCallback, SignCallback, TealSignCallback, SolanaSignTxCallback, Owner, Funder, }; export { MessageSigner, AlgorandSigner, EVMSigner, SolanaSigner }; //# sourceMappingURL=MessageSigner.d.ts.map