define(function(require,exports,module){function formatParameterHint(params,appendSeparators,appendParameter,typesOnly){var result="",pendingOptional=!1;return params.forEach(function(value,i){var param=value.type,separators="";value.isOptional&&(pendingOptional&&(separators+="]"),pendingOptional=!0),i>0&&(separators+=", "),value.isOptional&&(separators+="["),appendSeparators&&appendSeparators(separators),result+=separators,typesOnly||(param+=" "+value.name),appendParameter&&appendParameter(param,i),result+=param}),pendingOptional&&(appendSeparators&&appendSeparators("]"),result+="]"),result}exports.formatParameterHint=formatParameterHint});