// Path: asciidoctorj-api/src/main/java/org/asciidoctor/ast/Document.java
// public interface Document extends StructuralNode {
// 
//     /**
//      * @return The Title structure for this document.
//      * @see Title
//      */
//     Title getStructuredDoctitle();
// 
//     /**
//      * @return The title as a String.
//      * @see Title
//      */
//     String getDoctitle();
// 
//     /**
//      * @deprecated Please use {@link #getDoctitle()}
//      * @return The title as a String.
//      * @see Title
//      */
//     @Deprecated
//     String doctitle();
// 
//     /**
//      * Gets the author(s) information as defined in the author line
//      * in the document header, or in author & email attributes.
//      *
//      * @return authors information
//      */
//     List<Author> getAuthors();
// 
//     /**
//      * @return basebackend attribute value
//      */
//     boolean isBasebackend(String backend);
// 
//     /**
//      * @deprecated Please use {@link #isBasebackend(String)}
//      * @return basebackend attribute value
//      */
//     @Deprecated
//     boolean basebackend(String backend);
// 
//     /**
//      *
//      * @return options defined in document.
//      */
//     Map<Object, Object> getOptions();
// 
//     /**
//      * Gets the current counter with the given name and increases its value.
//      * At the first invocation the counter will return 1.
//      * After the call the value of the counter is set to the returned value plus 1.
//      * @param name
//      * @return
//      */
//     int getAndIncrementCounter(String name);
// 
//     /**
//      * Gets the current counter with the given name and increases its value.
//      * At the first invocation the counter will return the given initial value.
//      * After the call the value of the counter is set to the returned value plus 1.
//      * @param name
//      * @param initialValue
//      * @return
//      */
//     int getAndIncrementCounter(String name, int initialValue);
// 
//     /**
//      * @return Whether the sourcemap is enabled.
//      */
//     boolean isSourcemap();
// 
//     /**
//      * Toggles the sourcemap option.
//      *
//      * This method must be called before the document is parsed, such as
//      * from a Preprocessor extension. Otherwise, it has no effect.
//      *
//      * @param state The state in which to put the sourcemap (true = on, false = off).
//      */
//     void setSourcemap(boolean state);
// 
// 
//     /**
//      * The catalog contains data collected by asciidoctor that is useful to a converter.
//      *
//      * Note that the catalog is not part of the asciidoctor public API and is subject to change.
//      *
//      * @return catalog
//      */
//     Catalog getCatalog();
// 
// 
//     /**
//      * The revision information with: date, number and remark.
//      *
//      * @return revisionInfo
//      */
//     RevisionInfo getRevisionInfo();
// }
// 
// Path: asciidoctorj-api/src/main/java/org/asciidoctor/ast/DocumentHeader.java
// @Deprecated
// public interface DocumentHeader {
// 
//     /**
//      * @deprecated Use {@link Document#getAuthors()} instead.
//      */
//     @Deprecated
//     List<Author> getAuthors();
// 
//     /**
//      * @deprecated Use {@link Document#getStructuredDoctitle()} instead.
//      */
//     @Deprecated
//     Title getDocumentTitle();
// 
//     /**
//      * @deprecated Use {@link Document#getDoctitle()} instead.
//      */
//     @Deprecated
//     String getPageTitle();
// 
//     /**
//      * @deprecated Use {@link Document#getAuthors()} instead.
//      */
//     @Deprecated
//     Author getAuthor();
// 
//     /**
//      * @deprecated Use {@link Document#getRevisionInfo()} instead.
//      */
//     @Deprecated
//     RevisionInfo getRevisionInfo();
// 
//     /**
//      * @deprecated Use {@link Document#getAttributes()} instead.
//      */
//     @Deprecated
//     Map<String, Object> getAttributes();
// }
// 
// Path: asciidoctorj-api/src/main/java/org/asciidoctor/log/LogHandler.java
// public interface LogHandler {
// 
//     /**
//      * Process a log record.
//      * This method is called during conversion and will abort completely
//      * if an exception is thrown from within.
//      *
//      * @param logRecord
//      */
//     void log(LogRecord logRecord);
// 
// }
// 
// Path: asciidoctorj-api/src/main/java/org/asciidoctor/syntaxhighlighter/SyntaxHighlighterRegistry.java
// public interface SyntaxHighlighterRegistry {
// 
//     void register(Class<? extends SyntaxHighlighterAdapter> sourceHighlighter , String... names);
// 
// }


