// Copyright © 2020 Metabolist. All rights reserved. import Combine import Foundation public protocol CollectionViewModel { var updates: AnyPublisher { get } var title: AnyPublisher { get } var expandAll: AnyPublisher { get } var alertItems: AnyPublisher { get } var loading: AnyPublisher { get } var events: AnyPublisher { get } var shouldAdjustContentInset: Bool { get } var nextPageMaxId: String? { get } func request(maxId: String?, minId: String?) func viewedAtTop(indexPath: IndexPath) func select(indexPath: IndexPath) func canSelect(indexPath: IndexPath) -> Bool func viewModel(indexPath: IndexPath) -> CollectionItemViewModel func toggleExpandAll() }