def METHOD_NAME(cmd: str) -> T.Dict[str, str]:
    cmd_len = len(cmd)
    usage = usage_start_pattern.search(cmd)
    positionals = positional_start_pattern.search(cmd)
    options = options_start_pattern.search(cmd)
    commands = commands_start_pattern.search(cmd)
    arguments_start = get_next_start([positionals, options, commands], None)
    assert arguments_start
    # replace `usage:` with `$` and dedent
    dedent_size = (usage.end() - usage.start()) - len('$ ')
    usage_text = textwrap.dedent(f'{dedent_size * " "}$ {normalize_text(cmd[usage.end():arguments_start])}')
    return {
        'usage': usage_text,
        'arguments': normalize_text(cmd[arguments_start:cmd_len]),
    }