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

/**
 * @title IAlltraTransport
 * @notice Transport for 138 <-> ALL Mainnet (651940); does not use CCIP.
 * @dev ALL Mainnet is not supported by CCIP. This interface is used by AlltraAdapter
 *      to delegate the actual lock/relay/mint flow to a custom bridge or relay.
 */
interface IAlltraTransport {
    /**
     * @notice Lock tokens and initiate transfer to ALL Mainnet (651940).
     * @param token Token address (address(0) for native).
     * @param amount Amount to bridge.
     * @param recipient Recipient on ALL Mainnet.
     * @return requestId Unique request id for status/confirmation.
     */
    function lockAndRelay(
        address token,
        uint256 amount,
        address recipient
    ) external payable returns (bytes32 requestId);

    /**
     * @notice Check if this transport is configured (e.g. relayer set).
     */
    function isConfigured() external view returns (bool);
}
