# Path: hypebot/core/factory_lib.py
# class Factory(object):
#   def __init__(self, base_class, register_internal_nodes=False):
#   def _Register(self, klass, register_internal_nodes):
#   def Create(self, name: Text, *args, **kwargs):
#   def CreateFromParams(self,
#                        params: params_lib.HypeParams,
#                        *args, **kwargs):
# 
# Path: hypebot/interfaces/interface_lib.py
# class BaseChatInterface(with_metaclass(abc.ABCMeta)):
#   DEFAULT_PARAMS = params_lib.HypeParams({
#       # Display name used when chatting.
#       'name': 'chatbot',
#   })
#   def __init__(self, params):
#   def RegisterHandlers(self, on_message_fn, user_tracker, user_prefs):
#   def Join(self, channel: hype_types.Channel):
#   def Leave(self, channel: hype_types.Channel):
#   def Loop(self):
#   def FindUser(self, query: Text) -> Optional[user_pb2.User]:
#   def WhoAll(self):
#   def SendMessage(self, channel: hype_types.Channel,
#                   message: Optional[hype_types.Message]):
#   def SendDirectMessage(self, user: user_pb2.User, message: hype_types.Message):
#   def Notice(self, channel: hype_types.Channel, message: hype_types.Message):
#   def Topic(self, channel: hype_types.Channel, new_topic: Text):


from hypebot.core import factory_lib
from hypebot.interfaces import interface_lib
import hypebot.interfaces.capture_interface
import hypebot.interfaces.discord_interface
import hypebot.interfaces.terminal_interface
# Copyright 2018 The Hypebot Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Factory for building interfaces.

Hypebot is like Amumu and wants friends. Hypebot wants to talk to you.
"""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals


# pylint: disable=unused-import
# Importing commands registers them with factory.
# pylint: enable=usused-import



# Path: hypebot/core/factory_lib.py
# class Factory(object):
#   def __init__(self, base_class, register_internal_nodes=False):
#   def _Register(self, klass, register_internal_nodes):
#   def Create(self, name: Text, *args, **kwargs):
#   def CreateFromParams(self,
#                        params: params_lib.HypeParams,
#                        *args, **kwargs):
# 
# Path: hypebot/interfaces/interface_lib.py
# class BaseChatInterface(with_metaclass(abc.ABCMeta)):
#   DEFAULT_PARAMS = params_lib.HypeParams({
#       # Display name used when chatting.
#       'name': 'chatbot',
#   })
#   def __init__(self, params):
#   def RegisterHandlers(self, on_message_fn, user_tracker, user_prefs):
#   def Join(self, channel: hype_types.Channel):
#   def Leave(self, channel: hype_types.Channel):
#   def Loop(self):
#   def FindUser(self, query: Text) -> Optional[user_pb2.User]:
#   def WhoAll(self):
#   def SendMessage(self, channel: hype_types.Channel,
#                   message: Optional[hype_types.Message]):
#   def SendDirectMessage(self, user: user_pb2.User, message: hype_types.Message):
#   def Notice(self, channel: hype_types.Channel, message: hype_types.Message):
#   def Topic(self, channel: hype_types.Channel, new_topic: Text):


# Path: hypebot/interfaces/interface_factory.py
from hypebot.core import factory_lib
from hypebot.interfaces import interface_lib
import hypebot.interfaces.capture_interface
import hypebot.interfaces.discord_interface
import hypebot.interfaces.terminal_interface

# Copyright 2018 The Hypebot Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Factory for building interfaces.

Hypebot is like Amumu and wants friends. Hypebot wants to talk to you.
"""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals


# pylint: disable=unused-import
# Importing commands registers them with factory.
# pylint: enable=usused-import



_factory = factory_lib.Factory(interface_lib.BaseChatInterface)