// // Copyright 2025 Element Creations Ltd. // Copyright 2022-2025 New Vector Ltd. // // SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. // Please see LICENSE files in the repository root for full details. // import Combine import Foundation enum UserSessionCallback { case didReceiveAuthError(isSoftLogout: Bool) } struct SessionSecurityState: Equatable { let verificationState: SessionVerificationState let recoveryState: SecureBackupRecoveryState } // sourcery: AutoMockable protocol UserSessionProtocol { var clientProxy: ClientProxyProtocol { get } var mediaProvider: MediaProviderProtocol { get } var voiceMessageMediaManager: VoiceMessageMediaManagerProtocol { get } var liveLocationManager: LiveLocationManagerProtocol { get } var sessionSecurityStatePublisher: CurrentValuePublisher { get } var callbacks: PassthroughSubject { get } }