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

interface IBridgeIntentExecutor {
    function validateBridge(
        bytes32 bridgeType,
        bytes calldata bridgeData,
        address token,
        uint256 amount,
        address recipient
    ) external view returns (bool ok, string memory reason);

    function executeBridge(
        bytes32 bridgeType,
        bytes calldata bridgeData,
        address token,
        uint256 amount,
        address recipient
    ) external payable returns (bytes32 referenceId);
}
