@class
interface InnerPerson {
    getPseron(): Opaque;
    getInnerPerson(): InnerPerson;
}

function makePerson(): InnerPerson;

@!sts_inject("""
import Person from 'Person';
export class Man extends Person {
    getPerson(): Person {
        return this.innerPerson.getPseron() as Person;
    };
    innerPerson: InnerPerson;
    constructor() {
        this.innerPerson = makePerson(); 
    }
}
""")
