package com.rosetta.messenger.network

/**
 * Infrastructure adapter contract used by repositories.
 *
 * Kept intentionally narrow and transport-oriented to avoid direct repository -> runtime wiring
 * while preserving lazy runtime resolution through Provider in DI.
 */
interface ProtocolClient {
    fun send(packet: Packet)
    fun sendMessageWithRetry(packet: PacketMessage)
    fun addLog(message: String)
    fun waitPacket(packetId: Int, callback: (Packet) -> Unit)
    fun unwaitPacket(packetId: Int, callback: (Packet) -> Unit)
}
