visibleIf

fun <T : View> T.visibleIf(condition: Boolean, animated: Boolean = false): T
fun <T> View.visibleIf(    property1: CSProperty<T>,     property2: CSProperty<*>,     animated: Boolean = false,     condition: (T) -> Boolean): CSRegistration
fun <T, V> View.visibleIf(    property1: CSProperty<T>,     property2: CSProperty<V>,     animated: Boolean = false,     condition: (T, V) -> Boolean): CSRegistration
fun <T> View.visibleIf(    property: CSProperty<T>,     animated: Boolean = false,     condition: (T) -> Boolean): CSRegistration
fun View.visibleIf(property: CSProperty<Boolean>, animated: Boolean = false): CSRegistration