def _parsed_typed_object(paragraph):
    """
    Parses a typed-object description like ``name (type) -- description``.

    :param docutils.nodes.paragraph paragraph:

    :return: :class:`dict` containing the name, type, and description
        as strings or an empty :class:`dict`
    :rtype: dict

    """
    type_map = {
        'str': 'string',
        'string': 'string',
        'int': 'number',
        'integer': 'number',
        'double': 'number',
        'float': 'number',
        'object': 'object',
        'dict': 'object',
        'array': 'array',
        'list': 'array',
        'bool': 'boolean',
    }

    name = paragraph[0].astext()
    if paragraph[1].astext() == ' (':
        t = type_map.get(paragraph[2].astext()) or 'string'
        desc_start = 5
    else:
        t = 'string'
        desc_start = 2

    description = '\n\n'.join(n.astext().replace('\n', ' ')
                              for n in paragraph[desc_start:])

    return {
        'name': name,
        'type': t,
        'description': description,
    }