import { RULESET, KEYFRAMES, COMMENT, DECLARATION, IMPORT, LAYER } from "./Enum.js";
import { sizeof, strlen } from "./Utility.js";
function serialize(children, callback) {
  var output = "";
  var length = sizeof(children);
  for (var i = 0; i < length; i++)
    output += callback(children[i], i, children, callback) || "";
  return output;
}
function stringify(element, index, children, callback) {
  switch (element.type) {
    case LAYER:
      if (element.children.length) break;
    case IMPORT:
    case DECLARATION:
      return element.return = element.return || element.value;
    case COMMENT:
      return "";
    case KEYFRAMES:
      return element.return = element.value + "{" + serialize(element.children, callback) + "}";
    case RULESET:
      element.value = element.props.join(",");
  }
  return strlen(children = serialize(element.children, callback)) ? element.return = element.value + "{" + children + "}" : "";
}
export {
  serialize,
  stringify
};
