import { Address } from 'viem'; import { ChainId } from './vault-config.js'; import 'viem/chains'; import '../vaults/config.js'; /** * @fileoverview Functions for interacting with the Teller contract */ /** * Arguments required by the bridge contract for cross-chain transfers * @interface BridgeData * @property {number} chainSelector - Unique identifier for the destination chain * @property {Address} destinationChainReceiver - Address that will receive the bridged tokens * @property {Address} bridgeFeeToken - Token used to pay the bridge fee * @property {bigint} messageGas - Amount of gas allocated for the cross-chain message * @property {`0x${string}`} data - Additional data required for the bridge operation (hex encoded) */ type BridgeData = { chainSelector: number; destinationChainReceiver: Address; bridgeFeeToken: Address; messageGas: bigint; data: `0x${string}`; }; type GetPreviewFeeProps = { shareAmount: bigint; bridgeData: BridgeData; contractAddress: Address; chainId: ChainId; }; declare const getPreviewFee: ({ shareAmount, bridgeData, contractAddress, chainId, }: GetPreviewFeeProps) => Promise; export { type BridgeData, getPreviewFee };