// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;
import "./IBCTypes.sol";
interface IIBCPacketHandler {
event SendPacket(
uint64 sequence,
string sourcePort,
string sourceChannel,
IbcCoreClientV1Height.IbcCoreClientV1HeightData timeoutHeight,
uint64 timeoutTimestamp,
bytes data
);
event RecvPacket(IbcCoreChannelV1Packet.IbcCoreChannelV1PacketData packet);
event WriteAcknowledgement(IbcCoreChannelV1Packet.IbcCoreChannelV1PacketData packet, bytes acknowledgement);
event AcknowledgePacket(IbcCoreChannelV1Packet.IbcCoreChannelV1PacketData packet, bytes acknowledgement);
event TimeoutPacket(IbcCoreChannelV1Packet.IbcCoreChannelV1PacketData packet);
function sendPacket(
string calldata sourceChannel,
IbcCoreClientV1Height.IbcCoreClientV1HeightData calldata timeoutHeight,
uint64 timeoutTimestamp,
bytes calldata data
) external returns (uint64);
}