import org.asciidoctor.ast.Document;
import org.asciidoctor.ast.DocumentHeader;
import org.asciidoctor.converter.JavaConverterRegistry;
import org.asciidoctor.extension.ExtensionGroup;
import org.asciidoctor.extension.JavaExtensionRegistry;
import org.asciidoctor.extension.RubyExtensionRegistry;
import org.asciidoctor.log.LogHandler;
import org.asciidoctor.syntaxhighlighter.SyntaxHighlighterRegistry;
import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.*;
import java.util.stream.Collectors;
     * @param options a Map of options to control processing (default: {}).
     * @return returns an array of 0 positions if the rendered output is written
     * to a file.
     */
    @Deprecated
    String[] convertFiles(Collection<File> files, OptionsBuilder options);

    /**
     * Loads the given Ruby gem(s) by name.
     *
     * @param requiredLibraries
     */
    void requireLibrary(String... requiredLibraries);

    /**
     * Loads the given Ruby gem in requiredLibraries by name.
     *
     * @param requiredLibraries
     */
    void requireLibraries(Collection<String> requiredLibraries);

    /**
     * Reads only header parameters instead of all document.
     *
     * @deprecated Use {@link #loadFile(File, Map)} instead.
     *
     * @param file to read the attributes.
     * @return header.
     */
    @Deprecated
