// // SessionVerificationControllerProxyProtocol.swift // ElementX // // Created by Stefan Ceriu on 07/06/2022. // Copyright © 2022 Element. All rights reserved. // import Combine import Foundation enum SessionVerificationControllerProxyError: Error { case failedRequestingVerification case failedApprovingVerification case failedDecliningVerification case failedCancellingVerification } enum SessionVerificationControllerProxyCallback { case receivedVerificationData([SessionVerificationEmoji]) case finished case cancelled case failed } struct SessionVerificationEmoji: Hashable { let symbol: String let description: String } protocol SessionVerificationControllerProxyProtocol { var callbacks: PassthroughSubject { get } var isVerified: Bool { get } func requestVerification() async -> Result func approveVerification() async -> Result func declineVerification() async -> Result func cancelVerification() async -> Result }