import { SendTransactionRequest, SignDataPayload, SignDataResponse } from "@tonconnect/ui"; import { SenderArguments } from "@ton/core"; import { OmniWallet } from "../OmniWallet"; import { WalletType } from "../omni/config"; import { OmniConnector } from "../OmniConnector"; import { ReviewFee } from "../omni/bridge"; import { Token } from "../omni/token"; interface ProtocolWallet { sendTransaction?: (params: SendTransactionRequest) => Promise; signData?: (params: SignDataPayload) => Promise; account: { address: string; publicKey?: string; }; } declare class TonWallet extends OmniWallet { readonly connector: OmniConnector; readonly wallet: ProtocolWallet; readonly type = WalletType.TON; constructor(connector: OmniConnector, wallet: ProtocolWallet); get address(): string; get publicKey(): string; get omniAddress(): string; fetchBalances(): Promise>; fetchBalance(_: number, address: string): Promise; waitNextSeqno(seqno: number): Promise; waitTransactionByMessageHash(pending: { prevHash: string; seqno: number; timestamp: number; lt: bigint; }, attemps?: number): Promise; sendTransaction(msgs: SenderArguments[]): Promise; transferFee(): Promise; transfer(args: { token: Token; receiver: string; amount: bigint; comment?: string; gasFee?: ReviewFee; }): Promise; signIntentsWithAuth(domain: string, intents?: Record[]): Promise<{ signed: { standard: string; signature: string; public_key: string; address: string; timestamp: number; domain: string; payload: SignDataPayload; }; publicKey: string; chainId: WalletType; address: string; seed: string; }>; signIntents(intents: Record[], options?: { deadline?: number; nonce?: Uint8Array; }): Promise<{ standard: string; signature: string; public_key: string; address: string; timestamp: number; domain: string; payload: SignDataPayload; }>; } export default TonWallet;