import { type QuoteResponse } from "@defuse-protocol/one-click-sdk-typescript"; import { type OriginKey, type StableKey } from "./registry.js"; export type EvmDepositTx = { family: "evm"; to: string; value: "0x0"; data: string; }; export type TronDepositTx = { family: "tron"; contractAddress: string; function: "transfer(address,uint256)"; parameter: [string, string]; }; /** Unsigned NEP-141 `ft_transfer` call. `deposit` is the mandatory 1-yoctoNEAR security deposit. */ export type NearDepositTx = { family: "near"; receiverId: string; methodName: "ft_transfer"; args: { receiver_id: string; amount: string; }; gas: string; deposit: "1"; }; /** * Declarative SPL transfer. `owner` is the deposit account 1Click returned; the caller derives its * associated token account for `splMint` and moves `amount` from its own ATA (e.g. @solana/spl-token). */ export type SolanaDepositTx = { family: "solana"; splMint: string; owner: string; amount: string; }; /** Unsigned Aptos fungible-asset transfer entry-function call. `functionArguments` is [metadataObject, recipient, amount]. */ export type AptosDepositTx = { family: "aptos"; function: "0x1::primary_fungible_store::transfer"; typeArguments: string[]; functionArguments: [string, string, string]; }; export type DepositTx = EvmDepositTx | TronDepositTx | NearDepositTx | SolanaDepositTx | AptosDepositTx; /** Unsigned transfer of the quote's `amountIn` to its `depositAddress`. The caller signs and broadcasts. */ export declare function prepareDepositTx(origin: OriginKey, originAsset: StableKey, quote: QuoteResponse): DepositTx;