import java = require('java'); import pify = require('pify'); java.asyncOptions = { syncSuffix: 'Sync', asyncSuffix: '', promiseSuffix: 'P', promisify: pify }; // todo: figure out why promise doesn't work here /* java.registerClientP((): Promise => { return BluePromise.resolve(); }); */ interface ProxyFunctions { [index: string]: Function; } java.ensureJvm() .then(() => { // java.d.ts does not declare any Java types. // We can import a java class, but we don't know the shape of the class here, so must use any var Boolean: any = java.import('java.lang.Boolean'); var functions: ProxyFunctions = { accept: function(t: any): void { }, andThen: function(after: any): any {} }; var proxy: any = java.newProxy('java.util.function.Consumer', functions); });