import { IHinkal } from '../../../data-structures/Hinkal/IHinkal';
import { createTronCallData } from '../../utils/tron.utils';
import { CircomDataType, DimDataType } from '../../../types/circom-data.types';
import { NewZkCallDataType } from '../../../types/snark.types';
import { ERC20Token } from '../../../types/token.types';
import { Types as TronWebTypes } from 'tronweb';
export declare const transactCallDirectTron: (hinkal: IHinkal, chainId: number, amount: bigint | bigint[], tokenToApprove: ERC20Token | ERC20Token[], // in hex format
newZkCallData: NewZkCallDataType, circomData: CircomDataType, dimData: DimDataType, contractApproval?: TronWebTypes.ContractInstance<any>, // in base58 format
contractTransaction?: TronWebTypes.ContractInstance<any>, // in base58 format
preEstimateGas?: boolean) => Promise<string>;
/** Builds an unsigned Tron `transact` transaction (no approve/send). Used for PAL / deposit-and-withdraw prepare flows. */
export declare const buildTronUnsignedTransactTransaction: (hinkal: IHinkal, chainId: number, amount: bigint, token: ERC20Token, newZkCallData: NewZkCallDataType, circomData: CircomDataType, dimData: DimDataType, contractAddressHex: string, contractAbi: Parameters<typeof createTronCallData>[0]) => Promise<TronWebTypes.Transaction>;
