// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/**
 * @title IZedxionTransport
 * @notice Transport layer for Chain 138 ↔ ZEDXION (83872) when CCIP is unavailable.
 * @dev Production implementations may wrap Zedx official bridge contracts
 *      (https://bridge.zedxion.com/) or GRU CWMultiTokenBridge L1/L2 on 83872.
 */
interface IZedxionTransport {
    event ZedxionBridgeInitiated(
        bytes32 indexed requestId,
        address indexed sender,
        address indexed token,
        uint256 amount,
        address recipient,
        uint256 destinationChainId
    );

    event ZedxionBridgeCompleted(bytes32 indexed requestId, bytes32 indexed destinationTxHash);

    function zedxionChainId() external view returns (uint256);

    function bridgeToZedxion(
        address token,
        uint256 amount,
        address recipientOn83872
    ) external payable returns (bytes32 requestId);

    function bridgeFromZedxion(
        address tokenOn83872,
        uint256 amount,
        address recipientOn138
    ) external payable returns (bytes32 requestId);
}
