/* @flow */
"use strict"
module.exports = function (
  statement/*: Object*/,
  options/*:: ?: Object*/
)/*: string*/ {
  options = options || {}

  let result = ""
  let rule/*: postcss$rule*/
  let atRule/*: postcss$atRule*/

  if (statement.type === "rule") {
    rule = statement
  }
  if (statement.type === "atrule") {
    atRule = statement
  }

  if (!rule && !atRule) {
    return result
  }

  const before = (statement.raws.before || "")

  if (!options.noRawBefore) {
    result += before
  }
  if (rule) {
    result += rule.selector
  }
  if (atRule) {
    result += "@" + atRule.name + (atRule.raws.afterName || "") + atRule.params
  }

  const between = statement.raws.between

  if (between !== undefined) {
    result += between
  }

  return result
}
