import 'package:meta/meta.dart'; /// The base class for managing trust in OMEMO sessions. // ignore: one_member_abstracts abstract class TrustManager { /// Return true when the device with id [deviceId] of Jid [jid] is trusted, i.e. if an /// encrypted message should be sent to this device. If not, return false. Future isTrusted(String jid, int deviceId); /// Called by the OmemoSessionManager when a new session has been built. Should set /// a default trust state to [jid]'s device with identifier [deviceId]. @internal Future onNewSession(String jid, int deviceId); /// Return true if the device with id [deviceId] of Jid [jid] should be used for encryption. /// If not, return false. Future isEnabled(String jid, int deviceId); /// Mark the device with id [deviceId] of Jid [jid] as enabled if [enabled] is true or as disabled /// if [enabled] is false. Future setEnabled(String jid, int deviceId, bool enabled); /// Removes all trust decisions for [jid]. @internal Future removeTrustDecisionsForJid(String jid); // ignore: comment_references /// Called from within the [OmemoManager]. /// Loads the trust data for the JID [jid] from persistent storage /// into the internal cache, if applicable. @internal Future loadTrustData(String jid); }