+{Disposable} = require('atom')
 module.exports =
   instance: null
   config:

        linter = legacy(require "#{atomPackage.path}/lib/#{implementation}")
        @consumeLinter(linter)

  consumeLinter: (linter) ->
    if linter instanceof Array
      for singleLinter in linter
        @_consumeLinter(singleLinter)
    else
      @_consumeLinter(linter)

  consumeStatusBar: (statusBar) ->
    @instance.views.attachBottom(statusBar)

  deactivate: ->
    @instance?.deactivate()

  _validateLinter: (linter) ->
    if linter.grammarScopes instanceof Array and typeof linter.lint is 'function'
      true
    else
      err = new Error("Invalid Linter Provided")
      atom.notifications.addError err.message, {detail: err.stack}
      false