in lib/declaration.ts [963:987]
private visitDeclarationMetadata(decl: ts.Declaration) {
this.visitEachIfPresent(decl.modifiers);
switch (decl.kind) {
case ts.SyntaxKind.Constructor:
case ts.SyntaxKind.ConstructSignature:
this.emit('external factory');
break;
case ts.SyntaxKind.ArrowFunction:
case ts.SyntaxKind.CallSignature:
case ts.SyntaxKind.MethodDeclaration:
case ts.SyntaxKind.SetAccessor:
case ts.SyntaxKind.GetAccessor:
case ts.SyntaxKind.MethodSignature:
case ts.SyntaxKind.PropertySignature:
case ts.SyntaxKind.FunctionDeclaration:
if (!base.getEnclosingClass(decl)) {
this.maybeEmitJsAnnotation(decl, {suppressUnneededPaths: true});
}
this.emit('external');
break;
default:
throw 'Unexpected declaration kind:' + decl.kind;
}
}