import Foundation protocol NetworkServiceProtocol { func fetchSessions() async throws -> [RemoteSession] func syncSession(_ session: CelestiaSession) async throws -> RemoteSession func uploadAsset(sessionID: String, clientID: String, kind: String, fileURL: URL) async throws -> RemoteAsset func downloadAsset(sessionID: String, asset: RemoteAsset, destinationURL: URL) async throws func recordSyncCheckpoint() async throws }