import Foundation
import TigaseSwift

public protocol ChatViewItemProtocol: class {
    var id: Int { get }
    var account: BareJID { get }
    var jid: BareJID { get }
    var timestamp: Date { get }
    var state: MessageState { get }
    var encryption: MessageEncryption { get }
    var encryptionFingerprint: String? { get }

    func isMergeable(with item: ChatViewItemProtocol) -> Bool
    func copyText(withTimestamp: Bool, withSender: Bool) -> String?
}
