kotlin – What is the best design pattern to use multiple implementation of one interface for a single class, optional to use all or most of them

Consider an interface:

interface Auth { 
  fun doAuth()
}

this can be implemented for multiple APIs:

class GoogleAuth : Auth {
  override fun doAuth(){
    throw NoGoogleAuthImpl();
  }
}
class TwitterAuth : Auth {
  override fun doAuth(){
    throw NoTwitterAuthImpl();
  }
}

Now, a class can use one of Auths or both of them (or another that would definitely come soon). What is the best design pattern for this?

Strategy can use one:

class AuthHost : Auth by GoogleAuth() {
  fun onGoogleClick(){
    //This uses GoogleAuth#doAuth
    doAuth()  ​
  ​}

  fun onTwitterClick(){
    // can not do this right now
  }
}