connect_failed(info :: :init | {:backoff, previous_result :: result}, error :: term) :: :stop | {:backoff, time :: non_neg_integer, next_result :: result} when result: term
disconnect(reason :: term) :: :stop | {:backoff, time :: non_neg_integer}