Handler behaviour for TMI.
@callback handle_action( message :: String.t(), sender :: String.t(), channel :: String.t() ) :: any()
@callback handle_action( message :: String.t(), sender :: String.t(), channel :: String.t(), map() ) :: any()
@callback handle_connected(server :: String.t(), port :: integer()) :: any()
@callback handle_disconnected() :: any()
@callback handle_join(channel :: String.t()) :: any()
@callback handle_join(channel :: String.t(), user :: String.t()) :: any()
@callback handle_kick(channel :: String.t(), kicker :: String.t()) :: any()
@callback handle_kick(channel :: String.t(), user :: String.t(), kicker :: String.t()) :: any()
@callback handle_logged_in() :: any()
@callback handle_login_failed(reason :: atom()) :: any()
@callback handle_mention( message :: String.t(), sender :: String.t(), channel :: String.t() ) :: any()
@callback handle_message( message :: String.t(), sender :: String.t(), channel :: String.t() ) :: any()
@callback handle_message( message :: String.t(), sender :: String.t(), channel :: String.t(), tags :: map() ) :: any()
@callback handle_part(channel :: String.t()) :: any()
@callback handle_part(channel :: String.t(), user :: String.t()) :: any()
@callback handle_unrecognized(msg :: any()) :: any()
@callback handle_unrecognized(msg :: any(), tags :: map()) :: any()
@callback handle_whisper(message :: String.t(), sender :: String.t()) :: any()
@callback handle_whisper(message :: String.t(), sender :: String.t(), tags :: map()) :: any()