You cannot. Even if the member was public you cannot access a member of one class in the member of a second class unless you have an instance of that second class available.
Your code looks a little complicated because it has inheritance and what not. Let me try to explain by means of a simpler example:
struct F { 
    struct G {
       int x; 
    };
   
    int get();
};
int main() {
    F::G g{42};
}
Now, similar question: How to return G::x from F::get() ?
You can't.
What you can do is...
Add a G member to F and return the member of that instance:
struct F { 
    struct G {
       int x; 
    };
    G g;  
    int get() {
         return g.x;
    }
};
or pass a G to get:
struct F { 
    struct G {
       int x; 
    };
    int get(const G& g) {
         return g.x;
    }
};
Just because G is defined inside F does not make any instance of G a member of a F.
Actually also the nesting is not that relevant because with regards to accessing the member G::x it is similar to, now with private:
 class G {
     int x;
 };
 struct F {
     int get() { /* how to access G::x here?!?! */ }
 };
Now again two issues: First you need an instance of G to access one of its members. Second, you cannot access it when it is private. As above, we pass an instance to get and in addition add an accessor:
 class G {
     int x;
 public:
     G() : x(42) {}
     int get() const { return x; }
 };
 struct F {
     int get(const G& g) { return g; }
 };
 int main() {
     G g;
     F f;
     int y = f.get(g);
 }
Alternatively you can declare F a friend of G, then G::get is not needed.
I suppose your code is a stripped down example of something more complex, because in the example code there is no reason to use F::get to get the value of G::x. Once you provided a way to access the member from outside the class, you can also access it directly in main without using F::get.