def METHOD_NAME(
    organization: Organization,
    integration: Integration | RpcIntegration,
    channel_name: str,
    use_async_lookup: bool = False,
) -> Tuple[str, Optional[str], bool]:
    """
    Fetches the internal slack id of a channel.
    :param organization: unused
    :param integration: The slack integration
    :param channel_name: The name of the channel
    :param use_async_lookup: Give the function some extra time?
    :return: a tuple of three values
        1. prefix: string (`"#"` or `"@"`)
        2. channel_id: string or `None`
        3. timed_out: boolean (whether we hit our self-imposed time limit)
    """
    channel_name = strip_channel_name(channel_name)
    # longer lookup for the async job
    if use_async_lookup:
        timeout = 3 * 60
    else:
        timeout = SLACK_DEFAULT_TIMEOUT
    # XXX(meredith): For large accounts that have many, many users it's
    # possible for us to timeout while attempting to paginate through to find the user id
    # This means some users are unable to create/update alert rules. To avoid this, we attempt
    # to find the channel id asynchronously if it takes longer than a certain amount of time,
    # which I have set as the SLACK_DEFAULT_TIMEOUT - arbitrarily - to 10 seconds.
    return get_channel_id_with_timeout(integration, channel_name, timeout)