// // ClientProxyProtocol.swift // ElementX // // Created by Stefan Ceriu on 26/05/2022. // Copyright © 2022 Element. All rights reserved. // import Foundation import MatrixRustSDK import Combine enum ClientProxyCallback { case updatedRoomsList } enum ClientProxyError: Error { case failedRetrievingAvatarURL case failedRetrievingDisplayName } protocol ClientProxyProtocol { var callbacks: PassthroughSubject { get } var userIdentifier: String { get } var rooms: [RoomProxy] { get } func loadUserDisplayName() async -> Result func loadUserAvatarURLString() async -> Result func mediaSourceForURLString(_ urlString: String) -> MatrixRustSDK.MediaSource func loadMediaContentForSource(_ source: MatrixRustSDK.MediaSource) throws -> Data }