Libclang: cannot get to decl of typedef inherited from base class

Consider the following simplified version of the actual code I’m trying to extract AST from, in particular the very last method “erase”:

#include <string>

namespace detail {
    template <typename Key, typename Value>
    class map {
    public:
        typedef Key key_type;
        typedef Value value_type;

        void insert(key_type k, value_type v);
        const value_type& at(const key_type& k);

    };
}

namespace Test {
    class Class : private detail::map<std::string, int> {
    public:
        using map::key_type;
        using map::value_type;

        using map::map;
        using map::insert;
        using map::at;

        void erase(const key_type& key);
    };
}

After parsing, when I inspect the AST for the erase() method, the key_type shows up as an Elaborated type, whose named type is Unexposed. Is there any way to get to the actual decl here?

The corresponding UsingDeclaration for the using map::key_type; statement points correctly to the underlying decl, but that link gets lost when it is used as a type.