# Path: desertbot/ircbase.py
# class ModeType(Enum):
#     LIST = 0,
#     PARAM_SET = 1,
#     PARAM_SET_UNSET = 2,
#     NO_PARAM = 3


import logging
from typing import Dict, List, Optional, TYPE_CHECKING
from desertbot.ircbase import ModeType
    from desertbot.desertbot import DesertBot
    from desertbot.user import IRCUser


if TYPE_CHECKING:


class IRCChannel(object):
    def __init__(self, name: str, bot: 'DesertBot'):
        self.logger = logging.getLogger('desertbot.core.{}'.format(name))
        self.name = name
        self.bot = bot
        self.modes = {}
        self.users = {}
        self.ranks = {}
        self.topic = None
        self.topicSetter = None
        self.topicTimestamp = 0
        self.creationTime = 0
        self.userlistComplete = True

    def setModes(self, modes: str, params: List) -> Optional[Dict]:
        adding = True
        supportedChanModes = self.bot.supportHelper.chanModes
        supportedStatuses = self.bot.supportHelper.statusModes
        modesAdded = []

# Path: desertbot/ircbase.py
# class ModeType(Enum):
#     LIST = 0,
#     PARAM_SET = 1,
#     PARAM_SET_UNSET = 2,
#     NO_PARAM = 3


# Path: desertbot/channel.py
import logging
from typing import Dict, List, Optional, TYPE_CHECKING
from desertbot.ircbase import ModeType
    from desertbot.desertbot import DesertBot
    from desertbot.user import IRCUser



if TYPE_CHECKING:


class IRCChannel(object):
    def __init__(self, name: str, bot: 'DesertBot'):
        self.logger = logging.getLogger('desertbot.core.{}'.format(name))
        self.name = name
        self.bot = bot
        self.modes = {}
        self.users = {}
        self.ranks = {}
        self.topic = None
        self.topicSetter = None
        self.topicTimestamp = 0
        self.creationTime = 0
        self.userlistComplete = True

    def setModes(self, modes: str, params: List) -> Optional[Dict]:
        adding = True
        supportedChanModes = self.bot.supportHelper.chanModes
        supportedStatuses = self.bot.supportHelper.statusModes
        modesAdded = []

        paramsAdded = []