package Ġcom . m ire go . tri kot . view models . decl arative . view model Ċ Ċ import Ġcom . m ire go . tri kot . streams . reactive . Concrete Publisher Ċ import Ġcom . m ire go . tri kot . view models . decl arative . content . VM D Content Ċ import Ġcom . m ire go . tri kot . view models . decl arative . view model . internal . VM D Property Change Ċ import Ġcom . m ire go . tri kot . view models . decl arative . view model . internal . VM D Property ChangeListener Ċ import Ġorg . reactiv est ream s . Publisher Ċ import Ġkotlin . reflect . K Property Ċ Ċ interface ĠV MD ViewModel Ġ: ĠV MD Property ChangeListener , ĠV MD Content Ġ{ ĊĠĠĠ Ġval Ġproperty Will Change : ĠConcrete Publisher < VM D Property Change <* >> ĊĠĠĠ Ġval Ġproperty DidChange : ĠConcrete Publisher < VM D Property Change <* >> ĊĊĠĠĠ Ġvar Ġis Hidden : ĠBoolean ĊĊĠĠĠ Ġfun Ġ< V > Ġpublisher For Property ( property : ĠK Property < V >): ĠPublisher < V > ĊĠĠĠ Ġfun Ġ< V > Ġpublisher For PropertyName ( propertyName : ĠString ): ĠPublisher < V > Ċ } Ċ