// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface IM00MainnetBridgeFacet { struct BridgeConfig { address chain138BatchEmitter; address chain138Mirror; address mainnetCheckpoint; address mainnetMirror; address mainnetTether; address rwaTokenFactory; address rwaTokenRegistry; } event MainnetBridgeWired(BridgeConfig config); event BatchCommittedOnHub(uint64 indexed batchId, bytes32 paymentsRoot, uint256 checkpointBlock); event OutboundMirrorScheduled(bytes32 indexed txHash, uint256 blockNumber); event InboundCheckpointAck(uint64 indexed batchId, bytes32 paymentsRoot); function wireMainnetBridge(BridgeConfig calldata cfg) external; function getMainnetBridgeConfig() external view returns (BridgeConfig memory); function commitBatchOn138( uint64 batchId, bytes32 paymentsRoot, uint256 checkpointBlock, uint256 startBlock, uint16 txCount, bytes32[] calldata txHashes ) external; function sendBatchToMainnet(uint64 batchId, bytes calldata encodedCheckpointPayload, uint256 linkFee) external returns (bytes32 ccipMessageId); function scheduleMirrorToMainnet( bytes32 txHash, address from, address to, uint256 value, uint256 blockNumber, uint256 blockTimestamp, uint256 gasUsed, bool success, bytes calldata data ) external; function ackInboundCheckpoint(uint64 batchId, bytes32 paymentsRoot) external; }