// Path: asciidoctorj-api/src/main/java/org/asciidoctor/ast/Document.java
// public interface Document extends StructuralNode {
// 
//     /**
//      * @return The Title structure for this document.
//      * @see Title
//      */
//     Title getStructuredDoctitle();
// 
//     /**
//      * @return The title as a String.
//      * @see Title
//      */
//     String getDoctitle();
// 
//     /**
//      * @deprecated Please use {@link #getDoctitle()}
//      * @return The title as a String.
//      * @see Title
//      */
//     @Deprecated
//     String doctitle();
// 
//     /**
//      * Gets the author(s) information as defined in the author line
//      * in the document header, or in author & email attributes.
//      *
//      * @return authors information
//      */
//     List<Author> getAuthors();
// 
//     /**
//      * @return basebackend attribute value
//      */
//     boolean isBasebackend(String backend);
// 
//     /**
//      * @deprecated Please use {@link #isBasebackend(String)}
//      * @return basebackend attribute value
//      */
//     @Deprecated
//     boolean basebackend(String backend);
// 
//     /**
//      *
//      * @return options defined in document.
//      */
//     Map<Object, Object> getOptions();
// 
//     /**
//      * Gets the current counter with the given name and increases its value.
//      * At the first invocation the counter will return 1.
//      * After the call the value of the counter is set to the returned value plus 1.
//      * @param name
//      * @return
//      */
//     int getAndIncrementCounter(String name);
// 
//     /**
//      * Gets the current counter with the given name and increases its value.
//      * At the first invocation the counter will return the given initial value.
//      * After the call the value of the counter is set to the returned value plus 1.
//      * @param name
//      * @param initialValue
//      * @return
//      */
//     int getAndIncrementCounter(String name, int initialValue);
// 
//     /**
//      * @return Whether the sourcemap is enabled.
//      */
//     boolean isSourcemap();
// 
//     /**
//      * Toggles the sourcemap option.
//      *
//      * This method must be called before the document is parsed, such as
//      * from a Preprocessor extension. Otherwise, it has no effect.
//      *
//      * @param state The state in which to put the sourcemap (true = on, false = off).
//      */
//     void setSourcemap(boolean state);
// 
// 
//     /**
//      * The catalog contains data collected by asciidoctor that is useful to a converter.
//      *
//      * Note that the catalog is not part of the asciidoctor public API and is subject to change.
//      *
//      * @return catalog
//      */
//     Catalog getCatalog();
// 
// 
//     /**
//      * The revision information with: date, number and remark.
//      *
//      * @return revisionInfo
//      */
//     RevisionInfo getRevisionInfo();
// }
// 
// Path: asciidoctorj-api/src/main/java/org/asciidoctor/ast/DocumentHeader.java
// @Deprecated
// public interface DocumentHeader {
// 
//     /**
//      * @deprecated Use {@link Document#getAuthors()} instead.
//      */
//     @Deprecated
//     List<Author> getAuthors();
// 
//     /**
//      * @deprecated Use {@link Document#getStructuredDoctitle()} instead.
//      */
//     @Deprecated
//     Title getDocumentTitle();
// 
//     /**
//      * @deprecated Use {@link Document#getDoctitle()} instead.
//      */
//     @Deprecated
//     String getPageTitle();
// 
//     /**
//      * @deprecated Use {@link Document#getAuthors()} instead.
//      */
//     @Deprecated
//     Author getAuthor();
// 
//     /**
//      * @deprecated Use {@link Document#getRevisionInfo()} instead.
//      */
//     @Deprecated
//     RevisionInfo getRevisionInfo();
// 
//     /**
//      * @deprecated Use {@link Document#getAttributes()} instead.
//      */
//     @Deprecated
//     Map<String, Object> getAttributes();
// }
// 
// Path: asciidoctorj-api/src/main/java/org/asciidoctor/log/LogHandler.java
// public interface LogHandler {
// 
//     /**
//      * Process a log record.
//      * This method is called during conversion and will abort completely
//      * if an exception is thrown from within.
//      *
//      * @param logRecord
//      */
//     void log(LogRecord logRecord);
// 
// }
// 
// Path: asciidoctorj-api/src/main/java/org/asciidoctor/syntaxhighlighter/SyntaxHighlighterRegistry.java
// public interface SyntaxHighlighterRegistry {
// 
//     void register(Class<? extends SyntaxHighlighterAdapter> sourceHighlighter , String... names);
// 
// }


// Path: asciidoctorj-api/src/main/java/org/asciidoctor/Asciidoctor.java
import org.asciidoctor.ast.Document;
import org.asciidoctor.ast.DocumentHeader;
import org.asciidoctor.converter.JavaConverterRegistry;
import org.asciidoctor.extension.ExtensionGroup;
import org.asciidoctor.extension.JavaExtensionRegistry;
import org.asciidoctor.extension.RubyExtensionRegistry;
import org.asciidoctor.log.LogHandler;
import org.asciidoctor.syntaxhighlighter.SyntaxHighlighterRegistry;
import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.*;
import java.util.stream.Collectors;

     * @param options a Map of options to control processing (default: {}).
     * @return returns an array of 0 positions if the rendered output is written
     * to a file.
     */
    @Deprecated
    String[] convertFiles(Collection<File> files, OptionsBuilder options);

    /**
     * Loads the given Ruby gem(s) by name.
     *
     * @param requiredLibraries
     */
    void requireLibrary(String... requiredLibraries);

    /**
     * Loads the given Ruby gem in requiredLibraries by name.
     *
     * @param requiredLibraries
     */
    void requireLibraries(Collection<String> requiredLibraries);

    /**
     * Reads only header parameters instead of all document.
     *
     * @deprecated Use {@link #loadFile(File, Map)} instead.
     *
     * @param file to read the attributes.
     * @return header.
     */
    @Deprecated
    DocumentHeader readDocumentHeader(File file);