#Signature file v4.1
#Version 0.16.1

CLSS public abstract interface org.netbeans.modules.javascript2.nodejs.spi.NodeJsSupport
meth public abstract boolean isSupportEnabled()
meth public abstract java.lang.String getDocumentationUrl()
 anno 0 org.netbeans.api.annotations.common.CheckForNull()
meth public abstract org.netbeans.modules.web.common.api.Version getVersion()
 anno 0 org.netbeans.api.annotations.common.CheckForNull()
meth public abstract org.openide.filesystems.FileObject getDocumentationFolder()
 anno 0 org.netbeans.api.annotations.common.CheckForNull()
meth public abstract void addChangeListener(javax.swing.event.ChangeListener)
meth public abstract void removeChangeListener(javax.swing.event.ChangeListener)

