// Copyright 2017, University of Colorado Boulder

/**
 *
 * @author Sam Reid (PhET Interactive Simulations)
 * @author Andrew Adare (PhET Interactive Simulations)
 */
define( function( require ) {
  'use strict';

  // modules
  var NodeIO = require( 'SCENERY/nodes/NodeIO' );

  // phet-io modules
  var assertInstanceOf = require( 'ifphetio!PHET_IO/assertInstanceOf' );
  var phetioInherit = require( 'ifphetio!PHET_IO/phetioInherit' );
  var sceneryPhet = require( 'SCENERY_PHET/sceneryPhet' );

  /**
   * Wrapper type for phet/sun's Faucet class.
   * @param faucet
   * @param phetioID
   * @constructor
   */
  function FaucetNodeIO( faucet, phetioID ) {
    assert && assertInstanceOf( faucet, phet.sceneryPhet.FaucetNode );
    NodeIO.call( this, faucet, phetioID );
  }

  phetioInherit( NodeIO, 'FaucetNodeIO', FaucetNodeIO, {}, {
    documentation: 'Faucet that emits fluid, typically user-controllable',
    events: [ 'startTapToDispense', 'endTapToDispense' ]
  } );

  sceneryPhet.register( 'FaucetNodeIO', FaucetNodeIO );

  return FaucetNodeIO;
} );


// Copyright 2017, University of Colorado Boulder

/**
 * IO type for FaucetNode.
 * @author Sam Reid (PhET Interactive Simulations)
 * @author Andrew Adare (PhET Interactive Simulations)
 */
define( function( require ) {
  'use strict';

  // modules
  var NodeIO = require( 'SCENERY/nodes/NodeIO' );

  // phet-io modules
  var assertInstanceOf = require( 'ifphetio!PHET_IO/assertInstanceOf' );
  var phetioInherit = require( 'ifphetio!PHET_IO/phetioInherit' );
  var sceneryPhet = require( 'SCENERY_PHET/sceneryPhet' );

  /**
   * Wrapper type for phet/sun's Faucet class.
   * @param {FaucetNode} faucetNode
   * @param {string} phetioID
   * @constructor
   */
  function FaucetNodeIO( faucetNode, phetioID ) {
    assert && assertInstanceOf( faucetNode, phet.sceneryPhet.FaucetNode );
    NodeIO.call( this, faucetNode, phetioID );
  }

  phetioInherit( NodeIO, 'FaucetNodeIO', FaucetNodeIO, {}, {
    documentation: 'Faucet that emits fluid, typically user-controllable',
    events: [ 'startTapToDispense', 'endTapToDispense' ]
  } );

  sceneryPhet.register( 'FaucetNodeIO', FaucetNodeIO );

  return FaucetNodeIO;
} );


change constructor param name, document https://github.com/phetsims/scenery-phet/issues/346