stable class ly.david.musicsearch.shared.feature.details.area.AreaPresenter {
  unstable val repository: AreaRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.artist.ArtistPresenter {
  unstable val repository: ArtistRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.event.EventPresenter {
  unstable val repository: EventRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.genre.GenrePresenter {
  stable val screen: DetailsScreen
  stable val navigator: Navigator
  unstable val repository: GenreRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  unstable val logger: Logger
  unstable val getMusicBrainzUrl: GetMusicBrainzUrl
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.genre.GenreUiState {
  stable val title: String
  runtime val genre: GenreListItemModel?
  runtime val handledException: HandledException?
  stable val url: String
  stable val eventSink: Function1<GenreUiEvent, Unit>
}
stable class ly.david.musicsearch.shared.feature.details.genre.GenreUiEvent.NavigateUp {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.genre.GenreUiEvent.ForceRefresh {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.instrument.InstrumentPresenter {
  unstable val repository: InstrumentRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.label.LabelPresenter {
  unstable val repository: LabelRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.place.PlacePresenter {
  unstable val repository: PlaceRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.recording.RecordingPresenter {
  unstable val repository: RecordingRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.release.ReleasePresenter {
  unstable val repository: ReleaseRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.releasegroup.ReleaseGroupPresenter {
  unstable val repository: ReleaseGroupRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.series.SeriesPresenter {
  unstable val repository: SeriesRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsPresenter {
  stable val screen: DetailsScreen
  stable val navigator: Navigator
  unstable val incrementLookupHistory: IncrementLookupHistory
  stable val allEntitiesListPresenter: AllEntitiesListPresenter
  unstable val imageMetadataRepository: ImageMetadataRepository
  unstable val logger: Logger
  stable val musicBrainzLoginPresenter: MusicBrainzLoginPresenter
  unstable val getMusicBrainzUrl: GetMusicBrainzUrl
  unstable val wikimediaRepository: WikimediaRepository
  unstable val collectionRepository: CollectionRepository
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiState {
  runtime val browseMethod: ByEntity
  stable val subtitle: String
  stable val tabs: ImmutableList<Tab>
  stable val selectedTab: Tab
  stable val url: String
  runtime val detailsModel: DetailsModel?
  stable val collected: Boolean
  stable val snackbarMessage: String?
  stable val topAppBarFilterState: TopAppBarFilterState
  stable val selectionState: SelectionState
  runtime val detailsTabUiState: DetailsTabUiState
  stable val allEntitiesListUiState: AllEntitiesListUiState
  stable val musicBrainzLoginUiState: MusicBrainzLoginUiState
  stable val eventSink: Function1<DetailsUiEvent, Unit>
  <runtime stability> = Stable
}
runtime class ly.david.musicsearch.shared.feature.details.utils.DetailsTabUiState {
  stable val isLoading: Boolean
  runtime val handledException: HandledException?
  stable val numberOfImages: Int?
  stable val lazyListState: LazyListState
  stable val isReleaseEventsCollapsed: Boolean
  stable val isExternalLinksCollapsed: Boolean
  stable val isAliasesCollapsed: Boolean
  stable val now: Instant
  stable val totalUrls: Int
  stable val totalAliases: Int
  <runtime stability> = Runtime(HandledException)
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.NavigateUp {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ForceRefreshDetails {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.UpdateTab {
  stable val tab: Tab
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ToggleSelectItem {
  stable val collectableId: String
  stable val loadedCount: Int
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ToggleSelectAllItems {
  unstable val collectableIds: List<String>
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ClickItem {
  stable val entityType: MusicBrainzEntityType
  stable val id: String
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.GoToScreen {
  stable val screen: Screen
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ClickImage {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.NavigateToCollaboratorsGraph {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ToggleCollapseExpandExternalLinks {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ToggleCollapseExpandReleaseEvents {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.utils.DetailsUiEvent.ToggleCollapseExpandAliases {
  <runtime stability> = Stable
}
stable class ly.david.musicsearch.shared.feature.details.work.WorkPresenter {
  unstable val repository: WorkRepository
  unstable val incrementLookupHistory: IncrementLookupHistory
  <runtime stability> = Stable
}
