text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  const NodePrinter_1 = require("../NodePrinter");
  const formatting_1 = require("../formatting");
  class GetAccessorDeclarationStructurePrinter extends NodePrinter_1.NodePrinter {
      constructor(factory, options) {
          super(factory);
          this.options = options;
          this.blankLineWriter = new formatting_1.BlankLineFormattingStructuresPrinter(this);
      }
      printTexts(writer, structures) {
          this.blankLineWriter.printText(writer, structures);
      }
      printTextInternal(writer, structure) {
          this.factory.forJSDoc().printDocs(writer, structure.docs);
          this.factory.forDecorator().printTexts(writer, structure.decorators);
          this.factory.forModifierableNode().printText(writer, structure);
          writer.write(`get ${structure.name}`);
          this.factory.forTypeParameterDeclaration().printTextsWithBrackets(writer, structure.typeParameters);
          this.factory.forParameterDeclaration().printTextsWithParenthesis(writer, structure.parameters);
          this.factory.forReturnTypedNode().printText(writer, structure);
          if (this.options.isAmbient || structure.isAbstract)
              writer.write(";");
          else
              writer.spaceIfLastNot().inlineBlock(() => {
                  this.factory.forStatementedNode(this.options).printText(writer, structure);
              });
      }
  }
  exports.GetAccessorDeclarationStructurePrinter = GetAccessorDeclarationStructurePrinter;
  