aboutsummaryrefslogtreecommitdiff
path: root/dokka-subprojects/core
diff options
context:
space:
mode:
Diffstat (limited to 'dokka-subprojects/core')
-rw-r--r--dokka-subprojects/core/.gitignore1
-rw-r--r--dokka-subprojects/core/api/dokka-core.api4745
-rw-r--r--dokka-subprojects/core/build.gradle.kts40
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/ConfigurationJsonUtils.kt54
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/CoreExtensions.kt43
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrap.kt15
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrapImpl.kt69
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaException.kt7
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaGenerator.kt89
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaVersion.kt15
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/InternalDokkaApi.kt28
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/configuration.kt280
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultConfiguration.kt100
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultExternalLinks.kt33
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/generation/Generation.kt19
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/links/DRI.kt146
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/CompositeSourceSetID.kt46
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/DisplaySourceSet.kt61
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/Documentable.kt540
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/JvmField.kt14
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/WithChildren.kt98
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/additionalExtras.kt142
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/ancestryNode.kt18
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/classKinds.kt24
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/defaultValues.kt34
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocTag.kt372
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocumentationNode.kt9
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/TagWrapper.kt36
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableProperties.kt71
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableUtils.kt27
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/extraModifiers.kt68
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/jvmName.kt11
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/PropertyContainer.kt69
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/properties.kt36
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt436
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/PageNodes.kt200
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/Pages.kt15
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/RendererSpecificPage.kt52
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/contentNodeProperties.kt37
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/utils.kt63
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaContext.kt235
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaJavaPlugin.kt78
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaPlugin.kt114
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/LazyEvaluated.kt21
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/extensions.kt110
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/PostAction.kt7
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/Renderer.kt11
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger.kt307
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableMerger.kt12
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator.kt13
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableTransformer.kt12
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer.kt39
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageCreator.kt15
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformer.kt11
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformerBuilders.kt27
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator.kt20
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator.kt13
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Collections.kt29
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/DokkaLogging.kt90
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Html.kt23
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet.kt27
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/ServiceLocator.kt99
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Uri.kt46
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/associateWithNotNull.kt13
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/cast.kt12
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/json.kt65
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/parallelCollectionOperations.kt26
-rw-r--r--dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/validity/PreGenerationChecker.kt17
-rw-r--r--dokka-subprojects/core/src/main/resources/META-INF/MANIFEST.MF1
-rw-r--r--dokka-subprojects/core/src/main/resources/META-INF/dokka/dokka-version.properties5
-rw-r--r--dokka-subprojects/core/src/test/kotlin/model/CompositeSourceSetIDTest.kt76
-rw-r--r--dokka-subprojects/core/src/test/kotlin/model/DisplaySourceSetTest.kt63
-rw-r--r--dokka-subprojects/core/src/test/kotlin/model/DocumentableTest.kt115
-rw-r--r--dokka-subprojects/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt72
-rw-r--r--dokka-subprojects/core/src/test/kotlin/utilities/JsonKtTest.kt80
75 files changed, 10067 insertions, 0 deletions
diff --git a/dokka-subprojects/core/.gitignore b/dokka-subprojects/core/.gitignore
new file mode 100644
index 00000000..1e1b410b
--- /dev/null
+++ b/dokka-subprojects/core/.gitignore
@@ -0,0 +1 @@
+src/main/resources/dokka/scripts/*.svg \ No newline at end of file
diff --git a/dokka-subprojects/core/api/dokka-core.api b/dokka-subprojects/core/api/dokka-core.api
new file mode 100644
index 00000000..fffcb877
--- /dev/null
+++ b/dokka-subprojects/core/api/dokka-core.api
@@ -0,0 +1,4745 @@
+public final class org/jetbrains/dokka/ConfigurationJsonUtilsKt {
+ public static final fun DokkaConfigurationImpl (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfigurationImpl;
+ public static final fun GlobalDokkaConfiguration (Ljava/lang/String;)Lorg/jetbrains/dokka/GlobalDokkaConfiguration;
+ public static final fun toCompactJsonString (Lorg/jetbrains/dokka/DokkaConfiguration;)Ljava/lang/String;
+ public static final fun toCompactJsonString (Lorg/jetbrains/dokka/plugability/ConfigurableBlock;)Ljava/lang/String;
+ public static final fun toJsonString (Lorg/jetbrains/dokka/DokkaConfiguration;)Ljava/lang/String;
+ public static final fun toJsonString (Lorg/jetbrains/dokka/plugability/ConfigurableBlock;)Ljava/lang/String;
+ public static final fun toPrettyJsonString (Lorg/jetbrains/dokka/DokkaConfiguration;)Ljava/lang/String;
+ public static final fun toPrettyJsonString (Lorg/jetbrains/dokka/plugability/ConfigurableBlock;)Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/ConfigurationKt {
+ public static final fun ExternalDocumentationLink (Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static final fun ExternalDocumentationLink (Ljava/net/URL;Ljava/net/URL;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static synthetic fun ExternalDocumentationLink$default (Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static synthetic fun ExternalDocumentationLink$default (Ljava/net/URL;Ljava/net/URL;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static final fun apply (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/GlobalDokkaConfiguration;)Lorg/jetbrains/dokka/DokkaConfiguration;
+ public static final fun build (Ljava/lang/Iterable;)Ljava/util/List;
+}
+
+public final class org/jetbrains/dokka/CoreExtensions {
+ public static final field INSTANCE Lorg/jetbrains/dokka/CoreExtensions;
+ public final fun getDocumentableMerger ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getDocumentableToPageTranslator ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getDocumentableTransformer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getGeneration ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getPageTransformer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getPostActions ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getPreGenerationCheck ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getRenderer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public final fun getSourceToDocumentableTranslator ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+}
+
+public final class org/jetbrains/dokka/DefaultExternalLinksKt {
+ public static final fun androidSdk (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static final fun androidX (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static final fun jdk (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;I)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static final fun kotlinStdlib (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaBootstrap {
+ public abstract fun configure (Ljava/lang/String;Ljava/util/function/BiConsumer;)V
+ public abstract fun generate ()V
+}
+
+public final class org/jetbrains/dokka/DokkaBootstrapImpl : org/jetbrains/dokka/DokkaBootstrap {
+ public fun <init> ()V
+ public fun configure (Ljava/lang/String;Ljava/util/function/BiConsumer;)V
+ public final fun configure (Lorg/jetbrains/dokka/utilities/DokkaLogger;Lorg/jetbrains/dokka/DokkaConfigurationImpl;)V
+ public fun generate ()V
+}
+
+public final class org/jetbrains/dokka/DokkaBootstrapImpl$DokkaProxyLogger : org/jetbrains/dokka/utilities/DokkaLogger {
+ public fun <init> (Ljava/util/function/BiConsumer;)V
+ public fun debug (Ljava/lang/String;)V
+ public fun error (Ljava/lang/String;)V
+ public final fun getConsumer ()Ljava/util/function/BiConsumer;
+ public fun getErrorsCount ()I
+ public fun getWarningsCount ()I
+ public fun info (Ljava/lang/String;)V
+ public fun progress (Ljava/lang/String;)V
+ public fun setErrorsCount (I)V
+ public fun setWarningsCount (I)V
+ public fun warn (Ljava/lang/String;)V
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfiguration : java/io/Serializable {
+ public abstract fun getCacheRoot ()Ljava/io/File;
+ public abstract fun getDelayTemplateSubstitution ()Z
+ public abstract fun getFailOnWarning ()Z
+ public abstract fun getFinalizeCoroutines ()Z
+ public abstract fun getIncludes ()Ljava/util/Set;
+ public abstract fun getModuleName ()Ljava/lang/String;
+ public abstract fun getModuleVersion ()Ljava/lang/String;
+ public abstract fun getModules ()Ljava/util/List;
+ public abstract fun getOfflineMode ()Z
+ public abstract fun getOutputDir ()Ljava/io/File;
+ public abstract fun getPluginsClasspath ()Ljava/util/List;
+ public abstract fun getPluginsConfiguration ()Ljava/util/List;
+ public abstract fun getSourceSets ()Ljava/util/List;
+ public abstract fun getSuppressInheritedMembers ()Z
+ public abstract fun getSuppressObviousFunctions ()Z
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfiguration$DokkaModuleDescription : java/io/Serializable {
+ public abstract fun getIncludes ()Ljava/util/Set;
+ public abstract fun getName ()Ljava/lang/String;
+ public abstract fun getRelativePathToOutputDirectory ()Ljava/io/File;
+ public abstract fun getSourceOutputDirectory ()Ljava/io/File;
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet : java/io/Serializable {
+ public abstract fun getAnalysisPlatform ()Lorg/jetbrains/dokka/Platform;
+ public abstract fun getApiVersion ()Ljava/lang/String;
+ public abstract fun getClasspath ()Ljava/util/List;
+ public abstract fun getDependentSourceSets ()Ljava/util/Set;
+ public abstract fun getDisplayName ()Ljava/lang/String;
+ public abstract fun getDocumentedVisibilities ()Ljava/util/Set;
+ public abstract fun getExternalDocumentationLinks ()Ljava/util/Set;
+ public abstract fun getIncludeNonPublic ()Z
+ public abstract fun getIncludes ()Ljava/util/Set;
+ public abstract fun getJdkVersion ()I
+ public abstract fun getLanguageVersion ()Ljava/lang/String;
+ public abstract fun getNoJdkLink ()Z
+ public abstract fun getNoStdlibLink ()Z
+ public abstract fun getPerPackageOptions ()Ljava/util/List;
+ public abstract fun getReportUndocumented ()Z
+ public abstract fun getSamples ()Ljava/util/Set;
+ public abstract fun getSkipDeprecated ()Z
+ public abstract fun getSkipEmptyPackages ()Z
+ public abstract fun getSourceLinks ()Ljava/util/Set;
+ public abstract fun getSourceRoots ()Ljava/util/Set;
+ public abstract fun getSourceSetID ()Lorg/jetbrains/dokka/DokkaSourceSetID;
+ public abstract fun getSuppressedFiles ()Ljava/util/Set;
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink : java/io/Serializable {
+ public static final field Companion Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;
+ public abstract fun getPackageListUrl ()Ljava/net/URL;
+ public abstract fun getUrl ()Ljava/net/URL;
+}
+
+public final class org/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion {
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfiguration$PackageOptions : java/io/Serializable {
+ public abstract fun getDocumentedVisibilities ()Ljava/util/Set;
+ public abstract fun getIncludeNonPublic ()Z
+ public abstract fun getMatchingRegex ()Ljava/lang/String;
+ public abstract fun getReportUndocumented ()Ljava/lang/Boolean;
+ public abstract fun getSkipDeprecated ()Z
+ public abstract fun getSuppress ()Z
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfiguration$PluginConfiguration : java/io/Serializable {
+ public abstract fun getFqPluginName ()Ljava/lang/String;
+ public abstract fun getSerializationFormat ()Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;
+ public abstract fun getValues ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/DokkaConfiguration$SerializationFormat : java/lang/Enum, java/io/Serializable {
+ public static final field JSON Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;
+ public static final field XML Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;
+ public static fun values ()[Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfiguration$SourceLinkDefinition : java/io/Serializable {
+ public abstract fun getLocalDirectory ()Ljava/lang/String;
+ public abstract fun getRemoteLineSuffix ()Ljava/lang/String;
+ public abstract fun getRemoteUrl ()Ljava/net/URL;
+}
+
+public final class org/jetbrains/dokka/DokkaConfiguration$Visibility : java/lang/Enum {
+ public static final field Companion Lorg/jetbrains/dokka/DokkaConfiguration$Visibility$Companion;
+ public static final field INTERNAL Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+ public static final field PACKAGE Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+ public static final field PRIVATE Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+ public static final field PROTECTED Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+ public static final field PUBLIC Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+ public static fun values ()[Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+}
+
+public final class org/jetbrains/dokka/DokkaConfiguration$Visibility$Companion {
+ public final fun fromString (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfiguration$Visibility;
+}
+
+public abstract interface class org/jetbrains/dokka/DokkaConfigurationBuilder {
+ public abstract fun build ()Ljava/lang/Object;
+}
+
+public final class org/jetbrains/dokka/DokkaConfigurationImpl : org/jetbrains/dokka/DokkaConfiguration {
+ public fun <init> ()V
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZ)V
+ public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component10 ()Z
+ public final fun component11 ()Z
+ public final fun component12 ()Z
+ public final fun component13 ()Ljava/util/Set;
+ public final fun component14 ()Z
+ public final fun component15 ()Z
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/io/File;
+ public final fun component4 ()Ljava/io/File;
+ public final fun component5 ()Z
+ public final fun component6 ()Ljava/util/List;
+ public final fun component7 ()Ljava/util/List;
+ public final fun component8 ()Ljava/util/List;
+ public final fun component9 ()Ljava/util/List;
+ public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZ)Lorg/jetbrains/dokka/DokkaConfigurationImpl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaConfigurationImpl;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaConfigurationImpl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getCacheRoot ()Ljava/io/File;
+ public fun getDelayTemplateSubstitution ()Z
+ public fun getFailOnWarning ()Z
+ public fun getFinalizeCoroutines ()Z
+ public fun getIncludes ()Ljava/util/Set;
+ public fun getModuleName ()Ljava/lang/String;
+ public fun getModuleVersion ()Ljava/lang/String;
+ public fun getModules ()Ljava/util/List;
+ public fun getOfflineMode ()Z
+ public fun getOutputDir ()Ljava/io/File;
+ public fun getPluginsClasspath ()Ljava/util/List;
+ public fun getPluginsConfiguration ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/List;
+ public fun getSuppressInheritedMembers ()Z
+ public fun getSuppressObviousFunctions ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/DokkaDefaults {
+ public static final field INSTANCE Lorg/jetbrains/dokka/DokkaDefaults;
+ public static final field delayTemplateSubstitution Z
+ public static final field failOnWarning Z
+ public static final field includeNonPublic Z
+ public static final field jdkVersion I
+ public static final field noAndroidSdkLink Z
+ public static final field noJdkLink Z
+ public static final field noStdlibLink Z
+ public static final field offlineMode Z
+ public static final field reportUndocumented Z
+ public static final field skipDeprecated Z
+ public static final field skipEmptyPackages Z
+ public static final field sourceSetDisplayName Ljava/lang/String;
+ public static final field sourceSetName Ljava/lang/String;
+ public static final field suppress Z
+ public static final field suppressGeneratedFiles Z
+ public static final field suppressInheritedMembers Z
+ public static final field suppressObviousFunctions Z
+ public final fun getAnalysisPlatform ()Lorg/jetbrains/dokka/Platform;
+ public final fun getCacheRoot ()Ljava/io/File;
+ public final fun getDocumentedVisibilities ()Ljava/util/Set;
+ public final fun getModuleName ()Ljava/lang/String;
+ public final fun getModuleVersion ()Ljava/lang/String;
+ public final fun getOutputDir ()Ljava/io/File;
+ public final fun getPluginsConfiguration ()Ljava/util/List;
+}
+
+public class org/jetbrains/dokka/DokkaException : java/lang/RuntimeException {
+ public fun <init> (Ljava/lang/String;)V
+}
+
+public final class org/jetbrains/dokka/DokkaGenerator {
+ public fun <init> (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;)V
+ public final fun generate ()V
+ public final fun initializePlugins (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/DokkaContext;
+ public static synthetic fun initializePlugins$default (Lorg/jetbrains/dokka/DokkaGenerator;Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/DokkaContext;
+}
+
+public final class org/jetbrains/dokka/DokkaModuleDescriptionImpl : org/jetbrains/dokka/DokkaConfiguration$DokkaModuleDescription {
+ public fun <init> (Ljava/lang/String;Ljava/io/File;Ljava/util/Set;Ljava/io/File;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/io/File;
+ public final fun component3 ()Ljava/util/Set;
+ public final fun component4 ()Ljava/io/File;
+ public final fun copy (Ljava/lang/String;Ljava/io/File;Ljava/util/Set;Ljava/io/File;)Lorg/jetbrains/dokka/DokkaModuleDescriptionImpl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaModuleDescriptionImpl;Ljava/lang/String;Ljava/io/File;Ljava/util/Set;Ljava/io/File;ILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaModuleDescriptionImpl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getIncludes ()Ljava/util/Set;
+ public fun getName ()Ljava/lang/String;
+ public fun getRelativePathToOutputDirectory ()Ljava/io/File;
+ public fun getSourceOutputDirectory ()Ljava/io/File;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/DokkaSourceSetID : java/io/Serializable {
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaSourceSetID;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaSourceSetID;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getScopeId ()Ljava/lang/String;
+ public final fun getSourceSetName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/DokkaSourceSetImpl : org/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component10 ()Z
+ public final fun component11 ()Z
+ public final fun component12 ()I
+ public final fun component13 ()Ljava/util/Set;
+ public final fun component14 ()Ljava/util/List;
+ public final fun component15 ()Ljava/util/Set;
+ public final fun component16 ()Ljava/lang/String;
+ public final fun component17 ()Ljava/lang/String;
+ public final fun component18 ()Z
+ public final fun component19 ()Z
+ public final fun component2 ()Lorg/jetbrains/dokka/DokkaSourceSetID;
+ public final fun component20 ()Ljava/util/Set;
+ public final fun component21 ()Lorg/jetbrains/dokka/Platform;
+ public final fun component22 ()Ljava/util/Set;
+ public final fun component3 ()Ljava/util/List;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Ljava/util/Set;
+ public final fun component7 ()Ljava/util/Set;
+ public final fun component8 ()Z
+ public final fun component9 ()Z
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;)Lorg/jetbrains/dokka/DokkaSourceSetImpl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaSourceSetImpl;Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaSourceSetImpl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getAnalysisPlatform ()Lorg/jetbrains/dokka/Platform;
+ public fun getApiVersion ()Ljava/lang/String;
+ public fun getClasspath ()Ljava/util/List;
+ public fun getDependentSourceSets ()Ljava/util/Set;
+ public fun getDisplayName ()Ljava/lang/String;
+ public fun getDocumentedVisibilities ()Ljava/util/Set;
+ public fun getExternalDocumentationLinks ()Ljava/util/Set;
+ public fun getIncludeNonPublic ()Z
+ public fun getIncludes ()Ljava/util/Set;
+ public fun getJdkVersion ()I
+ public fun getLanguageVersion ()Ljava/lang/String;
+ public fun getNoJdkLink ()Z
+ public fun getNoStdlibLink ()Z
+ public fun getPerPackageOptions ()Ljava/util/List;
+ public fun getReportUndocumented ()Z
+ public fun getSamples ()Ljava/util/Set;
+ public fun getSkipDeprecated ()Z
+ public fun getSkipEmptyPackages ()Z
+ public fun getSourceLinks ()Ljava/util/Set;
+ public fun getSourceRoots ()Ljava/util/Set;
+ public fun getSourceSetID ()Lorg/jetbrains/dokka/DokkaSourceSetID;
+ public fun getSuppressedFiles ()Ljava/util/Set;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/DokkaVersion {
+ public static final field INSTANCE Lorg/jetbrains/dokka/DokkaVersion;
+ public final fun getVersion ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/ExternalDocumentationLinkImpl : org/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink {
+ public fun <init> (Ljava/net/URL;Ljava/net/URL;)V
+ public final fun component1 ()Ljava/net/URL;
+ public final fun component2 ()Ljava/net/URL;
+ public final fun copy (Ljava/net/URL;Ljava/net/URL;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;Ljava/net/URL;Ljava/net/URL;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getPackageListUrl ()Ljava/net/URL;
+ public fun getUrl ()Ljava/net/URL;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/GlobalDokkaConfiguration {
+ public fun <init> (Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/List;
+ public final fun component3 ()Ljava/util/List;
+ public final fun copy (Ljava/util/List;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/GlobalDokkaConfiguration;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/GlobalDokkaConfiguration;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/GlobalDokkaConfiguration;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getExternalDocumentationLinks ()Ljava/util/List;
+ public final fun getPerPackageOptions ()Ljava/util/List;
+ public final fun getSourceLinks ()Ljava/util/List;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract interface annotation class org/jetbrains/dokka/InternalDokkaApi : java/lang/annotation/Annotation {
+}
+
+public final class org/jetbrains/dokka/PackageOptionsImpl : org/jetbrains/dokka/DokkaConfiguration$PackageOptions {
+ public fun <init> (Ljava/lang/String;ZLjava/lang/Boolean;ZZLjava/util/Set;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Z
+ public final fun component3 ()Ljava/lang/Boolean;
+ public final fun component4 ()Z
+ public final fun component5 ()Z
+ public final fun component6 ()Ljava/util/Set;
+ public final fun copy (Ljava/lang/String;ZLjava/lang/Boolean;ZZLjava/util/Set;)Lorg/jetbrains/dokka/PackageOptionsImpl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/PackageOptionsImpl;Ljava/lang/String;ZLjava/lang/Boolean;ZZLjava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/PackageOptionsImpl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getDocumentedVisibilities ()Ljava/util/Set;
+ public fun getIncludeNonPublic ()Z
+ public fun getMatchingRegex ()Ljava/lang/String;
+ public fun getReportUndocumented ()Ljava/lang/Boolean;
+ public fun getSkipDeprecated ()Z
+ public fun getSuppress ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/Platform : java/lang/Enum {
+ public static final field Companion Lorg/jetbrains/dokka/Platform$Companion;
+ public static final field common Lorg/jetbrains/dokka/Platform;
+ public static final field js Lorg/jetbrains/dokka/Platform;
+ public static final field jvm Lorg/jetbrains/dokka/Platform;
+ public static final field native Lorg/jetbrains/dokka/Platform;
+ public static final field wasm Lorg/jetbrains/dokka/Platform;
+ public final fun getKey ()Ljava/lang/String;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/Platform;
+ public static fun values ()[Lorg/jetbrains/dokka/Platform;
+}
+
+public final class org/jetbrains/dokka/Platform$Companion {
+ public final fun fromString (Ljava/lang/String;)Lorg/jetbrains/dokka/Platform;
+ public final fun getDEFAULT ()Lorg/jetbrains/dokka/Platform;
+}
+
+public final class org/jetbrains/dokka/PluginConfigurationImpl : org/jetbrains/dokka/DokkaConfiguration$PluginConfiguration {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;
+ public final fun component3 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;Ljava/lang/String;)Lorg/jetbrains/dokka/PluginConfigurationImpl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/PluginConfigurationImpl;Ljava/lang/String;Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/PluginConfigurationImpl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getFqPluginName ()Ljava/lang/String;
+ public fun getSerializationFormat ()Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;
+ public fun getValues ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/SourceLinkDefinitionImpl : org/jetbrains/dokka/DokkaConfiguration$SourceLinkDefinition {
+ public static final field Companion Lorg/jetbrains/dokka/SourceLinkDefinitionImpl$Companion;
+ public fun <init> (Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/net/URL;
+ public final fun component3 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;)Lorg/jetbrains/dokka/SourceLinkDefinitionImpl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/SourceLinkDefinitionImpl;Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/SourceLinkDefinitionImpl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getLocalDirectory ()Ljava/lang/String;
+ public fun getRemoteLineSuffix ()Ljava/lang/String;
+ public fun getRemoteUrl ()Ljava/net/URL;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/SourceLinkDefinitionImpl$Companion {
+ public final fun parseSourceLinkDefinition (Ljava/lang/String;)Lorg/jetbrains/dokka/SourceLinkDefinitionImpl;
+}
+
+public final class org/jetbrains/dokka/Timer {
+ public final fun dump (Ljava/lang/String;)V
+ public static synthetic fun dump$default (Lorg/jetbrains/dokka/Timer;Ljava/lang/String;ILjava/lang/Object;)V
+ public final fun report (Ljava/lang/String;)V
+}
+
+public abstract interface class org/jetbrains/dokka/generation/Generation {
+ public abstract fun generate (Lorg/jetbrains/dokka/Timer;)V
+ public abstract fun getGenerationName ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/generation/GenerationKt {
+ public static final fun exitGenerationGracefully (Ljava/lang/String;)Ljava/lang/Void;
+}
+
+public final class org/jetbrains/dokka/generation/GracefulGenerationExit : java/lang/Throwable {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun getReason ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/Callable {
+ public static final field Companion Lorg/jetbrains/dokka/links/Callable$Companion;
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Lorg/jetbrains/dokka/links/TypeReference;
+ public final fun component3 ()Ljava/util/List;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;)Lorg/jetbrains/dokka/links/Callable;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/Callable;Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/Callable;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getName ()Ljava/lang/String;
+ public final fun getParams ()Ljava/util/List;
+ public final fun getReceiver ()Lorg/jetbrains/dokka/links/TypeReference;
+ public fun hashCode ()I
+ public final fun signature ()Ljava/lang/String;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/Callable$Companion {
+}
+
+public final class org/jetbrains/dokka/links/DRI {
+ public static final field Companion Lorg/jetbrains/dokka/links/DRI$Companion;
+ public fun <init> ()V
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;)V
+ public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/links/Callable;
+ public final fun component4 ()Lorg/jetbrains/dokka/links/DriTarget;
+ public final fun component5 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;)Lorg/jetbrains/dokka/links/DRI;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/DRI;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getCallable ()Lorg/jetbrains/dokka/links/Callable;
+ public final fun getClassNames ()Ljava/lang/String;
+ public final fun getExtra ()Ljava/lang/String;
+ public final fun getPackageName ()Ljava/lang/String;
+ public final fun getTarget ()Lorg/jetbrains/dokka/links/DriTarget;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/DRI$Companion {
+ public final fun getTopLevel ()Lorg/jetbrains/dokka/links/DRI;
+}
+
+public final class org/jetbrains/dokka/links/DRIExtraContainer {
+ public fun <init> ()V
+ public fun <init> (Ljava/lang/String;)V
+ public synthetic fun <init> (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun encode ()Ljava/lang/String;
+ public final fun getData ()Ljava/lang/String;
+ public final fun getMap ()Ljava/util/Map;
+}
+
+public abstract class org/jetbrains/dokka/links/DRIExtraProperty {
+ public fun <init> ()V
+ public final fun getKey ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/DRIKt {
+ public static final fun getDriOfAny ()Lorg/jetbrains/dokka/links/DRI;
+ public static final fun getDriOfUnit ()Lorg/jetbrains/dokka/links/DRI;
+ public static final fun getParent (Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/links/DRI;
+ public static final fun getSureClassNames (Lorg/jetbrains/dokka/links/DRI;)Ljava/lang/String;
+ public static final fun nextTarget (Lorg/jetbrains/dokka/links/DriTarget;)Lorg/jetbrains/dokka/links/DriTarget;
+ public static final fun withClass (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;)Lorg/jetbrains/dokka/links/DRI;
+ public static final fun withEnumEntryExtra (Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/links/DRI;
+ public static final fun withTargetToDeclaration (Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/links/DRI;
+}
+
+public abstract class org/jetbrains/dokka/links/DriTarget {
+ public static final field Companion Lorg/jetbrains/dokka/links/DriTarget$Companion;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/DriTarget$Companion {
+}
+
+public final class org/jetbrains/dokka/links/EnumEntryDRIExtra : org/jetbrains/dokka/links/DRIExtraProperty {
+ public static final field INSTANCE Lorg/jetbrains/dokka/links/EnumEntryDRIExtra;
+}
+
+public final class org/jetbrains/dokka/links/JavaClassReference : org/jetbrains/dokka/links/TypeReference {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/links/JavaClassReference;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/JavaClassReference;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/JavaClassReference;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/Nullable : org/jetbrains/dokka/links/TypeReference {
+ public fun <init> (Lorg/jetbrains/dokka/links/TypeReference;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/TypeReference;
+ public final fun copy (Lorg/jetbrains/dokka/links/TypeReference;)Lorg/jetbrains/dokka/links/Nullable;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/Nullable;Lorg/jetbrains/dokka/links/TypeReference;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/Nullable;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getWrapped ()Lorg/jetbrains/dokka/links/TypeReference;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/PointingToCallableParameters : org/jetbrains/dokka/links/DriTarget {
+ public fun <init> (I)V
+ public final fun component1 ()I
+ public final fun copy (I)Lorg/jetbrains/dokka/links/PointingToCallableParameters;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/PointingToCallableParameters;IILjava/lang/Object;)Lorg/jetbrains/dokka/links/PointingToCallableParameters;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getParameterIndex ()I
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/PointingToDeclaration : org/jetbrains/dokka/links/DriTarget {
+ public static final field INSTANCE Lorg/jetbrains/dokka/links/PointingToDeclaration;
+}
+
+public final class org/jetbrains/dokka/links/PointingToGenericParameters : org/jetbrains/dokka/links/DriTarget {
+ public fun <init> (I)V
+ public final fun component1 ()I
+ public final fun copy (I)Lorg/jetbrains/dokka/links/PointingToGenericParameters;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/PointingToGenericParameters;IILjava/lang/Object;)Lorg/jetbrains/dokka/links/PointingToGenericParameters;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getParameterIndex ()I
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/RecursiveType : org/jetbrains/dokka/links/TypeReference {
+ public fun <init> (I)V
+ public final fun component1 ()I
+ public final fun copy (I)Lorg/jetbrains/dokka/links/RecursiveType;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/RecursiveType;IILjava/lang/Object;)Lorg/jetbrains/dokka/links/RecursiveType;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getRank ()I
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/StarProjection : org/jetbrains/dokka/links/TypeReference {
+ public static final field INSTANCE Lorg/jetbrains/dokka/links/StarProjection;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/TypeConstructor : org/jetbrains/dokka/links/TypeReference {
+ public fun <init> (Ljava/lang/String;Ljava/util/List;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/util/List;
+ public final fun copy (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/links/TypeConstructor;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/TypeConstructor;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/TypeConstructor;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getFullyQualifiedName ()Ljava/lang/String;
+ public final fun getParams ()Ljava/util/List;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/links/TypeParam : org/jetbrains/dokka/links/TypeReference {
+ public fun <init> (Ljava/util/List;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/links/TypeParam;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/TypeParam;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/TypeParam;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getBounds ()Ljava/util/List;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/links/TypeReference {
+ public static final field Companion Lorg/jetbrains/dokka/links/TypeReference$Companion;
+}
+
+public final class org/jetbrains/dokka/links/TypeReference$Companion {
+}
+
+public final class org/jetbrains/dokka/model/ActualTypealias : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/ActualTypealias$Companion;
+ public fun <init> (Lorg/jetbrains/dokka/model/DTypeAlias;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/DTypeAlias;
+ public final fun copy (Lorg/jetbrains/dokka/model/DTypeAlias;)Lorg/jetbrains/dokka/model/ActualTypealias;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ActualTypealias;Lorg/jetbrains/dokka/model/DTypeAlias;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ActualTypealias;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public final fun getTypeAlias ()Lorg/jetbrains/dokka/model/DTypeAlias;
+ public final fun getUnderlyingType ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/ActualTypealias$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ActualTypealias;Lorg/jetbrains/dokka/model/ActualTypealias;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/AdditionalExtrasKt {
+ public static final fun toAdditionalModifiers (Ljava/util/Map;)Lorg/jetbrains/dokka/model/AdditionalModifiers;
+ public static final fun toAnnotations (Ljava/util/Map;)Lorg/jetbrains/dokka/model/Annotations;
+}
+
+public final class org/jetbrains/dokka/model/AdditionalModifiers : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/AdditionalModifiers$Companion;
+ public fun <init> (Ljava/util/Map;)V
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getContent ()Ljava/util/Map;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public fun hashCode ()I
+}
+
+public final class org/jetbrains/dokka/model/AdditionalModifiers$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/AdditionalModifiers;Lorg/jetbrains/dokka/model/AdditionalModifiers;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/AncestryNode {
+ public fun <init> (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/AncestryNode;Ljava/util/List;)V
+ public final fun allImplementedInterfaces ()Ljava/util/List;
+ public final fun component1 ()Lorg/jetbrains/dokka/model/TypeConstructor;
+ public final fun component2 ()Lorg/jetbrains/dokka/model/AncestryNode;
+ public final fun component3 ()Ljava/util/List;
+ public final fun copy (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/AncestryNode;Ljava/util/List;)Lorg/jetbrains/dokka/model/AncestryNode;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/AncestryNode;Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/AncestryNode;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/AncestryNode;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getInterfaces ()Ljava/util/List;
+ public final fun getSuperclass ()Lorg/jetbrains/dokka/model/AncestryNode;
+ public final fun getTypeConstructor ()Lorg/jetbrains/dokka/model/TypeConstructor;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/model/AnnotationParameterValue {
+}
+
+public abstract interface class org/jetbrains/dokka/model/AnnotationTarget {
+}
+
+public final class org/jetbrains/dokka/model/AnnotationValue : org/jetbrains/dokka/model/AnnotationParameterValue {
+ public fun <init> (Lorg/jetbrains/dokka/model/Annotations$Annotation;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Annotations$Annotation;
+ public final fun copy (Lorg/jetbrains/dokka/model/Annotations$Annotation;)Lorg/jetbrains/dokka/model/AnnotationValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/AnnotationValue;Lorg/jetbrains/dokka/model/Annotations$Annotation;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/AnnotationValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getAnnotation ()Lorg/jetbrains/dokka/model/Annotations$Annotation;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Annotations : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/Annotations$Companion;
+ public fun <init> (Ljava/util/Map;)V
+ public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/Annotations;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Annotations;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Annotations;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getContent ()Ljava/util/Map;
+ public final fun getDirectAnnotations ()Ljava/util/Map;
+ public final fun getFileLevelAnnotations ()Ljava/util/Map;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Annotations$Annotation {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun component3 ()Z
+ public final fun component4 ()Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;)Lorg/jetbrains/dokka/model/Annotations$Annotation;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Annotations$Annotation;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Annotations$Annotation;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun getMustBeDocumented ()Z
+ public final fun getParams ()Ljava/util/Map;
+ public final fun getScope ()Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Annotations$AnnotationScope : java/lang/Enum {
+ public static final field DIRECT Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+ public static final field FILE Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+ public static final field GETTER Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+ public static final field SETTER Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+ public static fun values ()[Lorg/jetbrains/dokka/model/Annotations$AnnotationScope;
+}
+
+public final class org/jetbrains/dokka/model/Annotations$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/Annotations;Lorg/jetbrains/dokka/model/Annotations;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/ArrayValue : org/jetbrains/dokka/model/AnnotationParameterValue {
+ public fun <init> (Ljava/util/List;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/model/ArrayValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ArrayValue;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ArrayValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()Ljava/util/List;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/BooleanConstant : org/jetbrains/dokka/model/Expression {
+ public fun <init> (Z)V
+ public final fun component1 ()Z
+ public final fun copy (Z)Lorg/jetbrains/dokka/model/BooleanConstant;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/BooleanConstant;ZILjava/lang/Object;)Lorg/jetbrains/dokka/model/BooleanConstant;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/BooleanValue : org/jetbrains/dokka/model/LiteralValue {
+ public fun <init> (Z)V
+ public final fun component1 ()Z
+ public final fun copy (Z)Lorg/jetbrains/dokka/model/BooleanValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/BooleanValue;ZILjava/lang/Object;)Lorg/jetbrains/dokka/model/BooleanValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()Z
+ public fun hashCode ()I
+ public fun text ()Ljava/lang/String;
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/model/Bound : org/jetbrains/dokka/model/Projection {
+}
+
+public abstract interface class org/jetbrains/dokka/model/Callable : org/jetbrains/dokka/model/WithAbstraction, org/jetbrains/dokka/model/WithIsExpectActual, org/jetbrains/dokka/model/WithSources, org/jetbrains/dokka/model/WithType, org/jetbrains/dokka/model/WithVisibility {
+ public abstract fun getReceiver ()Lorg/jetbrains/dokka/model/DParameter;
+}
+
+public final class org/jetbrains/dokka/model/CheckedExceptions : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public static final field Companion Lorg/jetbrains/dokka/model/CheckedExceptions$Companion;
+ public fun <init> (Ljava/util/Map;)V
+ public final fun component1 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/CheckedExceptions;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/CheckedExceptions;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/CheckedExceptions;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getExceptions ()Ljava/util/Map;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public fun hashCode ()I
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ObviousMember;Lorg/jetbrains/dokka/model/ObviousMember;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/CheckedExceptions$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/CheckedExceptions;Lorg/jetbrains/dokka/model/CheckedExceptions;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public abstract interface class org/jetbrains/dokka/model/ClassKind {
+}
+
+public final class org/jetbrains/dokka/model/ClassValue : org/jetbrains/dokka/model/AnnotationParameterValue {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/ClassValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ClassValue;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ClassValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getClassDRI ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun getClassName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/ComplexExpression : org/jetbrains/dokka/model/Expression {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/ComplexExpression;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ComplexExpression;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ComplexExpression;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/CompositeSourceSetID {
+ public fun <init> (Ljava/lang/Iterable;)V
+ public fun <init> (Ljava/util/Set;)V
+ public fun <init> (Lorg/jetbrains/dokka/DokkaSourceSetID;)V
+ public final fun contains (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Z
+ public final fun contains (Lorg/jetbrains/dokka/DokkaSourceSetID;)Z
+ public final fun copy (Ljava/util/Set;)Lorg/jetbrains/dokka/model/CompositeSourceSetID;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/CompositeSourceSetID;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getAll ()Ljava/util/Set;
+ public final fun getMerged ()Lorg/jetbrains/dokka/DokkaSourceSetID;
+ public fun hashCode ()I
+ public final fun plus (Lorg/jetbrains/dokka/DokkaSourceSetID;)Lorg/jetbrains/dokka/model/CompositeSourceSetID;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Contravariance : org/jetbrains/dokka/model/Variance {
+ public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Contravariance;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Contravariance;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Contravariance;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getInner ()Lorg/jetbrains/dokka/model/Bound;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Covariance : org/jetbrains/dokka/model/Variance {
+ public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Covariance;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Covariance;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Covariance;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getInner ()Lorg/jetbrains/dokka/model/Bound;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/DAnnotation : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithConstructors, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component10 ()Lorg/jetbrains/dokka/model/DObject;
+ public final fun component11 ()Ljava/util/List;
+ public final fun component12 ()Ljava/util/List;
+ public final fun component13 ()Ljava/util/Set;
+ public final fun component14 ()Z
+ public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component5 ()Ljava/util/Map;
+ public final fun component6 ()Ljava/util/List;
+ public final fun component7 ()Ljava/util/List;
+ public final fun component8 ()Ljava/util/List;
+ public final fun component9 ()Ljava/util/Map;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DAnnotation;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DAnnotation;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DAnnotation;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getClasslikes ()Ljava/util/List;
+ public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject;
+ public fun getConstructors ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getFunctions ()Ljava/util/List;
+ public fun getGenerics ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getProperties ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun isExpectActual ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DAnnotation;
+}
+
+public final class org/jetbrains/dokka/model/DClass : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithAbstraction, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithConstructors, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component10 ()Ljava/util/List;
+ public final fun component11 ()Ljava/util/Map;
+ public final fun component12 ()Ljava/util/Map;
+ public final fun component13 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component14 ()Ljava/util/Map;
+ public final fun component15 ()Ljava/util/Set;
+ public final fun component16 ()Z
+ public final fun component17 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/util/List;
+ public final fun component4 ()Ljava/util/List;
+ public final fun component5 ()Ljava/util/List;
+ public final fun component6 ()Ljava/util/List;
+ public final fun component7 ()Ljava/util/Map;
+ public final fun component8 ()Ljava/util/Map;
+ public final fun component9 ()Lorg/jetbrains/dokka/model/DObject;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DClass;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DClass;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DClass;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getClasslikes ()Ljava/util/List;
+ public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject;
+ public fun getConstructors ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getFunctions ()Ljava/util/List;
+ public fun getGenerics ()Ljava/util/List;
+ public fun getModifier ()Ljava/util/Map;
+ public fun getName ()Ljava/lang/String;
+ public fun getProperties ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getSupertypes ()Ljava/util/Map;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun isExpectActual ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DClass;
+}
+
+public abstract class org/jetbrains/dokka/model/DClasslike : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithIsExpectActual, org/jetbrains/dokka/model/WithScope, org/jetbrains/dokka/model/WithSources, org/jetbrains/dokka/model/WithVisibility {
+}
+
+public final class org/jetbrains/dokka/model/DEnum : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithConstructors, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component10 ()Ljava/util/Map;
+ public final fun component11 ()Lorg/jetbrains/dokka/model/DObject;
+ public final fun component12 ()Ljava/util/List;
+ public final fun component13 ()Ljava/util/Map;
+ public final fun component14 ()Ljava/util/Set;
+ public final fun component15 ()Z
+ public final fun component16 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/util/List;
+ public final fun component4 ()Ljava/util/Map;
+ public final fun component5 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component6 ()Ljava/util/Map;
+ public final fun component7 ()Ljava/util/List;
+ public final fun component8 ()Ljava/util/List;
+ public final fun component9 ()Ljava/util/List;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnum;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DEnum;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DEnum;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getClasslikes ()Ljava/util/List;
+ public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject;
+ public fun getConstructors ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun getEntries ()Ljava/util/List;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getFunctions ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getProperties ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getSupertypes ()Ljava/util/Map;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun isExpectActual ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnum;
+}
+
+public final class org/jetbrains/dokka/model/DEnumEntry : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithScope, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component5 ()Ljava/util/List;
+ public final fun component6 ()Ljava/util/List;
+ public final fun component7 ()Ljava/util/List;
+ public final fun component8 ()Ljava/util/Set;
+ public final fun component9 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnumEntry;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DEnumEntry;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DEnumEntry;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getClasslikes ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getFunctions ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getProperties ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnumEntry;
+}
+
+public final class org/jetbrains/dokka/model/DFunction : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/Callable, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component10 ()Ljava/util/List;
+ public final fun component11 ()Lorg/jetbrains/dokka/model/DParameter;
+ public final fun component12 ()Ljava/util/Map;
+ public final fun component13 ()Ljava/util/Set;
+ public final fun component14 ()Z
+ public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Z
+ public final fun component4 ()Ljava/util/List;
+ public final fun component5 ()Ljava/util/Map;
+ public final fun component6 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component7 ()Ljava/util/Map;
+ public final fun component8 ()Ljava/util/Map;
+ public final fun component9 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DFunction;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DFunction;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getGenerics ()Ljava/util/List;
+ public fun getModifier ()Ljava/util/Map;
+ public fun getName ()Ljava/lang/String;
+ public final fun getParameters ()Ljava/util/List;
+ public fun getReceiver ()Lorg/jetbrains/dokka/model/DParameter;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getType ()Lorg/jetbrains/dokka/model/Bound;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public final fun isConstructor ()Z
+ public fun isExpectActual ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DFunction;
+}
+
+public final class org/jetbrains/dokka/model/DInterface : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component10 ()Lorg/jetbrains/dokka/model/DObject;
+ public final fun component11 ()Ljava/util/List;
+ public final fun component12 ()Ljava/util/Map;
+ public final fun component13 ()Ljava/util/Set;
+ public final fun component14 ()Z
+ public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component5 ()Ljava/util/Map;
+ public final fun component6 ()Ljava/util/List;
+ public final fun component7 ()Ljava/util/List;
+ public final fun component8 ()Ljava/util/List;
+ public final fun component9 ()Ljava/util/Map;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DInterface;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DInterface;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DInterface;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getClasslikes ()Ljava/util/List;
+ public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getFunctions ()Ljava/util/List;
+ public fun getGenerics ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getProperties ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getSupertypes ()Ljava/util/Map;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun isExpectActual ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DInterface;
+}
+
+public final class org/jetbrains/dokka/model/DModule : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/util/List;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DModule;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DModule;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DModule;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getName ()Ljava/lang/String;
+ public final fun getPackages ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DModule;
+}
+
+public final class org/jetbrains/dokka/model/DObject : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component10 ()Ljava/util/Map;
+ public final fun component11 ()Ljava/util/Set;
+ public final fun component12 ()Z
+ public final fun component13 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component5 ()Ljava/util/Map;
+ public final fun component6 ()Ljava/util/List;
+ public final fun component7 ()Ljava/util/List;
+ public final fun component8 ()Ljava/util/List;
+ public final fun component9 ()Ljava/util/Map;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DObject;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DObject;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DObject;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getClasslikes ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getFunctions ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getProperties ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getSupertypes ()Ljava/util/Map;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun isExpectActual ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DObject;
+}
+
+public final class org/jetbrains/dokka/model/DPackage : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithScope, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/util/List;
+ public final fun component3 ()Ljava/util/List;
+ public final fun component4 ()Ljava/util/List;
+ public final fun component5 ()Ljava/util/List;
+ public final fun component6 ()Ljava/util/Map;
+ public final fun component7 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component8 ()Ljava/util/Set;
+ public final fun component9 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DPackage;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DPackage;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DPackage;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getClasslikes ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getFunctions ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public final fun getPackageName ()Ljava/lang/String;
+ public fun getProperties ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public final fun getTypealiases ()Ljava/util/List;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DPackage;
+}
+
+public final class org/jetbrains/dokka/model/DParameter : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithType, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component5 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun component6 ()Ljava/util/Set;
+ public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DParameter;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DParameter;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getName ()Ljava/lang/String;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getType ()Lorg/jetbrains/dokka/model/Bound;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DParameter;
+}
+
+public final class org/jetbrains/dokka/model/DProperty : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/Callable, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component10 ()Lorg/jetbrains/dokka/model/DFunction;
+ public final fun component11 ()Ljava/util/Map;
+ public final fun component12 ()Ljava/util/Set;
+ public final fun component13 ()Ljava/util/List;
+ public final fun component14 ()Z
+ public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component5 ()Ljava/util/Map;
+ public final fun component6 ()Ljava/util/Map;
+ public final fun component7 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun component8 ()Lorg/jetbrains/dokka/model/DParameter;
+ public final fun component9 ()Lorg/jetbrains/dokka/model/DFunction;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DProperty;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DProperty;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DProperty;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getGenerics ()Ljava/util/List;
+ public final fun getGetter ()Lorg/jetbrains/dokka/model/DFunction;
+ public fun getModifier ()Ljava/util/Map;
+ public fun getName ()Ljava/lang/String;
+ public fun getReceiver ()Lorg/jetbrains/dokka/model/DParameter;
+ public final fun getSetter ()Lorg/jetbrains/dokka/model/DFunction;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getType ()Lorg/jetbrains/dokka/model/Bound;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun isExpectActual ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DProperty;
+}
+
+public final class org/jetbrains/dokka/model/DTypeAlias : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/WithSources, org/jetbrains/dokka/model/WithType, org/jetbrains/dokka/model/WithVisibility, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component10 ()Ljava/util/Map;
+ public final fun component11 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun component4 ()Ljava/util/Map;
+ public final fun component5 ()Ljava/util/Map;
+ public final fun component6 ()Ljava/util/Map;
+ public final fun component7 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component8 ()Ljava/util/Set;
+ public final fun component9 ()Ljava/util/List;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeAlias;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DTypeAlias;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DTypeAlias;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getGenerics ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getSources ()Ljava/util/Map;
+ public fun getType ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun getUnderlyingType ()Ljava/util/Map;
+ public fun getVisibility ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeAlias;
+}
+
+public final class org/jetbrains/dokka/model/DTypeParameter : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun <init> (Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Variance;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun component3 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public final fun component4 ()Ljava/util/List;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeParameter;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DTypeParameter;Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DTypeParameter;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getBounds ()Ljava/util/List;
+ public fun getChildren ()Ljava/util/List;
+ public fun getDocumentation ()Ljava/util/Map;
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getName ()Ljava/lang/String;
+ public fun getSourceSets ()Ljava/util/Set;
+ public final fun getVariantTypeParameter ()Lorg/jetbrains/dokka/model/Variance;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeParameter;
+}
+
+public final class org/jetbrains/dokka/model/DefaultValue : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/DefaultValue$Companion;
+ public fun <init> (Ljava/util/Map;)V
+ public final fun getExpression ()Ljava/util/Map;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public final fun getValue ()Lorg/jetbrains/dokka/model/Expression;
+}
+
+public final class org/jetbrains/dokka/model/DefaultValue$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/DefaultValue;Lorg/jetbrains/dokka/model/DefaultValue;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/DefinitelyNonNullable : org/jetbrains/dokka/model/Bound {
+ public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/DefinitelyNonNullable;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DefinitelyNonNullable;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DefinitelyNonNullable;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getInner ()Lorg/jetbrains/dokka/model/Bound;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/DisplaySourceSet {
+ public fun <init> (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)V
+ public fun <init> (Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/lang/String;Lorg/jetbrains/dokka/Platform;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/CompositeSourceSetID;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/Platform;
+ public final fun copy (Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/lang/String;Lorg/jetbrains/dokka/Platform;)Lorg/jetbrains/dokka/model/DisplaySourceSet;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DisplaySourceSet;Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/lang/String;Lorg/jetbrains/dokka/Platform;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DisplaySourceSet;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getName ()Ljava/lang/String;
+ public final fun getPlatform ()Lorg/jetbrains/dokka/Platform;
+ public final fun getSourceSetIDs ()Lorg/jetbrains/dokka/model/CompositeSourceSetID;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/DisplaySourceSetKt {
+ public static final fun computeSourceSetIds (Ljava/lang/Iterable;)Ljava/util/Set;
+ public static final fun getSourceSetIDs (Ljava/lang/Iterable;)Ljava/util/List;
+ public static final fun toDisplaySourceSet (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Lorg/jetbrains/dokka/model/DisplaySourceSet;
+ public static final fun toDisplaySourceSets (Ljava/lang/Iterable;)Ljava/util/Set;
+}
+
+public abstract class org/jetbrains/dokka/model/Documentable : org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/WithChildren {
+ public fun <init> ()V
+ public fun equals (Ljava/lang/Object;)Z
+ public abstract fun getChildren ()Ljava/util/List;
+ public abstract fun getDocumentation ()Ljava/util/Map;
+ public abstract fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public abstract fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public abstract fun getName ()Ljava/lang/String;
+ public abstract fun getSourceSets ()Ljava/util/Set;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/DocumentableKt {
+ public static final fun dfs (Lorg/jetbrains/dokka/model/Documentable;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/model/Documentable;
+ public static final fun orEmpty (Ljava/util/Map;)Ljava/util/Map;
+ public static final fun withDri (Lorg/jetbrains/dokka/model/Variance;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/Variance;
+}
+
+public abstract interface class org/jetbrains/dokka/model/DocumentableSource {
+ public abstract fun computeLineNumber ()Ljava/lang/Integer;
+ public abstract fun getPath ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/DocumentableUtilsKt {
+ public static final fun filter (Lorg/jetbrains/dokka/model/DTypeParameter;Ljava/util/Set;)Lorg/jetbrains/dokka/model/DTypeParameter;
+ public static final fun filtered (Ljava/util/Map;Ljava/util/Set;)Ljava/util/Map;
+ public static final fun filtered (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;)Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+ public static final fun isExtension (Lorg/jetbrains/dokka/model/Documentable;)Z
+}
+
+public final class org/jetbrains/dokka/model/DoubleConstant : org/jetbrains/dokka/model/Expression {
+ public fun <init> (D)V
+ public final fun component1 ()D
+ public final fun copy (D)Lorg/jetbrains/dokka/model/DoubleConstant;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DoubleConstant;DILjava/lang/Object;)Lorg/jetbrains/dokka/model/DoubleConstant;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()D
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/DoubleValue : org/jetbrains/dokka/model/LiteralValue {
+ public fun <init> (D)V
+ public final fun component1 ()D
+ public final fun copy (D)Lorg/jetbrains/dokka/model/DoubleValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DoubleValue;DILjava/lang/Object;)Lorg/jetbrains/dokka/model/DoubleValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()D
+ public fun hashCode ()I
+ public fun text ()Ljava/lang/String;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Dynamic : org/jetbrains/dokka/model/Bound {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/Dynamic;
+}
+
+public final class org/jetbrains/dokka/model/EnumValue : org/jetbrains/dokka/model/AnnotationParameterValue {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/EnumValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/EnumValue;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/EnumValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getEnumDri ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun getEnumName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/ExceptionInSupertypes : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/ExceptionInSupertypes$Companion;
+ public fun <init> (Ljava/util/Map;)V
+ public final fun component1 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/ExceptionInSupertypes;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ExceptionInSupertypes;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ExceptionInSupertypes;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getExceptions ()Ljava/util/Map;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/ExceptionInSupertypes$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ExceptionInSupertypes;Lorg/jetbrains/dokka/model/ExceptionInSupertypes;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public abstract interface class org/jetbrains/dokka/model/Expression {
+}
+
+public abstract class org/jetbrains/dokka/model/ExtraModifiers {
+ public static final field Companion Lorg/jetbrains/dokka/model/ExtraModifiers$Companion;
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getName ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$Companion {
+ public final fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/ExtraModifiers;
+}
+
+public abstract class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers : org/jetbrains/dokka/model/ExtraModifiers {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Native : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Native;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Static : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Static;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$StrictFP : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$StrictFP;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Synchronized : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Synchronized;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transient : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transient;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transitive : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transitive;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Volatile : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Volatile;
+}
+
+public abstract class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers : org/jetbrains/dokka/model/ExtraModifiers {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Const : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Const;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$CrossInline : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$CrossInline;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Data : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Data;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$External : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$External;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Fun : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Fun;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Infix : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Infix;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inline : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inline;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inner : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inner;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$LateInit : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$LateInit;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$NoInline : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$NoInline;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Operator : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Operator;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Override : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Override;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Reified : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Reified;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Suspend : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Suspend;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$TailRec : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$TailRec;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Value : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Value;
+}
+
+public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$VarArg : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$VarArg;
+}
+
+public final class org/jetbrains/dokka/model/FloatConstant : org/jetbrains/dokka/model/Expression {
+ public fun <init> (F)V
+ public final fun component1 ()F
+ public final fun copy (F)Lorg/jetbrains/dokka/model/FloatConstant;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/FloatConstant;FILjava/lang/Object;)Lorg/jetbrains/dokka/model/FloatConstant;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()F
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/FloatValue : org/jetbrains/dokka/model/LiteralValue {
+ public fun <init> (F)V
+ public final fun component1 ()F
+ public final fun copy (F)Lorg/jetbrains/dokka/model/FloatValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/FloatValue;FILjava/lang/Object;)Lorg/jetbrains/dokka/model/FloatValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()F
+ public fun hashCode ()I
+ public fun text ()Ljava/lang/String;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/FunctionalTypeConstructor : org/jetbrains/dokka/model/TypeConstructor, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/util/List;
+ public final fun component3 ()Z
+ public final fun component4 ()Z
+ public final fun component5 ()Ljava/lang/String;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/FunctionalTypeConstructor;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/FunctionalTypeConstructor;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/FunctionalTypeConstructor;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getPresentableName ()Ljava/lang/String;
+ public fun getProjections ()Ljava/util/List;
+ public fun hashCode ()I
+ public final fun isExtensionFunction ()Z
+ public final fun isSuspendable ()Z
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/FunctionalTypeConstructor;
+}
+
+public final class org/jetbrains/dokka/model/GenericTypeConstructor : org/jetbrains/dokka/model/TypeConstructor, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/util/List;
+ public final fun component3 ()Ljava/lang/String;
+ public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/GenericTypeConstructor;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/GenericTypeConstructor;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/GenericTypeConstructor;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getPresentableName ()Ljava/lang/String;
+ public fun getProjections ()Ljava/util/List;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/GenericTypeConstructor;
+}
+
+public final class org/jetbrains/dokka/model/ImplementedInterfaces : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/ImplementedInterfaces$Companion;
+ public fun <init> (Ljava/util/Map;)V
+ public final fun component1 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/ImplementedInterfaces;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ImplementedInterfaces;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ImplementedInterfaces;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getInterfaces ()Ljava/util/Map;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/ImplementedInterfaces$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ImplementedInterfaces;Lorg/jetbrains/dokka/model/ImplementedInterfaces;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/InheritedMember : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/InheritedMember$Companion;
+ public fun <init> (Ljava/util/Map;)V
+ public final fun component1 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/InheritedMember;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/InheritedMember;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/InheritedMember;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getInheritedFrom ()Ljava/util/Map;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public fun hashCode ()I
+ public final fun isInherited (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Z
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/InheritedMember$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/InheritedMember;Lorg/jetbrains/dokka/model/InheritedMember;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/IntValue : org/jetbrains/dokka/model/LiteralValue {
+ public fun <init> (I)V
+ public final fun component1 ()I
+ public final fun copy (I)Lorg/jetbrains/dokka/model/IntValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/IntValue;IILjava/lang/Object;)Lorg/jetbrains/dokka/model/IntValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()I
+ public fun hashCode ()I
+ public fun text ()Ljava/lang/String;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/IntegerConstant : org/jetbrains/dokka/model/Expression {
+ public fun <init> (J)V
+ public final fun component1 ()J
+ public final fun copy (J)Lorg/jetbrains/dokka/model/IntegerConstant;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/IntegerConstant;JILjava/lang/Object;)Lorg/jetbrains/dokka/model/IntegerConstant;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()J
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Invariance : org/jetbrains/dokka/model/Variance {
+ public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Invariance;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Invariance;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Invariance;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getInner ()Lorg/jetbrains/dokka/model/Bound;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/IsAlsoParameter : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/model/IsAlsoParameter$Companion;
+ public fun <init> (Ljava/util/List;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/model/IsAlsoParameter;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/IsAlsoParameter;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/IsAlsoParameter;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getInSourceSets ()Ljava/util/List;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/IsAlsoParameter$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/IsAlsoParameter;Lorg/jetbrains/dokka/model/IsAlsoParameter;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/IsVar : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/IsVar;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/IsVar;Lorg/jetbrains/dokka/model/IsVar;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/JavaClassKindTypes : java/lang/Enum, org/jetbrains/dokka/model/ClassKind {
+ public static final field ANNOTATION_CLASS Lorg/jetbrains/dokka/model/JavaClassKindTypes;
+ public static final field CLASS Lorg/jetbrains/dokka/model/JavaClassKindTypes;
+ public static final field ENUM_CLASS Lorg/jetbrains/dokka/model/JavaClassKindTypes;
+ public static final field ENUM_ENTRY Lorg/jetbrains/dokka/model/JavaClassKindTypes;
+ public static final field INTERFACE Lorg/jetbrains/dokka/model/JavaClassKindTypes;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/JavaClassKindTypes;
+ public static fun values ()[Lorg/jetbrains/dokka/model/JavaClassKindTypes;
+}
+
+public abstract class org/jetbrains/dokka/model/JavaModifier : org/jetbrains/dokka/model/Modifier {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class org/jetbrains/dokka/model/JavaModifier$Abstract : org/jetbrains/dokka/model/JavaModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaModifier$Abstract;
+}
+
+public final class org/jetbrains/dokka/model/JavaModifier$Empty : org/jetbrains/dokka/model/JavaModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaModifier$Empty;
+}
+
+public final class org/jetbrains/dokka/model/JavaModifier$Final : org/jetbrains/dokka/model/JavaModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaModifier$Final;
+}
+
+public final class org/jetbrains/dokka/model/JavaObject : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> ()V
+ public fun <init> (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/JavaObject;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/JavaObject;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/JavaObject;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/JavaObject;
+}
+
+public abstract class org/jetbrains/dokka/model/JavaVisibility : org/jetbrains/dokka/model/Visibility {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class org/jetbrains/dokka/model/JavaVisibility$Default : org/jetbrains/dokka/model/JavaVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Default;
+}
+
+public final class org/jetbrains/dokka/model/JavaVisibility$Private : org/jetbrains/dokka/model/JavaVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Private;
+}
+
+public final class org/jetbrains/dokka/model/JavaVisibility$Protected : org/jetbrains/dokka/model/JavaVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Protected;
+}
+
+public final class org/jetbrains/dokka/model/JavaVisibility$Public : org/jetbrains/dokka/model/JavaVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Public;
+}
+
+public final class org/jetbrains/dokka/model/JvmFieldKt {
+ public static final field JVM_FIELD_CLASS_NAMES Ljava/lang/String;
+ public static final field JVM_FIELD_PACKAGE_NAME Ljava/lang/String;
+ public static final fun isJvmField (Lorg/jetbrains/dokka/links/DRI;)Z
+ public static final fun isJvmField (Lorg/jetbrains/dokka/model/Annotations$Annotation;)Z
+}
+
+public final class org/jetbrains/dokka/model/JvmNameKt {
+ public static final fun isJvmName (Lorg/jetbrains/dokka/links/DRI;)Z
+ public static final fun isJvmName (Lorg/jetbrains/dokka/model/Annotations$Annotation;)Z
+}
+
+public final class org/jetbrains/dokka/model/KotlinClassKindTypes : java/lang/Enum, org/jetbrains/dokka/model/ClassKind {
+ public static final field ANNOTATION_CLASS Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+ public static final field CLASS Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+ public static final field ENUM_CLASS Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+ public static final field ENUM_ENTRY Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+ public static final field INTERFACE Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+ public static final field OBJECT Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+ public static fun values ()[Lorg/jetbrains/dokka/model/KotlinClassKindTypes;
+}
+
+public abstract class org/jetbrains/dokka/model/KotlinModifier : org/jetbrains/dokka/model/Modifier {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class org/jetbrains/dokka/model/KotlinModifier$Abstract : org/jetbrains/dokka/model/KotlinModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Abstract;
+}
+
+public final class org/jetbrains/dokka/model/KotlinModifier$Empty : org/jetbrains/dokka/model/KotlinModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Empty;
+}
+
+public final class org/jetbrains/dokka/model/KotlinModifier$Final : org/jetbrains/dokka/model/KotlinModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Final;
+}
+
+public final class org/jetbrains/dokka/model/KotlinModifier$Open : org/jetbrains/dokka/model/KotlinModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Open;
+}
+
+public final class org/jetbrains/dokka/model/KotlinModifier$Sealed : org/jetbrains/dokka/model/KotlinModifier {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Sealed;
+}
+
+public abstract class org/jetbrains/dokka/model/KotlinVisibility : org/jetbrains/dokka/model/Visibility {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class org/jetbrains/dokka/model/KotlinVisibility$Internal : org/jetbrains/dokka/model/KotlinVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Internal;
+}
+
+public final class org/jetbrains/dokka/model/KotlinVisibility$Private : org/jetbrains/dokka/model/KotlinVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Private;
+}
+
+public final class org/jetbrains/dokka/model/KotlinVisibility$Protected : org/jetbrains/dokka/model/KotlinVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Protected;
+}
+
+public final class org/jetbrains/dokka/model/KotlinVisibility$Public : org/jetbrains/dokka/model/KotlinVisibility {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Public;
+}
+
+public abstract class org/jetbrains/dokka/model/LiteralValue : org/jetbrains/dokka/model/AnnotationParameterValue {
+ public fun <init> ()V
+ public abstract fun text ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/LongValue : org/jetbrains/dokka/model/LiteralValue {
+ public fun <init> (J)V
+ public final fun component1 ()J
+ public final fun copy (J)Lorg/jetbrains/dokka/model/LongValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/LongValue;JILjava/lang/Object;)Lorg/jetbrains/dokka/model/LongValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()J
+ public fun hashCode ()I
+ public fun text ()Ljava/lang/String;
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/model/Modifier {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getName ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/NullValue : org/jetbrains/dokka/model/LiteralValue {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/NullValue;
+ public fun text ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Nullable : org/jetbrains/dokka/model/Bound {
+ public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Nullable;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Nullable;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Nullable;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getInner ()Lorg/jetbrains/dokka/model/Bound;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/ObviousMember : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/ObviousMember;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ObviousMember;Lorg/jetbrains/dokka/model/ObviousMember;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/PrimaryConstructorExtra : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/PrimaryConstructorExtra;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/PrimaryConstructorExtra;Lorg/jetbrains/dokka/model/PrimaryConstructorExtra;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/PrimitiveJavaType : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/PrimitiveJavaType;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/PrimitiveJavaType;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/PrimitiveJavaType;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/PrimitiveJavaType;
+}
+
+public abstract class org/jetbrains/dokka/model/Projection {
+}
+
+public final class org/jetbrains/dokka/model/Star : org/jetbrains/dokka/model/Projection {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/Star;
+}
+
+public final class org/jetbrains/dokka/model/StringConstant : org/jetbrains/dokka/model/Expression {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/StringConstant;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/StringConstant;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/StringConstant;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/StringValue : org/jetbrains/dokka/model/LiteralValue {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/StringValue;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/StringValue;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/StringValue;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getValue ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun text ()Ljava/lang/String;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/TypeAliased : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun component2 ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun component3 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeAliased;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/TypeAliased;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/TypeAliased;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getInner ()Lorg/jetbrains/dokka/model/Bound;
+ public final fun getTypeAlias ()Lorg/jetbrains/dokka/model/Bound;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeAliased;
+}
+
+public abstract class org/jetbrains/dokka/model/TypeConstructor : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget {
+ public abstract fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public abstract fun getPresentableName ()Ljava/lang/String;
+ public abstract fun getProjections ()Ljava/util/List;
+}
+
+public final class org/jetbrains/dokka/model/TypeConstructorWithKind {
+ public fun <init> (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/ClassKind;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/TypeConstructor;
+ public final fun component2 ()Lorg/jetbrains/dokka/model/ClassKind;
+ public final fun copy (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/ClassKind;)Lorg/jetbrains/dokka/model/TypeConstructorWithKind;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/TypeConstructorWithKind;Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/ClassKind;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/TypeConstructorWithKind;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getKind ()Lorg/jetbrains/dokka/model/ClassKind;
+ public final fun getTypeConstructor ()Lorg/jetbrains/dokka/model/TypeConstructor;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/TypeParameter : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/lang/String;
+ public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeParameter;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/TypeParameter;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/TypeParameter;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getName ()Ljava/lang/String;
+ public final fun getPresentableName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeParameter;
+}
+
+public final class org/jetbrains/dokka/model/UnresolvedBound : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/UnresolvedBound;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/UnresolvedBound;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/UnresolvedBound;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/UnresolvedBound;
+}
+
+public abstract class org/jetbrains/dokka/model/Variance : org/jetbrains/dokka/model/Projection {
+ public abstract fun getInner ()Lorg/jetbrains/dokka/model/Bound;
+}
+
+public abstract class org/jetbrains/dokka/model/Visibility {
+ public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getName ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/Void : org/jetbrains/dokka/model/Bound {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/Void;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithAbstraction {
+ public abstract fun getModifier ()Ljava/util/Map;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithChildren {
+ public abstract fun getChildren ()Ljava/util/List;
+}
+
+public final class org/jetbrains/dokka/model/WithChildrenKt {
+ public static final fun asPrintableTree (Lorg/jetbrains/dokka/model/WithChildren;Lkotlin/jvm/functions/Function2;)Ljava/lang/String;
+ public static synthetic fun asPrintableTree$default (Lorg/jetbrains/dokka/model/WithChildren;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/String;
+ public static final fun dfs (Lorg/jetbrains/dokka/model/WithChildren;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/model/WithChildren;
+ public static final fun withDescendants (Lorg/jetbrains/dokka/model/WithChildren;)Lkotlin/sequences/Sequence;
+ public static final fun withDescendantsAny (Lorg/jetbrains/dokka/model/WithChildren;)Lkotlin/sequences/Sequence;
+ public static final fun withDescendantsProjection (Lorg/jetbrains/dokka/model/WithChildren;)Lkotlin/sequences/Sequence;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithCompanion {
+ public abstract fun getCompanion ()Lorg/jetbrains/dokka/model/DObject;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithConstructors {
+ public abstract fun getConstructors ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithGenerics {
+ public abstract fun getGenerics ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithIsExpectActual {
+ public abstract fun isExpectActual ()Z
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithScope {
+ public abstract fun getClasslikes ()Ljava/util/List;
+ public abstract fun getFunctions ()Ljava/util/List;
+ public abstract fun getProperties ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithSources {
+ public abstract fun getSources ()Ljava/util/Map;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithSupertypes {
+ public abstract fun getSupertypes ()Ljava/util/Map;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithType {
+ public abstract fun getType ()Lorg/jetbrains/dokka/model/Bound;
+}
+
+public abstract interface class org/jetbrains/dokka/model/WithVisibility {
+ public abstract fun getVisibility ()Ljava/util/Map;
+}
+
+public final class org/jetbrains/dokka/model/doc/A : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/A;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/A;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/A;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Author : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Author;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Author;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Author;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/B : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/B;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/B;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/B;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Big : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Big;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Big;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Big;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/BlockQuote : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/BlockQuote;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/BlockQuote;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/BlockQuote;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Br : org/jetbrains/dokka/model/doc/DocTag {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/doc/Br;
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+}
+
+public final class org/jetbrains/dokka/model/doc/Caption : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Caption;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Caption;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Caption;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Cite : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Cite;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Cite;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Cite;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/model/doc/Code : org/jetbrains/dokka/model/doc/DocTag {
+}
+
+public final class org/jetbrains/dokka/model/doc/CodeBlock : org/jetbrains/dokka/model/doc/Code {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/CodeBlock;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CodeBlock;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CodeBlock;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/CodeInline : org/jetbrains/dokka/model/doc/Code {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/CodeInline;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CodeInline;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CodeInline;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Constructor : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Constructor;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Constructor;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Constructor;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/CustomDocTag : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun component3 ()Ljava/lang/String;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/CustomDocTag;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CustomDocTag;Ljava/util/List;Ljava/util/Map;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CustomDocTag;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public final fun getName ()Ljava/lang/String;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/CustomTagWrapper : org/jetbrains/dokka/model/doc/NamedTagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/CustomTagWrapper;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CustomTagWrapper;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CustomTagWrapper;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getName ()Ljava/lang/String;
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Dd : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dd;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dd;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dd;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Deprecated : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Deprecated;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Deprecated;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Deprecated;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Description : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Description;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Description;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Description;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Dfn : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dfn;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dfn;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dfn;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Dir : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dir;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dir;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dir;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Div : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Div;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Div;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Div;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Dl : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dl;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dl;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dl;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/model/doc/DocTag : org/jetbrains/dokka/model/WithChildren {
+ public static final field Companion Lorg/jetbrains/dokka/model/doc/DocTag$Companion;
+ public abstract fun getParams ()Ljava/util/Map;
+}
+
+public final class org/jetbrains/dokka/model/doc/DocTag$Companion {
+ public final fun contentTypeParam (Ljava/lang/String;)Ljava/util/Map;
+}
+
+public final class org/jetbrains/dokka/model/doc/DocumentationLink : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component2 ()Ljava/util/List;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/DocumentationLink;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/DocumentationLink;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/DocumentationLink;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public final fun getDri ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/DocumentationNode : org/jetbrains/dokka/model/WithChildren {
+ public fun <init> (Ljava/util/List;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/model/doc/DocumentationNode;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/DocumentationNode;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/DocumentationNode;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Dt : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dt;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dt;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dt;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Em : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Em;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Em;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Em;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Font : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Font;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Font;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Font;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Footer : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Footer;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Footer;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Footer;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Frame : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Frame;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Frame;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Frame;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/FrameSet : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/FrameSet;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/FrameSet;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/FrameSet;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/H1 : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H1;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H1;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H1;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/H2 : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H2;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H2;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H2;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/H3 : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H3;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H3;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H3;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/H4 : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H4;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H4;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H4;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/H5 : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H5;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H5;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H5;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/H6 : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H6;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H6;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H6;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Head : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Head;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Head;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Head;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Header : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Header;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Header;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Header;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/HorizontalRule : org/jetbrains/dokka/model/doc/DocTag {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/doc/HorizontalRule;
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+}
+
+public final class org/jetbrains/dokka/model/doc/Html : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Html;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Html;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Html;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/I : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/I;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/I;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/I;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/IFrame : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/IFrame;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/IFrame;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/IFrame;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Img : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Img;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Img;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Img;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Index : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Index;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Index;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Index;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Input : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Input;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Input;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Input;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Li : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Li;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Li;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Li;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Link : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Link;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Link;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Link;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Listing : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Listing;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Listing;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Listing;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Main : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Main;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Main;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Main;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Menu : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Menu;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Menu;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Menu;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Meta : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Meta;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Meta;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Meta;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/model/doc/NamedTagWrapper : org/jetbrains/dokka/model/doc/TagWrapper {
+ public abstract fun getName ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Nav : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Nav;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Nav;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Nav;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/NoFrames : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/NoFrames;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/NoFrames;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/NoFrames;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/NoScript : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/NoScript;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/NoScript;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/NoScript;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Ol : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Ol;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Ol;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Ol;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/P : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/P;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/P;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/P;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Param : org/jetbrains/dokka/model/doc/NamedTagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/Param;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Param;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Param;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getName ()Ljava/lang/String;
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Pre : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Pre;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Pre;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Pre;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Property : org/jetbrains/dokka/model/doc/NamedTagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/Property;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Property;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Property;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getName ()Ljava/lang/String;
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Receiver : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Receiver;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Receiver;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Receiver;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Return : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Return;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Return;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Return;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Sample : org/jetbrains/dokka/model/doc/NamedTagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/Sample;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Sample;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Sample;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getName ()Ljava/lang/String;
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Script : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Script;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Script;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Script;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Section : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Section;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Section;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Section;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/See : org/jetbrains/dokka/model/doc/NamedTagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/doc/See;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/See;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/See;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getAddress ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getName ()Ljava/lang/String;
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Since : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Since;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Since;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Since;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Small : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Small;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Small;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Small;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Span : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Span;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Span;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Span;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Strikethrough : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Strikethrough;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Strikethrough;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Strikethrough;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Strong : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Strong;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Strong;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Strong;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Sub : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Sub;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Sub;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Sub;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Sup : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Sup;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Sup;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Sup;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Suppress : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Suppress;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Suppress;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Suppress;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/TBody : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/TBody;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/TBody;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/TBody;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/TFoot : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/TFoot;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/TFoot;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/TFoot;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/THead : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/THead;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/THead;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/THead;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Table : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Table;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Table;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Table;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/model/doc/TagWrapper : org/jetbrains/dokka/model/WithChildren {
+ public fun getChildren ()Ljava/util/List;
+ public abstract fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+}
+
+public final class org/jetbrains/dokka/model/doc/Td : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Td;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Td;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Td;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Text : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/util/List;
+ public final fun component3 ()Ljava/util/Map;
+ public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Text;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Text;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Text;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getBody ()Ljava/lang/String;
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Th : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Th;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Th;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Th;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Throws : org/jetbrains/dokka/model/doc/NamedTagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/doc/Throws;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Throws;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Throws;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getExceptionAddress ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getName ()Ljava/lang/String;
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Title : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Title;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Title;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Title;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Tr : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Tr;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Tr;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Tr;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Tt : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Tt;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Tt;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Tt;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/U : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/U;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/U;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/U;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Ul : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Ul;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Ul;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Ul;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Var : org/jetbrains/dokka/model/doc/DocTag {
+ public fun <init> ()V
+ public fun <init> (Ljava/util/List;Ljava/util/Map;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/util/Map;
+ public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Var;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Var;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Var;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getParams ()Ljava/util/Map;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/doc/Version : org/jetbrains/dokka/model/doc/TagWrapper {
+ public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Version;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Version;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Version;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/dokka/model/properties/CalculatedProperty : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public abstract fun calculate (Ljava/lang/Object;)Ljava/lang/Object;
+}
+
+public final class org/jetbrains/dokka/model/properties/CalculatedProperty$DefaultImpls {
+ public static fun mergeStrategyFor (Lorg/jetbrains/dokka/model/properties/CalculatedProperty;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public abstract interface class org/jetbrains/dokka/model/properties/ExtraProperty {
+ public abstract fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+}
+
+public abstract interface class org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public abstract fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/model/properties/ExtraProperty$Key$DefaultImpls {
+ public static fun mergeStrategyFor (Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public abstract class org/jetbrains/dokka/model/properties/MergeStrategy {
+}
+
+public final class org/jetbrains/dokka/model/properties/MergeStrategy$Fail : org/jetbrains/dokka/model/properties/MergeStrategy {
+ public fun <init> (Lkotlin/jvm/functions/Function0;)V
+ public final fun getError ()Lkotlin/jvm/functions/Function0;
+}
+
+public final class org/jetbrains/dokka/model/properties/MergeStrategy$Full : org/jetbrains/dokka/model/properties/MergeStrategy {
+ public fun <init> (Lkotlin/jvm/functions/Function3;)V
+ public final fun getMerger ()Lkotlin/jvm/functions/Function3;
+}
+
+public final class org/jetbrains/dokka/model/properties/MergeStrategy$Remove : org/jetbrains/dokka/model/properties/MergeStrategy {
+ public static final field INSTANCE Lorg/jetbrains/dokka/model/properties/MergeStrategy$Remove;
+}
+
+public final class org/jetbrains/dokka/model/properties/MergeStrategy$Replace : org/jetbrains/dokka/model/properties/MergeStrategy {
+ public fun <init> (Lorg/jetbrains/dokka/model/properties/ExtraProperty;)V
+ public final fun getNewProperty ()Lorg/jetbrains/dokka/model/properties/ExtraProperty;
+}
+
+public final class org/jetbrains/dokka/model/properties/PropertyContainer {
+ public static final field Companion Lorg/jetbrains/dokka/model/properties/PropertyContainer$Companion;
+ public final fun addAll (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/properties/PropertyContainer;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getMap ()Ljava/util/Map;
+ public fun hashCode ()I
+ public final fun minus (Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun plus (Lorg/jetbrains/dokka/model/properties/ExtraProperty;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/model/properties/PropertyContainer$Companion {
+ public final fun empty ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun withAll (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun withAll ([Lorg/jetbrains/dokka/model/properties/ExtraProperty;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+}
+
+public final class org/jetbrains/dokka/model/properties/PropertyContainerKt {
+ public static final fun mergeExtras (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public static final fun plus (Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/model/properties/ExtraProperty;)Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+}
+
+public abstract interface class org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public abstract fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public abstract fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+}
+
+public final class org/jetbrains/dokka/pages/BasicTabbedContentType : java/lang/Enum, org/jetbrains/dokka/pages/TabbedContentType {
+ public static final field CONSTRUCTOR Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static final field ENTRY Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static final field EXTENSION_FUNCTION Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static final field EXTENSION_PROPERTY Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static final field FUNCTION Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static final field PROPERTY Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static final field TYPE Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+ public static fun values ()[Lorg/jetbrains/dokka/pages/BasicTabbedContentType;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/ClasslikePage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables {
+}
+
+public final class org/jetbrains/dokka/pages/ClasslikePage$DefaultImpls {
+ public static fun getDocumentable (Lorg/jetbrains/dokka/pages/ClasslikePage;)Lorg/jetbrains/dokka/model/Documentable;
+}
+
+public final class org/jetbrains/dokka/pages/ClasslikePageNode : org/jetbrains/dokka/pages/ClasslikePage {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun getChildren ()Ljava/util/List;
+ public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable;
+ public fun getDocumentables ()Ljava/util/List;
+ public fun getDri ()Ljava/util/Set;
+ public fun getEmbeddedResources ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ClasslikePageNode;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+ public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ClasslikePageNode;
+ public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage;
+}
+
+public final class org/jetbrains/dokka/pages/CommentTable : org/jetbrains/dokka/pages/Style {
+ public static final field INSTANCE Lorg/jetbrains/dokka/pages/CommentTable;
+}
+
+public final class org/jetbrains/dokka/pages/ContentBreakLine : org/jetbrains/dokka/pages/ContentNode {
+ public fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/Set;
+ public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component3 ()Ljava/util/Set;
+ public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentBreakLine;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentBreakLine;Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentBreakLine;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentBreakLine;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentBreakLine;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/ContentCode : org/jetbrains/dokka/pages/ContentComposite {
+}
+
+public final class org/jetbrains/dokka/pages/ContentCode$DefaultImpls {
+ public static fun getSourceSets (Lorg/jetbrains/dokka/pages/ContentCode;)Ljava/util/Set;
+ public static fun hasAnyContent (Lorg/jetbrains/dokka/pages/ContentCode;)Z
+}
+
+public final class org/jetbrains/dokka/pages/ContentCodeBlock : org/jetbrains/dokka/pages/ContentCode {
+ public fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeBlock;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentCodeBlock;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentCodeBlock;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getLanguage ()Ljava/lang/String;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentCodeBlock;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeBlock;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentCodeBlock;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentCodeInline : org/jetbrains/dokka/pages/ContentCode {
+ public fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeInline;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentCodeInline;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentCodeInline;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getLanguage ()Ljava/lang/String;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentCodeInline;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeInline;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentCodeInline;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/ContentComposite : org/jetbrains/dokka/pages/ContentNode {
+ public abstract fun getChildren ()Ljava/util/List;
+ public abstract fun getSourceSets ()Ljava/util/Set;
+ public abstract fun hasAnyContent ()Z
+ public abstract fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+}
+
+public final class org/jetbrains/dokka/pages/ContentComposite$DefaultImpls {
+ public static fun getSourceSets (Lorg/jetbrains/dokka/pages/ContentComposite;)Ljava/util/Set;
+ public static fun hasAnyContent (Lorg/jetbrains/dokka/pages/ContentComposite;)Z
+}
+
+public final class org/jetbrains/dokka/pages/ContentDRILink : org/jetbrains/dokka/pages/ContentLink {
+ public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Lorg/jetbrains/dokka/links/DRI;
+ public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDRILink;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDRILink;Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDRILink;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getAddress ()Lorg/jetbrains/dokka/links/DRI;
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentDRILink;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDRILink;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentDRILink;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentDivergentGroup : org/jetbrains/dokka/pages/ContentComposite {
+ public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;Z)V
+ public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component3 ()Ljava/util/Set;
+ public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun component5 ()Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;
+ public final fun component6 ()Z
+ public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;Z)Lorg/jetbrains/dokka/pages/ContentDivergentGroup;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDivergentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;ZILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getGroupID ()Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;
+ public final fun getImplicitlySourceSetHinted ()Z
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentDivergentGroup$GroupID {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/pages/ContentDivergentInstance : org/jetbrains/dokka/pages/ContentComposite {
+ public fun <init> (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public final fun component2 ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public final fun component3 ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public final fun component4 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Ljava/util/Set;
+ public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDivergentInstance;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getAfter ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public final fun getBefore ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun getDivergent ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentEmbeddedResource : org/jetbrains/dokka/pages/ContentLink {
+ public fun <init> (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/lang/String;
+ public final fun component4 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Ljava/util/Set;
+ public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getAddress ()Ljava/lang/String;
+ public final fun getAltText ()Ljava/lang/String;
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentGroup : org/jetbrains/dokka/pages/ContentComposite {
+ public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component3 ()Ljava/util/Set;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentGroup;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentGroup;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentGroup;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentGroup;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentGroup;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentHeader : org/jetbrains/dokka/pages/ContentComposite {
+ public fun <init> (ILorg/jetbrains/dokka/pages/ContentComposite;)V
+ public fun <init> (Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()I
+ public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentHeader;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentHeader;Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentHeader;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getLevel ()I
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentHeader;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentHeader;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentHeader;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentKind : java/lang/Enum, org/jetbrains/dokka/pages/Kind {
+ public static final field Annotations Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field BriefComment Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Classlikes Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Comment Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Companion Lorg/jetbrains/dokka/pages/ContentKind$Companion;
+ public static final field Constructors Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Cover Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Deprecation Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Empty Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Extensions Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Functions Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Inheritors Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Main Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Packages Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Parameters Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Properties Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Sample Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Source Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field SourceSetDependentHint Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field Symbol Lorg/jetbrains/dokka/pages/ContentKind;
+ public static final field TypeAliases Lorg/jetbrains/dokka/pages/ContentKind;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ContentKind;
+ public static fun values ()[Lorg/jetbrains/dokka/pages/ContentKind;
+}
+
+public final class org/jetbrains/dokka/pages/ContentKind$Companion {
+ public final fun shouldBePlatformTagged (Lorg/jetbrains/dokka/pages/Kind;)Z
+}
+
+public abstract interface class org/jetbrains/dokka/pages/ContentLink : org/jetbrains/dokka/pages/ContentComposite {
+}
+
+public final class org/jetbrains/dokka/pages/ContentLink$DefaultImpls {
+ public static fun getSourceSets (Lorg/jetbrains/dokka/pages/ContentLink;)Ljava/util/Set;
+ public static fun hasAnyContent (Lorg/jetbrains/dokka/pages/ContentLink;)Z
+}
+
+public final class org/jetbrains/dokka/pages/ContentList : org/jetbrains/dokka/pages/ContentComposite {
+ public fun <init> (Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Z
+ public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentList;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentList;Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentList;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getOrdered ()Z
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentList;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentList;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentList;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/ContentNode : org/jetbrains/dokka/model/WithChildren, org/jetbrains/dokka/model/properties/WithExtraProperties {
+ public abstract fun getChildren ()Ljava/util/List;
+ public abstract fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public abstract fun getSourceSets ()Ljava/util/Set;
+ public abstract fun getStyle ()Ljava/util/Set;
+ public abstract fun hasAnyContent ()Z
+ public abstract fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public final class org/jetbrains/dokka/pages/ContentNode$DefaultImpls {
+ public static fun getChildren (Lorg/jetbrains/dokka/pages/ContentNode;)Ljava/util/List;
+}
+
+public final class org/jetbrains/dokka/pages/ContentNodesKt {
+ public static final fun hasStyle (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/Style;)Z
+}
+
+public abstract interface class org/jetbrains/dokka/pages/ContentPage : org/jetbrains/dokka/pages/PageNode {
+ public abstract fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public abstract fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable;
+ public abstract fun getDri ()Ljava/util/Set;
+ public abstract fun getEmbeddedResources ()Ljava/util/List;
+ public abstract fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage;
+}
+
+public final class org/jetbrains/dokka/pages/ContentPage$DefaultImpls {
+ public static fun getDocumentable (Lorg/jetbrains/dokka/pages/ContentPage;)Lorg/jetbrains/dokka/model/Documentable;
+ public static synthetic fun modified$default (Lorg/jetbrains/dokka/pages/ContentPage;Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentPage;
+}
+
+public final class org/jetbrains/dokka/pages/ContentResolvedLink : org/jetbrains/dokka/pages/ContentLink {
+ public fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentResolvedLink;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentResolvedLink;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentResolvedLink;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getAddress ()Ljava/lang/String;
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentResolvedLink;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentResolvedLink;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentResolvedLink;
+}
+
+public final class org/jetbrains/dokka/pages/ContentStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style {
+ public static final field Caption Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field Footnote Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field InDocumentationAnchor Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field Indented Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field KDocTag Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field RowTitle Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field RunnableSample Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field TabbedContent Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field WithExtraAttributes Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static final field Wrapped Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ContentStyle;
+ public static fun values ()[Lorg/jetbrains/dokka/pages/ContentStyle;
+}
+
+public final class org/jetbrains/dokka/pages/ContentTable : org/jetbrains/dokka/pages/ContentComposite {
+ public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/util/List;
+ public final fun component2 ()Lorg/jetbrains/dokka/pages/ContentGroup;
+ public final fun component3 ()Ljava/util/List;
+ public final fun component4 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component5 ()Ljava/util/Set;
+ public final fun component6 ()Ljava/util/Set;
+ public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentTable;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentTable;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentTable;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getCaption ()Lorg/jetbrains/dokka/pages/ContentGroup;
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getHeader ()Ljava/util/List;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentTable;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentTable;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentTable;
+}
+
+public final class org/jetbrains/dokka/pages/ContentText : org/jetbrains/dokka/pages/ContentNode {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI;
+ public final fun component3 ()Ljava/util/Set;
+ public final fun component4 ()Ljava/util/Set;
+ public final fun component5 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentText;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentText;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentText;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public final fun getText ()Ljava/lang/String;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentText;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentText;
+}
+
+public final class org/jetbrains/dokka/pages/DCI {
+ public fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;)V
+ public final fun component1 ()Ljava/util/Set;
+ public final fun component2 ()Lorg/jetbrains/dokka/pages/Kind;
+ public final fun copy (Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;)Lorg/jetbrains/dokka/pages/DCI;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/DCI;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getDri ()Ljava/util/Set;
+ public final fun getKind ()Lorg/jetbrains/dokka/pages/Kind;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/DriResolver : kotlin/jvm/functions/Function2 {
+}
+
+public final class org/jetbrains/dokka/pages/HtmlContent : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public static final field INSTANCE Lorg/jetbrains/dokka/pages/HtmlContent;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/HtmlContent;Lorg/jetbrains/dokka/pages/HtmlContent;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/Kind {
+}
+
+public final class org/jetbrains/dokka/pages/ListStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style {
+ public static final field DescriptionDetails Lorg/jetbrains/dokka/pages/ListStyle;
+ public static final field DescriptionList Lorg/jetbrains/dokka/pages/ListStyle;
+ public static final field DescriptionTerm Lorg/jetbrains/dokka/pages/ListStyle;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ListStyle;
+ public static fun values ()[Lorg/jetbrains/dokka/pages/ListStyle;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/MemberPage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables {
+}
+
+public final class org/jetbrains/dokka/pages/MemberPage$DefaultImpls {
+ public static fun getDocumentable (Lorg/jetbrains/dokka/pages/MemberPage;)Lorg/jetbrains/dokka/model/Documentable;
+}
+
+public final class org/jetbrains/dokka/pages/MemberPageNode : org/jetbrains/dokka/pages/MemberPage {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun getChildren ()Ljava/util/List;
+ public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable;
+ public fun getDocumentables ()Ljava/util/List;
+ public fun getDri ()Ljava/util/Set;
+ public fun getEmbeddedResources ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/MemberPageNode;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+ public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage;
+ public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/MemberPageNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/ModulePage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables {
+}
+
+public final class org/jetbrains/dokka/pages/ModulePage$DefaultImpls {
+ public static fun getDocumentable (Lorg/jetbrains/dokka/pages/ModulePage;)Lorg/jetbrains/dokka/model/Documentable;
+}
+
+public final class org/jetbrains/dokka/pages/ModulePageNode : org/jetbrains/dokka/pages/RootPageNode, org/jetbrains/dokka/pages/ModulePage {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun getChildren ()Ljava/util/List;
+ public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable;
+ public fun getDocumentables ()Ljava/util/List;
+ public fun getDri ()Ljava/util/Set;
+ public fun getEmbeddedResources ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ModulePageNode;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode;
+ public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage;
+ public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ModulePageNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/MultimoduleRootPage : org/jetbrains/dokka/pages/ContentPage {
+}
+
+public final class org/jetbrains/dokka/pages/MultimoduleRootPage$DefaultImpls {
+ public static fun getDocumentable (Lorg/jetbrains/dokka/pages/MultimoduleRootPage;)Lorg/jetbrains/dokka/model/Documentable;
+}
+
+public final class org/jetbrains/dokka/pages/MultimoduleRootPageNode : org/jetbrains/dokka/pages/RootPageNode, org/jetbrains/dokka/pages/MultimoduleRootPage {
+ public fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;)V
+ public synthetic fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun getChildren ()Ljava/util/List;
+ public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable;
+ public fun getDri ()Ljava/util/Set;
+ public fun getEmbeddedResources ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+ public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode;
+ public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage;
+}
+
+public final class org/jetbrains/dokka/pages/MultimoduleTable : org/jetbrains/dokka/pages/Style {
+ public static final field INSTANCE Lorg/jetbrains/dokka/pages/MultimoduleTable;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/PackagePage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables {
+}
+
+public final class org/jetbrains/dokka/pages/PackagePage$DefaultImpls {
+ public static fun getDocumentable (Lorg/jetbrains/dokka/pages/PackagePage;)Lorg/jetbrains/dokka/model/Documentable;
+}
+
+public final class org/jetbrains/dokka/pages/PackagePageNode : org/jetbrains/dokka/pages/PackagePage {
+ public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
+ public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun getChildren ()Ljava/util/List;
+ public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable;
+ public fun getDocumentables ()Ljava/util/List;
+ public fun getDri ()Ljava/util/Set;
+ public fun getEmbeddedResources ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PackagePageNode;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+ public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage;
+ public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PackagePageNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/PageNode : org/jetbrains/dokka/model/WithChildren {
+ public abstract fun getChildren ()Ljava/util/List;
+ public abstract fun getName ()Ljava/lang/String;
+ public abstract fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+}
+
+public final class org/jetbrains/dokka/pages/PageNode$DefaultImpls {
+ public static synthetic fun modified$default (Lorg/jetbrains/dokka/pages/PageNode;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/PageNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/PageResolver : kotlin/jvm/functions/Function2 {
+}
+
+public final class org/jetbrains/dokka/pages/PlatformHintedContent : org/jetbrains/dokka/pages/ContentComposite {
+ public fun <init> (Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;)V
+ public final fun component1 ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public final fun component2 ()Ljava/util/Set;
+ public final fun copy (Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;)Lorg/jetbrains/dokka/pages/PlatformHintedContent;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/PlatformHintedContent;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/PlatformHintedContent;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getChildren ()Ljava/util/List;
+ public fun getDci ()Lorg/jetbrains/dokka/pages/DCI;
+ public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer;
+ public final fun getInner ()Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun getSourceSets ()Ljava/util/Set;
+ public fun getStyle ()Ljava/util/Set;
+ public fun hasAnyContent ()Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+ public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite;
+ public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/PlatformHintedContent;
+ public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object;
+ public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentNode;
+ public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode;
+ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/PlatformHintedContent;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/RendererSpecificPage : org/jetbrains/dokka/pages/PageNode {
+ public abstract fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy;
+}
+
+public final class org/jetbrains/dokka/pages/RendererSpecificResourcePage : org/jetbrains/dokka/pages/RendererSpecificPage {
+ public fun <init> (Ljava/lang/String;Ljava/util/List;Lorg/jetbrains/dokka/pages/RenderingStrategy;)V
+ public fun getChildren ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+ public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RendererSpecificResourcePage;
+}
+
+public final class org/jetbrains/dokka/pages/RendererSpecificRootPage : org/jetbrains/dokka/pages/RootPageNode, org/jetbrains/dokka/pages/RendererSpecificPage {
+ public fun <init> (Ljava/lang/String;Ljava/util/List;Lorg/jetbrains/dokka/pages/RenderingStrategy;)V
+ public fun getChildren ()Ljava/util/List;
+ public fun getName ()Ljava/lang/String;
+ public fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode;
+ public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RendererSpecificRootPage;
+ public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode;
+}
+
+public abstract class org/jetbrains/dokka/pages/RenderingStrategy {
+ public static final field Companion Lorg/jetbrains/dokka/pages/RenderingStrategy$Companion;
+}
+
+public final class org/jetbrains/dokka/pages/RenderingStrategy$Callback : org/jetbrains/dokka/pages/RenderingStrategy {
+ public fun <init> (Lkotlin/jvm/functions/Function2;)V
+ public final fun getInstructions ()Lkotlin/jvm/functions/Function2;
+}
+
+public final class org/jetbrains/dokka/pages/RenderingStrategy$Companion {
+}
+
+public final class org/jetbrains/dokka/pages/RenderingStrategy$Copy : org/jetbrains/dokka/pages/RenderingStrategy {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Copy;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$Copy;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Copy;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getFrom ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/pages/RenderingStrategy$DoNothing : org/jetbrains/dokka/pages/RenderingStrategy {
+ public static final field INSTANCE Lorg/jetbrains/dokka/pages/RenderingStrategy$DoNothing;
+}
+
+public final class org/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite : org/jetbrains/dokka/pages/RenderingStrategy {
+ public fun <init> (Lkotlin/jvm/functions/Function1;)V
+ public final fun component1 ()Lkotlin/jvm/functions/Function1;
+ public final fun copy (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getContentToResolve ()Lkotlin/jvm/functions/Function1;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite : org/jetbrains/dokka/pages/RenderingStrategy {
+ public fun <init> (Lkotlin/jvm/functions/Function1;)V
+ public final fun component1 ()Lkotlin/jvm/functions/Function1;
+ public final fun copy (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getContentToResolve ()Lkotlin/jvm/functions/Function1;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/pages/RenderingStrategy$Write : org/jetbrains/dokka/pages/RenderingStrategy {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Write;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$Write;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Write;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getText ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract class org/jetbrains/dokka/pages/RootPageNode : org/jetbrains/dokka/pages/PageNode {
+ public fun <init> ()V
+ public fun <init> (Z)V
+ public synthetic fun <init> (ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getForceTopLevelName ()Z
+ public final fun getParentMap ()Ljava/util/Map;
+ public abstract fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode;
+ public final fun transformContentPagesTree (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RootPageNode;
+ public final fun transformPageNodeTree (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RootPageNode;
+}
+
+public final class org/jetbrains/dokka/pages/SimpleAttr : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
+ public final fun getExtraKey ()Ljava/lang/String;
+ public final fun getExtraValue ()Ljava/lang/String;
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+}
+
+public final class org/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public fun <init> (Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getKey ()Ljava/lang/String;
+ public fun hashCode ()I
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/SimpleAttr;Lorg/jetbrains/dokka/pages/SimpleAttr;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/Style {
+}
+
+public final class org/jetbrains/dokka/pages/SymbolContentKind : java/lang/Enum, org/jetbrains/dokka/pages/Kind {
+ public static final field Parameter Lorg/jetbrains/dokka/pages/SymbolContentKind;
+ public static final field Parameters Lorg/jetbrains/dokka/pages/SymbolContentKind;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/SymbolContentKind;
+ public static fun values ()[Lorg/jetbrains/dokka/pages/SymbolContentKind;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/TabbedContentType {
+}
+
+public final class org/jetbrains/dokka/pages/TabbedContentTypeExtra : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra$Companion;
+ public fun <init> (Lorg/jetbrains/dokka/pages/TabbedContentType;)V
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public final fun getValue ()Lorg/jetbrains/dokka/pages/TabbedContentType;
+}
+
+public final class org/jetbrains/dokka/pages/TabbedContentTypeExtra$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra;Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/pages/TextStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style {
+ public static final field Block Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Bold Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Breakable Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field BreakableAfter Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Cover Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field FloatingRight Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Indented Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field InlineComment Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Italic Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Monospace Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Paragraph Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Quotation Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Span Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Strikethrough Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Strong Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field UnderCoverText Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Underlined Lorg/jetbrains/dokka/pages/TextStyle;
+ public static final field Var Lorg/jetbrains/dokka/pages/TextStyle;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/TextStyle;
+ public static fun values ()[Lorg/jetbrains/dokka/pages/TextStyle;
+}
+
+public final class org/jetbrains/dokka/pages/TokenStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style {
+ public static final field Annotation Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field Boolean Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field Constant Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field Function Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field Keyword Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field Number Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field Operator Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field Punctuation Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static final field String Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/TokenStyle;
+ public static fun values ()[Lorg/jetbrains/dokka/pages/TokenStyle;
+}
+
+public final class org/jetbrains/dokka/pages/UtilsKt {
+ public static final fun mapTransform (Lorg/jetbrains/dokka/pages/ContentNode;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentNode;
+ public static final fun recursiveMapTransform (Lorg/jetbrains/dokka/pages/ContentNode;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentNode;
+}
+
+public abstract interface class org/jetbrains/dokka/pages/WithDocumentables {
+ public abstract fun getDocumentables ()Ljava/util/List;
+}
+
+public final class org/jetbrains/dokka/pages/WrongRendererTypeException : java/lang/Exception {
+ public fun <init> (Lkotlin/reflect/KClass;)V
+ public final fun component1 ()Lkotlin/reflect/KClass;
+ public final fun copy (Lkotlin/reflect/KClass;)Lorg/jetbrains/dokka/pages/WrongRendererTypeException;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/WrongRendererTypeException;Lkotlin/reflect/KClass;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/WrongRendererTypeException;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getExpectedType ()Lkotlin/reflect/KClass;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/dokka/plugability/ConfigurableBlock {
+}
+
+public abstract interface class org/jetbrains/dokka/plugability/DokkaContext {
+ public static final field Companion Lorg/jetbrains/dokka/plugability/DokkaContext$Companion;
+ public abstract fun get (Lorg/jetbrains/dokka/plugability/ExtensionPoint;)Ljava/util/List;
+ public abstract fun getConfiguration ()Lorg/jetbrains/dokka/DokkaConfiguration;
+ public abstract fun getLogger ()Lorg/jetbrains/dokka/utilities/DokkaLogger;
+ public abstract fun getUnusedPoints ()Ljava/util/Collection;
+ public abstract fun plugin (Lkotlin/reflect/KClass;)Lorg/jetbrains/dokka/plugability/DokkaPlugin;
+ public abstract fun single (Lorg/jetbrains/dokka/plugability/ExtensionPoint;)Ljava/lang/Object;
+}
+
+public final class org/jetbrains/dokka/plugability/DokkaContext$Companion {
+ public final fun create (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/DokkaContext;
+}
+
+public abstract interface class org/jetbrains/dokka/plugability/DokkaContextConfiguration {
+ public abstract fun installExtension (Lorg/jetbrains/dokka/plugability/Extension;)V
+}
+
+public abstract class org/jetbrains/dokka/plugability/DokkaJavaPlugin : org/jetbrains/dokka/plugability/DokkaPlugin {
+ public fun <init> ()V
+ public final fun extend (Lkotlin/jvm/functions/Function1;)Lkotlin/Lazy;
+ public final fun plugin (Ljava/lang/Class;)Lorg/jetbrains/dokka/plugability/DokkaPlugin;
+}
+
+public abstract class org/jetbrains/dokka/plugability/DokkaPlugin {
+ public fun <init> ()V
+ protected final fun extending (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/DokkaPlugin$ExtensionProvider;
+ protected final fun extensionPoint ()Lkotlin/properties/ReadOnlyProperty;
+ public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext;
+ protected final fun getLogger ()Lorg/jetbrains/dokka/utilities/DokkaLogger;
+ protected abstract fun pluginApiPreviewAcknowledgement ()Lorg/jetbrains/dokka/plugability/PluginApiPreviewAcknowledgement;
+ public final fun setContext (Lorg/jetbrains/dokka/plugability/DokkaContext;)V
+ protected final fun unsafeInstall (Lkotlin/Lazy;)V
+}
+
+protected final class org/jetbrains/dokka/plugability/DokkaPlugin$ExtensionProvider {
+ public final fun provideDelegate (Lorg/jetbrains/dokka/plugability/DokkaPlugin;Lkotlin/reflect/KProperty;)Lkotlin/Lazy;
+}
+
+public abstract interface annotation class org/jetbrains/dokka/plugability/DokkaPluginApiPreview : java/lang/annotation/Annotation {
+}
+
+public final class org/jetbrains/dokka/plugability/DokkaPluginKt {
+ public static final fun throwIllegalQuery ()Ljava/lang/Void;
+}
+
+public final class org/jetbrains/dokka/plugability/ExtendingDSL {
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
+ public final fun applyIf (Lorg/jetbrains/dokka/plugability/Extension;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/Extension;
+ public final fun order (Lorg/jetbrains/dokka/plugability/Extension;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/Extension;
+ public final fun override (Lorg/jetbrains/dokka/plugability/Extension;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/Extension;
+ public final fun override (Lorg/jetbrains/dokka/plugability/Extension;Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/Extension;
+ public final fun providing (Lorg/jetbrains/dokka/plugability/ExtensionPoint;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/Extension;
+ public final fun with (Lorg/jetbrains/dokka/plugability/ExtensionPoint;Ljava/lang/Object;)Lorg/jetbrains/dokka/plugability/Extension;
+}
+
+public final class org/jetbrains/dokka/plugability/Extension {
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getCondition ()Lkotlin/jvm/functions/Function1;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/plugability/ExtensionBuilder {
+ public final fun addCondition (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public final fun after ([Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public final fun before ([Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public final fun build ()Lorg/jetbrains/dokka/plugability/Extension;
+ public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/plugability/ExtensionPoint;Lorg/jetbrains/dokka/plugability/LazyEvaluated;Ljava/util/List;Ljava/util/List;Lorg/jetbrains/dokka/plugability/OverrideKind;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/plugability/ExtensionBuilder;Ljava/lang/String;Lorg/jetbrains/dokka/plugability/ExtensionPoint;Lorg/jetbrains/dokka/plugability/LazyEvaluated;Ljava/util/List;Ljava/util/List;Lorg/jetbrains/dokka/plugability/OverrideKind;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun hashCode ()I
+ public final fun name (Ljava/lang/String;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public final fun newOrdering ([Lorg/jetbrains/dokka/plugability/Extension;[Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public final fun overrideExtension (Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/plugability/ExtensionBuilderStart {
+ public final fun extensionPoint (Lorg/jetbrains/dokka/plugability/ExtensionPoint;)Lorg/jetbrains/dokka/plugability/ProvidedExtension;
+}
+
+public final class org/jetbrains/dokka/plugability/ExtensionPoint {
+ public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/plugability/ExtensionPoint;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public abstract interface annotation class org/jetbrains/dokka/plugability/ExtensionsDsl : java/lang/annotation/Annotation {
+}
+
+public final class org/jetbrains/dokka/plugability/OrderDsl {
+ public fun <init> ()V
+ public final fun after ([Lorg/jetbrains/dokka/plugability/Extension;)V
+ public final fun before ([Lorg/jetbrains/dokka/plugability/Extension;)V
+}
+
+public abstract class org/jetbrains/dokka/plugability/OrderingKind {
+}
+
+public final class org/jetbrains/dokka/plugability/OrderingKind$ByDsl : org/jetbrains/dokka/plugability/OrderingKind {
+ public fun <init> (Lkotlin/jvm/functions/Function1;)V
+ public final fun getBlock ()Lkotlin/jvm/functions/Function1;
+}
+
+public final class org/jetbrains/dokka/plugability/OrderingKind$None : org/jetbrains/dokka/plugability/OrderingKind {
+ public static final field INSTANCE Lorg/jetbrains/dokka/plugability/OrderingKind$None;
+}
+
+public abstract class org/jetbrains/dokka/plugability/OverrideKind {
+}
+
+public final class org/jetbrains/dokka/plugability/OverrideKind$None : org/jetbrains/dokka/plugability/OverrideKind {
+ public static final field INSTANCE Lorg/jetbrains/dokka/plugability/OverrideKind$None;
+}
+
+public final class org/jetbrains/dokka/plugability/OverrideKind$Present : org/jetbrains/dokka/plugability/OverrideKind {
+ public fun <init> (Ljava/util/List;)V
+ public final fun getOverriden ()Ljava/util/List;
+}
+
+public final class org/jetbrains/dokka/plugability/PluginApiPreviewAcknowledgement {
+ public static final field INSTANCE Lorg/jetbrains/dokka/plugability/PluginApiPreviewAcknowledgement;
+}
+
+public final class org/jetbrains/dokka/plugability/ProvidedExtension {
+ public final fun fromInstance (Ljava/lang/Object;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public final fun fromRecipe (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder;
+ public final fun getExt ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
+}
+
+public abstract interface class org/jetbrains/dokka/plugability/WithUnsafeExtensionSuppression {
+ public abstract fun getExtensionsSuppressed ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/dokka/renderers/PostAction : kotlin/jvm/functions/Function0 {
+}
+
+public abstract interface class org/jetbrains/dokka/renderers/Renderer {
+ public abstract fun render (Lorg/jetbrains/dokka/pages/RootPageNode;)V
+}
+
+public final class org/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier : org/jetbrains/dokka/model/properties/ExtraProperty {
+ public static final field Companion Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier$Companion;
+ public fun <init> (Ljava/util/Set;)V
+ public final fun component1 ()Ljava/util/Set;
+ public final fun copy (Ljava/util/Set;)Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;
+ public fun equals (Ljava/lang/Object;)Z
+ public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;
+ public final fun getValue ()Ljava/util/Set;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key {
+ public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+ public fun mergeStrategyFor (Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;)Lorg/jetbrains/dokka/model/properties/MergeStrategy;
+}
+
+public final class org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger : org/jetbrains/dokka/transformers/documentation/DocumentableMerger {
+ public fun <init> (Lorg/jetbrains/dokka/plugability/DokkaContext;)V
+ public fun invoke (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/DModule;
+ public final fun mergeWith (Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;)Lorg/jetbrains/dokka/model/DFunction;
+ public final fun mergeWith (Lorg/jetbrains/dokka/model/DPackage;Lorg/jetbrains/dokka/model/DPackage;)Lorg/jetbrains/dokka/model/DPackage;
+ public final fun mergeWith (Lorg/jetbrains/dokka/model/DProperty;Lorg/jetbrains/dokka/model/DProperty;)Lorg/jetbrains/dokka/model/DProperty;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/documentation/DocumentableMerger {
+ public abstract fun invoke (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/DModule;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator {
+ public abstract fun invoke (Lorg/jetbrains/dokka/model/DModule;)Lorg/jetbrains/dokka/pages/RootPageNode;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/documentation/DocumentableTransformer {
+ public abstract fun invoke (Lorg/jetbrains/dokka/model/DModule;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer {
+ public abstract fun invoke (Ljava/util/List;)Ljava/util/List;
+}
+
+public final class org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformerKt {
+ public static final fun perPackageOptions (Lorg/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer;Lorg/jetbrains/dokka/model/Documentable;)Lorg/jetbrains/dokka/DokkaConfiguration$PackageOptions;
+ public static final fun source (Lorg/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer;Lorg/jetbrains/dokka/model/Documentable;)Lorg/jetbrains/dokka/model/DocumentableSource;
+ public static final fun sourceSet (Lorg/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer;Lorg/jetbrains/dokka/model/Documentable;)Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/pages/CreationContext {
+}
+
+public final class org/jetbrains/dokka/transformers/pages/NoCreationContext : org/jetbrains/dokka/transformers/pages/CreationContext {
+ public static final field INSTANCE Lorg/jetbrains/dokka/transformers/pages/NoCreationContext;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/pages/PageCreator {
+ public abstract fun invoke (Lorg/jetbrains/dokka/transformers/pages/CreationContext;)Lorg/jetbrains/dokka/pages/RootPageNode;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/pages/PageTransformer {
+ public abstract fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode;
+}
+
+public final class org/jetbrains/dokka/transformers/pages/PageTransformerBuildersKt {
+ public static final fun alterChildren (Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/PageNode;
+ public static final fun invokeOnAll (Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/PageNode;
+ public static final fun pageMapper (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/transformers/pages/PageTransformer;
+ public static final fun pageScanner (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/transformers/pages/PageTransformer;
+ public static final fun pageStructureTransformer (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/transformers/pages/PageTransformer;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator : org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator {
+ public abstract fun invoke (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule;
+ public abstract fun invokeSuspending (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+}
+
+public final class org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator$DefaultImpls {
+ public static fun invoke (Lorg/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule;
+}
+
+public abstract interface class org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator {
+ public abstract fun invoke (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule;
+}
+
+public final class org/jetbrains/dokka/utilities/AssociateWithNotNullKt {
+ public static final fun associateWithNotNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function1;)Ljava/util/Map;
+}
+
+public final class org/jetbrains/dokka/utilities/DokkaConsoleLogger : org/jetbrains/dokka/utilities/DokkaLogger {
+ public fun <init> ()V
+ public fun <init> (Lorg/jetbrains/dokka/utilities/LoggingLevel;Lorg/jetbrains/dokka/utilities/MessageEmitter;)V
+ public synthetic fun <init> (Lorg/jetbrains/dokka/utilities/LoggingLevel;Lorg/jetbrains/dokka/utilities/MessageEmitter;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun debug (Ljava/lang/String;)V
+ public fun error (Ljava/lang/String;)V
+ public fun getErrorsCount ()I
+ public fun getWarningsCount ()I
+ public fun info (Ljava/lang/String;)V
+ public fun progress (Ljava/lang/String;)V
+ public fun setErrorsCount (I)V
+ public fun setWarningsCount (I)V
+ public fun warn (Ljava/lang/String;)V
+}
+
+public abstract interface class org/jetbrains/dokka/utilities/DokkaLogger {
+ public abstract fun debug (Ljava/lang/String;)V
+ public abstract fun error (Ljava/lang/String;)V
+ public abstract fun getErrorsCount ()I
+ public abstract fun getWarningsCount ()I
+ public abstract fun info (Ljava/lang/String;)V
+ public abstract fun progress (Ljava/lang/String;)V
+ public abstract fun setErrorsCount (I)V
+ public abstract fun setWarningsCount (I)V
+ public abstract fun warn (Ljava/lang/String;)V
+}
+
+public final class org/jetbrains/dokka/utilities/DokkaLoggingKt {
+ public static final fun report (Lorg/jetbrains/dokka/utilities/DokkaLogger;)V
+}
+
+public final class org/jetbrains/dokka/utilities/HtmlKt {
+ public static final fun formatToEndWithHtml (Ljava/lang/String;)Ljava/lang/String;
+ public static final fun htmlEscape (Ljava/lang/String;)Ljava/lang/String;
+ public static final fun urlEncoded (Ljava/lang/String;)Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/utilities/JsonKt {
+ public static final fun parseJson (Ljava/lang/String;Lorg/jetbrains/dokka/utilities/TypeReference;)Ljava/lang/Object;
+ public static final fun toJsonString (Ljava/lang/Object;)Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/utilities/LoggingLevel : java/lang/Enum {
+ public static final field DEBUG Lorg/jetbrains/dokka/utilities/LoggingLevel;
+ public static final field ERROR Lorg/jetbrains/dokka/utilities/LoggingLevel;
+ public static final field INFO Lorg/jetbrains/dokka/utilities/LoggingLevel;
+ public static final field PROGRESS Lorg/jetbrains/dokka/utilities/LoggingLevel;
+ public static final field WARN Lorg/jetbrains/dokka/utilities/LoggingLevel;
+ public final fun getIndex ()I
+ public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/utilities/LoggingLevel;
+ public static fun values ()[Lorg/jetbrains/dokka/utilities/LoggingLevel;
+}
+
+public abstract interface class org/jetbrains/dokka/utilities/MessageEmitter : kotlin/jvm/functions/Function1 {
+ public static final field Companion Lorg/jetbrains/dokka/utilities/MessageEmitter$Companion;
+}
+
+public final class org/jetbrains/dokka/utilities/MessageEmitter$Companion {
+ public final fun getConsoleEmitter ()Lorg/jetbrains/dokka/utilities/MessageEmitter;
+}
+
+public final class org/jetbrains/dokka/utilities/ParallelCollectionOperationsKt {
+ public static final fun parallelForEach (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+ public static final fun parallelMap (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+ public static final fun parallelMapNotNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+}
+
+public abstract interface class org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet : java/util/Set, kotlin/jvm/internal/markers/KMappedMarker {
+ public abstract fun contains (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Z
+ public abstract fun containsAll (Ljava/util/Collection;)Z
+ public abstract fun getSize ()I
+ public abstract fun isEmpty ()Z
+ public abstract fun iterator ()Ljava/util/Iterator;
+}
+
+public final class org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet$DefaultImpls {
+ public static fun contains (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Z
+ public static fun containsAll (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;Ljava/util/Collection;)Z
+ public static fun getSize (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)I
+ public static fun isEmpty (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Z
+ public static fun iterator (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Ljava/util/Iterator;
+}
+
+public final class org/jetbrains/dokka/utilities/ServiceDescriptor {
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun component3 ()Ljava/lang/String;
+ public final fun component4 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/utilities/ServiceDescriptor;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/utilities/ServiceDescriptor;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/utilities/ServiceDescriptor;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getCategory ()Ljava/lang/String;
+ public final fun getClassName ()Ljava/lang/String;
+ public final fun getDescription ()Ljava/lang/String;
+ public final fun getName ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/dokka/utilities/ServiceLocator {
+ public static final field INSTANCE Lorg/jetbrains/dokka/utilities/ServiceLocator;
+ public final fun allServices (Ljava/lang/String;)Ljava/util/List;
+ public final fun lookup (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
+ public final fun lookup (Ljava/lang/Class;Lorg/jetbrains/dokka/utilities/ServiceDescriptor;)Ljava/lang/Object;
+ public final fun toFile (Ljava/net/URL;)Ljava/io/File;
+}
+
+public final class org/jetbrains/dokka/utilities/ServiceLookupException : java/lang/Exception {
+ public fun <init> (Ljava/lang/String;)V
+}
+
+public final class org/jetbrains/dokka/utilities/TypeReference {
+ public static final field Companion Lorg/jetbrains/dokka/utilities/TypeReference$Companion;
+ public fun <init> (Lcom/fasterxml/jackson/core/type/TypeReference;)V
+}
+
+public final class org/jetbrains/dokka/utilities/TypeReference$Companion {
+}
+
+public final class org/jetbrains/dokka/utilities/UriKt {
+ public static final fun relativeTo (Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;
+}
+
+public abstract interface class org/jetbrains/dokka/validity/PreGenerationChecker : kotlin/jvm/functions/Function0 {
+ public abstract fun invoke ()Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput;
+}
+
+public final class org/jetbrains/dokka/validity/PreGenerationCheckerOutput {
+ public fun <init> (ZLjava/util/List;)V
+ public final fun component1 ()Z
+ public final fun component2 ()Ljava/util/List;
+ public final fun copy (ZLjava/util/List;)Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput;ZLjava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getMessages ()Ljava/util/List;
+ public final fun getResult ()Z
+ public fun hashCode ()I
+ public final fun plus (Lkotlin/Pair;)Lkotlin/Pair;
+ public fun toString ()Ljava/lang/String;
+}
+
diff --git a/dokka-subprojects/core/build.gradle.kts b/dokka-subprojects/core/build.gradle.kts
new file mode 100644
index 00000000..407d7ff6
--- /dev/null
+++ b/dokka-subprojects/core/build.gradle.kts
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+import dokkabuild.overridePublicationArtifactId
+
+plugins {
+ id("dokkabuild.kotlin-jvm")
+ id("dokkabuild.publish-jvm")
+}
+
+overridePublicationArtifactId("dokka-core")
+
+dependencies {
+ implementation(kotlin("reflect"))
+ implementation(libs.kotlinx.coroutines.core)
+ implementation(libs.jackson.kotlin)
+ implementation(libs.jackson.xml)
+ constraints {
+ implementation(libs.jackson.databind) {
+ because("CVE-2022-42003")
+ }
+ }
+
+ testImplementation(kotlin("test"))
+ testImplementation(projects.dokkaSubprojects.coreTestApi)
+}
+
+tasks {
+ processResources {
+ inputs.property("dokkaVersion", project.version)
+ eachFile {
+ if (name == "dokka-version.properties") {
+ filter { line ->
+ line.replace("<dokka-version>", project.version.toString())
+ }
+ }
+ }
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/ConfigurationJsonUtils.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/ConfigurationJsonUtils.kt
new file mode 100644
index 00000000..e693f4ef
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/ConfigurationJsonUtils.kt
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import org.jetbrains.dokka.plugability.ConfigurableBlock
+import org.jetbrains.dokka.utilities.parseJson
+import org.jetbrains.dokka.utilities.serializeAsCompactJson
+import org.jetbrains.dokka.utilities.serializeAsPrettyJson
+
+public fun DokkaConfigurationImpl(json: String): DokkaConfigurationImpl = parseJson(json)
+
+public fun GlobalDokkaConfiguration(json: String): GlobalDokkaConfiguration = parseJson(json)
+
+@Deprecated("Renamed to better distinguish between compact/pretty prints", ReplaceWith("this.toCompactJsonString()"))
+public fun DokkaConfiguration.toJsonString(): String = this.toCompactJsonString()
+
+@Deprecated("Renamed to better distinguish between compact/pretty prints", ReplaceWith("this.toCompactJsonString()"))
+public fun <T : ConfigurableBlock> T.toJsonString(): String = this.toCompactJsonString()
+
+/**
+ * Serializes [DokkaConfiguration] as a machine-readable and compact JSON string.
+ *
+ * The returned string is not very human friendly as it will be difficult to parse by eyes due to it
+ * being compact and in one line. If you want to show the output to a human being, see [toPrettyJsonString].
+ */
+public fun DokkaConfiguration.toCompactJsonString(): String = serializeAsCompactJson(this)
+
+/**
+ * Serializes [DokkaConfiguration] as a human-readable (pretty printed) JSON string.
+ *
+ * The returned string will have excessive line breaks and indents, which might not be
+ * desirable when passing this value between API consumers/producers. If you want
+ * a machine-readable and compact json string, see [toCompactJsonString].
+ */
+public fun DokkaConfiguration.toPrettyJsonString(): String = serializeAsPrettyJson(this)
+
+/**
+ * Serializes a [ConfigurableBlock] as a machine-readable and compact JSON string.
+ *
+ * The returned string is not very human friendly as it will be difficult to parse by eyes due to it
+ * being compact and in one line. If you want to show the output to a human being, see [toPrettyJsonString].
+ */
+public fun <T : ConfigurableBlock> T.toCompactJsonString(): String = serializeAsCompactJson(this)
+
+/**
+ * Serializes a [ConfigurableBlock] as a human-readable (pretty printed) JSON string.
+ *
+ * The returned string will have excessive line breaks and indents, which might not be
+ * desirable when passing this value between API consumers/producers. If you want
+ * a machine-readable and compact json string, see [toCompactJsonString].
+ */
+public fun <T : ConfigurableBlock> T.toPrettyJsonString(): String = serializeAsCompactJson(this)
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/CoreExtensions.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/CoreExtensions.kt
new file mode 100644
index 00000000..ca2504e2
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/CoreExtensions.kt
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import org.jetbrains.dokka.generation.Generation
+import org.jetbrains.dokka.plugability.ExtensionPoint
+import org.jetbrains.dokka.renderers.PostAction
+import org.jetbrains.dokka.renderers.Renderer
+import org.jetbrains.dokka.transformers.documentation.DocumentableMerger
+import org.jetbrains.dokka.transformers.documentation.DocumentableToPageTranslator
+import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer
+import org.jetbrains.dokka.transformers.pages.PageTransformer
+import org.jetbrains.dokka.transformers.sources.SourceToDocumentableTranslator
+import org.jetbrains.dokka.validity.PreGenerationChecker
+import kotlin.reflect.KProperty
+
+public object CoreExtensions {
+
+ public val preGenerationCheck: ExtensionPoint<PreGenerationChecker> by coreExtensionPoint<PreGenerationChecker>()
+
+ public val generation: ExtensionPoint<Generation> by coreExtensionPoint<Generation>()
+
+ public val sourceToDocumentableTranslator: ExtensionPoint<SourceToDocumentableTranslator> by coreExtensionPoint<SourceToDocumentableTranslator>()
+
+ public val documentableMerger: ExtensionPoint<DocumentableMerger> by coreExtensionPoint<DocumentableMerger>()
+
+ public val documentableTransformer: ExtensionPoint<DocumentableTransformer> by coreExtensionPoint<DocumentableTransformer>()
+
+ public val documentableToPageTranslator: ExtensionPoint<DocumentableToPageTranslator> by coreExtensionPoint<DocumentableToPageTranslator>()
+
+ public val pageTransformer: ExtensionPoint<PageTransformer> by coreExtensionPoint<PageTransformer>()
+
+ public val renderer: ExtensionPoint<Renderer> by coreExtensionPoint<Renderer>()
+
+ public val postActions: ExtensionPoint<PostAction> by coreExtensionPoint<PostAction>()
+
+ private fun <T : Any> coreExtensionPoint() = object {
+ operator fun provideDelegate(thisRef: CoreExtensions, property: KProperty<*>): Lazy<ExtensionPoint<T>> =
+ lazy { ExtensionPoint(thisRef::class.qualifiedName!!, property.name) }
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrap.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrap.kt
new file mode 100644
index 00000000..d3d82e39
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrap.kt
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import java.util.function.BiConsumer
+
+public interface DokkaBootstrap {
+ @Throws(Throwable::class)
+ public fun configure(serializedConfigurationJSON: String, logger: BiConsumer<String, String>)
+
+ @Throws(Throwable::class)
+ public fun generate()
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrapImpl.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrapImpl.kt
new file mode 100644
index 00000000..65f0ef72
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrapImpl.kt
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import org.jetbrains.dokka.utilities.DokkaLogger
+import java.util.concurrent.atomic.AtomicInteger
+
+import java.util.function.BiConsumer
+
+/**
+ * Accessed with reflection
+ */
+@Suppress("unused")
+public class DokkaBootstrapImpl : DokkaBootstrap {
+
+ public class DokkaProxyLogger(
+ public val consumer: BiConsumer<String, String>
+ ) : DokkaLogger {
+ private val warningsCounter = AtomicInteger()
+ private val errorsCounter = AtomicInteger()
+
+ override var warningsCount: Int
+ get() = warningsCounter.get()
+ set(value) = warningsCounter.set(value)
+
+ override var errorsCount: Int
+ get() = errorsCounter.get()
+ set(value) = errorsCounter.set(value)
+
+ override fun debug(message: String) {
+ consumer.accept("debug", message)
+ }
+
+ override fun info(message: String) {
+ consumer.accept("info", message)
+ }
+
+ override fun progress(message: String) {
+ consumer.accept("progress", message)
+ }
+
+ override fun warn(message: String) {
+ consumer.accept("warn", message).also { warningsCounter.incrementAndGet() }
+ }
+
+ override fun error(message: String) {
+ consumer.accept("error", message).also { errorsCounter.incrementAndGet() }
+ }
+ }
+
+ private lateinit var generator: DokkaGenerator
+
+ public fun configure(logger: DokkaLogger, configuration: DokkaConfigurationImpl) {
+ generator = DokkaGenerator(configuration, logger)
+ }
+
+ override fun configure(serializedConfigurationJSON: String, logger: BiConsumer<String, String>) {
+ configure(
+ DokkaProxyLogger(logger),
+ DokkaConfigurationImpl(serializedConfigurationJSON)
+ )
+ }
+
+ override fun generate() {
+ generator.generate()
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaException.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaException.kt
new file mode 100644
index 00000000..f16a2649
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaException.kt
@@ -0,0 +1,7 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+public open class DokkaException(message: String) : RuntimeException(message)
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaGenerator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaGenerator.kt
new file mode 100644
index 00000000..9ae3adb4
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaGenerator.kt
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+@file:Suppress("SameParameterValue")
+
+package org.jetbrains.dokka
+
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.Dispatchers
+import org.jetbrains.dokka.generation.GracefulGenerationExit
+import org.jetbrains.dokka.plugability.DokkaContext
+import org.jetbrains.dokka.plugability.DokkaPlugin
+import org.jetbrains.dokka.utilities.DokkaLogger
+
+/**
+ * DokkaGenerator is the main entry point for generating documentation
+ *
+ * [generate] method has been split into submethods for test reasons
+ */
+public class DokkaGenerator(
+ private val configuration: DokkaConfiguration,
+ private val logger: DokkaLogger
+) {
+
+ public fun generate() {
+ timed(logger) {
+ report("Initializing plugins")
+ val context = initializePlugins(configuration, logger)
+
+ runCatching {
+ context.single(CoreExtensions.generation).run {
+ logger.progress("Dokka is performing: $generationName")
+ generate()
+ }
+ }.exceptionOrNull()?.let { e ->
+ finalizeCoroutines()
+ throw e
+ }
+
+ finalizeCoroutines()
+ }.dump("\n\n === TIME MEASUREMENT ===\n")
+ }
+
+ public fun initializePlugins(
+ configuration: DokkaConfiguration,
+ logger: DokkaLogger,
+ additionalPlugins: List<DokkaPlugin> = emptyList()
+ ): DokkaContext = DokkaContext.create(configuration, logger, additionalPlugins)
+
+ @OptIn(DelicateCoroutinesApi::class)
+ private fun finalizeCoroutines() {
+ if (configuration.finalizeCoroutines) {
+ Dispatchers.shutdown()
+ }
+ }
+}
+
+public class Timer internal constructor(startTime: Long, private val logger: DokkaLogger?) {
+ private val steps = mutableListOf("" to startTime)
+
+ public fun report(name: String) {
+ logger?.progress(name)
+ steps += (name to System.currentTimeMillis())
+ }
+
+ public fun dump(prefix: String = "") {
+ logger?.info(prefix)
+ val namePad = steps.map { it.first.length }.maxOrNull() ?: 0
+ val timePad = steps.windowed(2).map { (p1, p2) -> p2.second - p1.second }.maxOrNull()?.toString()?.length ?: 0
+ steps.windowed(2).forEach { (p1, p2) ->
+ if (p1.first.isNotBlank()) {
+ logger?.info("${p1.first.padStart(namePad)}: ${(p2.second - p1.second).toString().padStart(timePad)}")
+ }
+ }
+ }
+}
+
+private fun timed(logger: DokkaLogger? = null, block: Timer.() -> Unit): Timer =
+ Timer(System.currentTimeMillis(), logger).apply {
+ try {
+ block()
+ } catch (exit: GracefulGenerationExit) {
+ report("Exiting Generation: ${exit.reason}")
+ } finally {
+ report("")
+ }
+ }
+
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaVersion.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaVersion.kt
new file mode 100644
index 00000000..d846988b
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaVersion.kt
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import java.util.*
+
+public object DokkaVersion {
+ public val version: String by lazy {
+ javaClass.getResourceAsStream("/META-INF/dokka/dokka-version.properties").use { stream ->
+ Properties().apply { load(stream) }.getProperty("dokka-version")
+ }
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/InternalDokkaApi.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/InternalDokkaApi.kt
new file mode 100644
index 00000000..65c0427c
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/InternalDokkaApi.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+
+/**
+ * Marks declarations that are **internal** to Dokka core artifact.
+ * It means that this API is marked as **public** either for historical or technical reasons.
+ * It is not intended to be used outside of the Dokka project, has no behaviour guarantees,
+ * and may lack clear semantics, documentation and backward compatibility.
+ *
+ * If you are using such API, it is strongly suggested to migrate from it in order
+ * to keep backwards compatibility with future Dokka versions.
+ * Typically, the easiest way to do so is to copy-paste the corresponding utility into
+ * your own project.
+ */
+@RequiresOptIn(
+ level = RequiresOptIn.Level.ERROR,
+ message = "This is an internal Dokka API not intended for public use"
+)
+@Target(
+ AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.FIELD,
+ AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS
+)
+@Retention(AnnotationRetention.BINARY)
+public annotation class InternalDokkaApi()
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/configuration.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/configuration.kt
new file mode 100644
index 00000000..65035d04
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/configuration.kt
@@ -0,0 +1,280 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import org.jetbrains.dokka.utilities.cast
+import java.io.File
+import java.io.Serializable
+import java.net.URL
+
+public object DokkaDefaults {
+ public val moduleName: String = "root"
+ public val moduleVersion: String? = null
+ public val outputDir: File = File("./dokka")
+ public const val failOnWarning: Boolean = false
+ public const val suppressObviousFunctions: Boolean = true
+ public const val suppressInheritedMembers: Boolean = false
+ public const val offlineMode: Boolean = false
+
+ public const val sourceSetDisplayName: String = "JVM"
+ public const val sourceSetName: String = "main"
+ public val analysisPlatform: Platform = Platform.DEFAULT
+
+ public const val suppress: Boolean = false
+ public const val suppressGeneratedFiles: Boolean = true
+
+ public const val skipEmptyPackages: Boolean = true
+ public const val skipDeprecated: Boolean = false
+
+ public const val reportUndocumented: Boolean = false
+
+ public const val noStdlibLink: Boolean = false
+ public const val noAndroidSdkLink: Boolean = false
+ public const val noJdkLink: Boolean = false
+ public const val jdkVersion: Int = 8
+
+ public const val includeNonPublic: Boolean = false
+ public val documentedVisibilities: Set<DokkaConfiguration.Visibility> = setOf(DokkaConfiguration.Visibility.PUBLIC)
+
+ public val pluginsConfiguration: List<PluginConfigurationImpl> = mutableListOf()
+
+ public const val delayTemplateSubstitution: Boolean = false
+
+ public val cacheRoot: File? = null
+}
+
+public enum class Platform(
+ public val key: String
+) {
+ jvm("jvm"),
+ js("js"),
+ wasm("wasm"),
+ native("native"),
+ common("common");
+
+ public companion object {
+ public val DEFAULT: Platform = jvm
+
+ public fun fromString(key: String): Platform {
+ return when (key.toLowerCase()) {
+ jvm.key -> jvm
+ js.key -> js
+ wasm.key -> wasm
+ native.key -> native
+ common.key -> common
+ "androidjvm", "android" -> jvm
+ "metadata" -> common
+ else -> throw IllegalArgumentException("Unrecognized platform: $key")
+ }
+ }
+ }
+}
+
+public fun interface DokkaConfigurationBuilder<T : Any> {
+ public fun build(): T
+}
+
+public fun <T : Any> Iterable<DokkaConfigurationBuilder<T>>.build(): List<T> = this.map { it.build() }
+
+public data class DokkaSourceSetID(
+ /**
+ * Unique identifier of the scope that this source set is placed in.
+ * Each scope provide only unique source set names.
+ *
+ * E.g. One DokkaTask inside the Gradle plugin represents one source set scope, since there cannot be multiple
+ * source sets with the same name. However, a Gradle project will not be a proper scope, since there can be
+ * multple DokkaTasks that contain source sets with the same name (but different configuration)
+ */
+ val scopeId: String,
+ val sourceSetName: String
+) : Serializable {
+ override fun toString(): String {
+ return "$scopeId/$sourceSetName"
+ }
+}
+
+/**
+ * Global options can be configured and applied to all packages and modules at once, overwriting package configuration.
+ *
+ * These are handy if we have multiple source sets sharing the same global options as it reduces the size of the
+ * boilerplate. Otherwise, the user would be forced to repeat all these options for each source set.
+ *
+ * @see [apply] to learn how to apply global configuration
+ */
+public data class GlobalDokkaConfiguration(
+ val perPackageOptions: List<PackageOptionsImpl>?,
+ val externalDocumentationLinks: List<ExternalDocumentationLinkImpl>?,
+ val sourceLinks: List<SourceLinkDefinitionImpl>?
+)
+
+public fun DokkaConfiguration.apply(globals: GlobalDokkaConfiguration): DokkaConfiguration = this.apply {
+ sourceSets.forEach {
+ it.perPackageOptions.cast<MutableList<DokkaConfiguration.PackageOptions>>()
+ .addAll(globals.perPackageOptions ?: emptyList())
+ }
+
+ sourceSets.forEach {
+ it.externalDocumentationLinks.cast<MutableSet<DokkaConfiguration.ExternalDocumentationLink>>()
+ .addAll(globals.externalDocumentationLinks ?: emptyList())
+ }
+
+ sourceSets.forEach {
+ it.sourceLinks.cast<MutableSet<SourceLinkDefinitionImpl>>().addAll(globals.sourceLinks ?: emptyList())
+ }
+}
+
+public interface DokkaConfiguration : Serializable {
+ public val moduleName: String
+ public val moduleVersion: String?
+ public val outputDir: File
+ public val cacheRoot: File?
+ public val offlineMode: Boolean
+ public val failOnWarning: Boolean
+ public val sourceSets: List<DokkaSourceSet>
+ public val modules: List<DokkaModuleDescription>
+ public val pluginsClasspath: List<File>
+ public val pluginsConfiguration: List<PluginConfiguration>
+ public val delayTemplateSubstitution: Boolean
+ public val suppressObviousFunctions: Boolean
+ public val includes: Set<File>
+ public val suppressInheritedMembers: Boolean
+
+ /**
+ * Whether coroutines dispatchers should be shutdown after
+ * generating documentation via [DokkaGenerator.generate].
+ *
+ * It effectively stops all background threads associated with
+ * coroutines in order to make classes unloadable by the JVM,
+ * and rejects all new tasks with [RejectedExecutionException]
+ *
+ * This is primarily useful for multi-module builds where coroutines
+ * can be shut down after each module's partial task to avoid
+ * possible memory leaks.
+ *
+ * However, this can lead to problems in specific lifecycles where
+ * coroutines are shared and will be reused after documentation generation,
+ * and closing it down will leave the build in an inoperable state.
+ * One such example is unit tests, for which finalization should be disabled.
+ */
+ public val finalizeCoroutines: Boolean
+
+ public enum class SerializationFormat : Serializable {
+ JSON, XML
+ }
+
+ public interface PluginConfiguration : Serializable {
+ public val fqPluginName: String
+ public val serializationFormat: SerializationFormat
+ public val values: String
+ }
+
+ public interface DokkaSourceSet : Serializable {
+ public val sourceSetID: DokkaSourceSetID
+ public val displayName: String
+ public val classpath: List<File>
+ public val sourceRoots: Set<File>
+ public val dependentSourceSets: Set<DokkaSourceSetID>
+ public val samples: Set<File>
+ public val includes: Set<File>
+
+ @Deprecated(message = "Use [documentedVisibilities] property for a more flexible control over documented visibilities")
+ public val includeNonPublic: Boolean
+ public val reportUndocumented: Boolean
+ public val skipEmptyPackages: Boolean
+ public val skipDeprecated: Boolean
+ public val jdkVersion: Int
+ public val sourceLinks: Set<SourceLinkDefinition>
+ public val perPackageOptions: List<PackageOptions>
+ public val externalDocumentationLinks: Set<ExternalDocumentationLink>
+ public val languageVersion: String?
+ public val apiVersion: String?
+ public val noStdlibLink: Boolean
+ public val noJdkLink: Boolean
+ public val suppressedFiles: Set<File>
+ public val analysisPlatform: Platform
+ public val documentedVisibilities: Set<Visibility>
+ }
+
+ public enum class Visibility {
+ /**
+ * `public` modifier for Java, default visibility for Kotlin
+ */
+ PUBLIC,
+
+ /**
+ * `private` modifier for both Kotlin and Java
+ */
+ PRIVATE,
+
+ /**
+ * `protected` modifier for both Kotlin and Java
+ */
+ PROTECTED,
+
+ /**
+ * Kotlin-specific `internal` modifier
+ */
+ INTERNAL,
+
+ /**
+ * Java-specific package-private visibility (no modifier)
+ */
+ PACKAGE;
+
+ public companion object {
+ public fun fromString(value: String): Visibility = valueOf(value.toUpperCase())
+ }
+ }
+
+ public interface SourceLinkDefinition : Serializable {
+ public val localDirectory: String
+ public val remoteUrl: URL
+ public val remoteLineSuffix: String?
+ }
+
+ public interface DokkaModuleDescription : Serializable {
+ public val name: String
+ public val relativePathToOutputDirectory: File
+ public val sourceOutputDirectory: File
+ public val includes: Set<File>
+ }
+
+ public interface PackageOptions : Serializable {
+ public val matchingRegex: String
+
+ @Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities")
+ public val includeNonPublic: Boolean
+ public val reportUndocumented: Boolean?
+ public val skipDeprecated: Boolean
+ public val suppress: Boolean
+ public val documentedVisibilities: Set<Visibility>
+ }
+
+ public interface ExternalDocumentationLink : Serializable {
+ public val url: URL
+ public val packageListUrl: URL
+
+ public companion object
+ }
+}
+
+@Suppress("FunctionName")
+public fun ExternalDocumentationLink(
+ url: URL? = null,
+ packageListUrl: URL? = null
+): ExternalDocumentationLinkImpl {
+ return if (packageListUrl != null && url != null)
+ ExternalDocumentationLinkImpl(url, packageListUrl)
+ else if (url != null)
+ ExternalDocumentationLinkImpl(url, URL(url, "package-list"))
+ else
+ throw IllegalArgumentException("url or url && packageListUrl must not be null for external documentation link")
+}
+
+@Suppress("FunctionName")
+public fun ExternalDocumentationLink(
+ url: String, packageListUrl: String? = null
+): ExternalDocumentationLinkImpl =
+ ExternalDocumentationLink(url.let(::URL), packageListUrl?.let(::URL))
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultConfiguration.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultConfiguration.kt
new file mode 100644
index 00000000..f858d8c0
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultConfiguration.kt
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+import java.io.File
+import java.net.URL
+
+public data class DokkaConfigurationImpl(
+ override val moduleName: String = DokkaDefaults.moduleName,
+ override val moduleVersion: String? = DokkaDefaults.moduleVersion,
+ override val outputDir: File = DokkaDefaults.outputDir,
+ override val cacheRoot: File? = DokkaDefaults.cacheRoot,
+ override val offlineMode: Boolean = DokkaDefaults.offlineMode,
+ override val sourceSets: List<DokkaSourceSetImpl> = emptyList(),
+ override val pluginsClasspath: List<File> = emptyList(),
+ override val pluginsConfiguration: List<PluginConfigurationImpl> = DokkaDefaults.pluginsConfiguration,
+ override val modules: List<DokkaModuleDescriptionImpl> = emptyList(),
+ override val failOnWarning: Boolean = DokkaDefaults.failOnWarning,
+ override val delayTemplateSubstitution: Boolean = false,
+ override val suppressObviousFunctions: Boolean = DokkaDefaults.suppressObviousFunctions,
+ override val includes: Set<File> = emptySet(),
+ override val suppressInheritedMembers: Boolean = DokkaDefaults.suppressInheritedMembers,
+ override val finalizeCoroutines: Boolean = true,
+) : DokkaConfiguration
+
+public data class PluginConfigurationImpl(
+ override val fqPluginName: String,
+ override val serializationFormat: DokkaConfiguration.SerializationFormat,
+ override val values: String
+) : DokkaConfiguration.PluginConfiguration
+
+
+public data class DokkaSourceSetImpl(
+ override val displayName: String = DokkaDefaults.sourceSetDisplayName,
+ override val sourceSetID: DokkaSourceSetID,
+ override val classpath: List<File> = emptyList(),
+ override val sourceRoots: Set<File> = emptySet(),
+ override val dependentSourceSets: Set<DokkaSourceSetID> = emptySet(),
+ override val samples: Set<File> = emptySet(),
+ override val includes: Set<File> = emptySet(),
+ @Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities")
+ override val includeNonPublic: Boolean = DokkaDefaults.includeNonPublic,
+ override val reportUndocumented: Boolean = DokkaDefaults.reportUndocumented,
+ override val skipEmptyPackages: Boolean = DokkaDefaults.skipEmptyPackages,
+ override val skipDeprecated: Boolean = DokkaDefaults.skipDeprecated,
+ override val jdkVersion: Int = DokkaDefaults.jdkVersion,
+ override val sourceLinks: Set<SourceLinkDefinitionImpl> = mutableSetOf(),
+ override val perPackageOptions: List<PackageOptionsImpl> = mutableListOf(),
+ override val externalDocumentationLinks: Set<ExternalDocumentationLinkImpl> = mutableSetOf(),
+ override val languageVersion: String? = null,
+ override val apiVersion: String? = null,
+ override val noStdlibLink: Boolean = DokkaDefaults.noStdlibLink,
+ override val noJdkLink: Boolean = DokkaDefaults.noJdkLink,
+ override val suppressedFiles: Set<File> = emptySet(),
+ override val analysisPlatform: Platform = DokkaDefaults.analysisPlatform,
+ override val documentedVisibilities: Set<DokkaConfiguration.Visibility> = DokkaDefaults.documentedVisibilities,
+) : DokkaSourceSet
+
+public data class DokkaModuleDescriptionImpl(
+ override val name: String,
+ override val relativePathToOutputDirectory: File,
+ override val includes: Set<File>,
+ override val sourceOutputDirectory: File
+) : DokkaConfiguration.DokkaModuleDescription
+
+public data class SourceLinkDefinitionImpl(
+ override val localDirectory: String,
+ override val remoteUrl: URL,
+ override val remoteLineSuffix: String?,
+) : DokkaConfiguration.SourceLinkDefinition {
+
+ public companion object {
+ public fun parseSourceLinkDefinition(srcLink: String): SourceLinkDefinitionImpl {
+ val (path, urlAndLine) = srcLink.split('=')
+ return SourceLinkDefinitionImpl(
+ localDirectory = File(path).canonicalPath,
+ remoteUrl = URL(urlAndLine.substringBefore("#")),
+ remoteLineSuffix = urlAndLine.substringAfter("#", "").let { if (it.isEmpty()) null else "#$it" })
+ }
+ }
+}
+
+public data class PackageOptionsImpl(
+ override val matchingRegex: String,
+ @Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities")
+ override val includeNonPublic: Boolean,
+ override val reportUndocumented: Boolean?,
+ override val skipDeprecated: Boolean,
+ override val suppress: Boolean,
+ override val documentedVisibilities: Set<DokkaConfiguration.Visibility>, // TODO add default to DokkaDefaults.documentedVisibilities
+) : DokkaConfiguration.PackageOptions
+
+
+public data class ExternalDocumentationLinkImpl(
+ override val url: URL,
+ override val packageListUrl: URL,
+) : DokkaConfiguration.ExternalDocumentationLink
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultExternalLinks.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultExternalLinks.kt
new file mode 100644
index 00000000..26e3e0ae
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultExternalLinks.kt
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka
+
+import org.jetbrains.dokka.DokkaConfiguration.ExternalDocumentationLink
+import java.net.URL
+
+
+public fun ExternalDocumentationLink.Companion.jdk(jdkVersion: Int): ExternalDocumentationLinkImpl =
+ ExternalDocumentationLink(
+ url =
+ if (jdkVersion < 11) "https://docs.oracle.com/javase/${jdkVersion}/docs/api/"
+ else "https://docs.oracle.com/en/java/javase/${jdkVersion}/docs/api/",
+ packageListUrl =
+ if (jdkVersion < 11) "https://docs.oracle.com/javase/${jdkVersion}/docs/api/package-list"
+ else "https://docs.oracle.com/en/java/javase/${jdkVersion}/docs/api/element-list"
+ )
+
+
+public fun ExternalDocumentationLink.Companion.kotlinStdlib(): ExternalDocumentationLinkImpl =
+ ExternalDocumentationLink("https://kotlinlang.org/api/latest/jvm/stdlib/")
+
+
+public fun ExternalDocumentationLink.Companion.androidSdk(): ExternalDocumentationLinkImpl =
+ ExternalDocumentationLink("https://developer.android.com/reference/kotlin/")
+
+
+public fun ExternalDocumentationLink.Companion.androidX(): ExternalDocumentationLinkImpl = ExternalDocumentationLink(
+ url = URL("https://developer.android.com/reference/kotlin/"),
+ packageListUrl = URL("https://developer.android.com/reference/kotlin/androidx/package-list")
+)
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/generation/Generation.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/generation/Generation.kt
new file mode 100644
index 00000000..9f14912f
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/generation/Generation.kt
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.generation
+
+import org.jetbrains.dokka.Timer
+
+public interface Generation {
+ public fun Timer.generate()
+ public val generationName: String
+}
+
+// This needs to be public for now but in the future it should be replaced with system of checks provided by EP
+public fun exitGenerationGracefully(reason: String): Nothing {
+ throw GracefulGenerationExit(reason)
+}
+
+public class GracefulGenerationExit(public val reason: String) : Throwable()
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/links/DRI.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/links/DRI.kt
new file mode 100644
index 00000000..180d9eb8
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/links/DRI.kt
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.links
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo
+import com.fasterxml.jackson.annotation.JsonTypeInfo.Id.CLASS
+import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.module.kotlin.readValue
+
+/**
+ * [DRI] stands for DokkaResourceIdentifier
+ */
+public data class DRI(
+ val packageName: String? = null,
+ val classNames: String? = null,
+ val callable: Callable? = null,
+ val target: DriTarget = PointingToDeclaration,
+ val extra: String? = null
+) {
+ override fun toString(): String =
+ "${packageName.orEmpty()}/${classNames.orEmpty()}/${callable?.name.orEmpty()}/${callable?.signature()
+ .orEmpty()}/$target/${extra.orEmpty()}"
+
+ public companion object {
+ public val topLevel: DRI = DRI()
+ }
+}
+
+public object EnumEntryDRIExtra: DRIExtraProperty<EnumEntryDRIExtra>()
+
+public abstract class DRIExtraProperty<T> {
+ public val key: String = this::class.qualifiedName
+ ?: (this.javaClass.let { it.`package`.name + "." + it.simpleName.ifEmpty { "anonymous" } })
+}
+
+
+public class DRIExtraContainer(public val data: String? = null) {
+ public val map: MutableMap<String, Any> = if (data != null) OBJECT_MAPPER.readValue(data) else mutableMapOf()
+ public inline operator fun <reified T> get(prop: DRIExtraProperty<T>): T? =
+ map[prop.key]?.let { prop as? T }
+
+ public inline operator fun <reified T> set(prop: DRIExtraProperty<T>, value: T) {
+ map[prop.key] = value as Any
+ }
+
+ public fun encode(): String = OBJECT_MAPPER.writeValueAsString(map)
+
+ private companion object {
+ private val OBJECT_MAPPER = ObjectMapper()
+ }
+}
+
+public val DriOfUnit: DRI = DRI("kotlin", "Unit")
+public val DriOfAny: DRI = DRI("kotlin", "Any")
+
+public fun DRI.withClass(name: String): DRI = copy(classNames = if (classNames.isNullOrBlank()) name else "$classNames.$name")
+
+public fun DRI.withTargetToDeclaration(): DRI = copy(target = PointingToDeclaration)
+
+public fun DRI.withEnumEntryExtra(): DRI = copy(
+ extra = DRIExtraContainer(this.extra).also { it[EnumEntryDRIExtra] = EnumEntryDRIExtra }.encode()
+)
+
+public val DRI.parent: DRI
+ get() = when {
+ extra != null -> when {
+ DRIExtraContainer(extra)[EnumEntryDRIExtra] != null -> copy(
+ classNames = classNames?.substringBeforeLast(".", "")?.takeIf { it.isNotBlank() },
+ extra = null
+ )
+ else -> copy(extra = null)
+ }
+ target != PointingToDeclaration -> copy(target = PointingToDeclaration)
+ callable != null -> copy(callable = null)
+ classNames != null -> copy(classNames = classNames.substringBeforeLast(".", "").takeIf { it.isNotBlank() })
+ else -> DRI.topLevel
+ }
+
+public val DRI.sureClassNames: String
+ get() = classNames ?: throw IllegalStateException("Malformed DRI. It requires classNames in this context.")
+
+public data class Callable(
+ val name: String,
+ val receiver: TypeReference? = null,
+ val params: List<TypeReference>
+) {
+ public fun signature(): String = "${receiver?.toString().orEmpty()}#${params.joinToString("#")}"
+
+ public companion object
+}
+
+@JsonTypeInfo(use = CLASS)
+public sealed class TypeReference {
+ public companion object
+}
+
+public data class JavaClassReference(val name: String) : TypeReference() {
+ override fun toString(): String = name
+}
+
+public data class TypeParam(val bounds: List<TypeReference>) : TypeReference()
+
+public data class TypeConstructor(
+ val fullyQualifiedName: String,
+ val params: List<TypeReference>
+) : TypeReference() {
+ override fun toString(): String = fullyQualifiedName +
+ (if (params.isNotEmpty()) "[${params.joinToString(",")}]" else "")
+}
+
+public data class RecursiveType(val rank: Int): TypeReference() {
+ override fun toString(): String = "^".repeat(rank + 1)
+}
+
+public data class Nullable(val wrapped: TypeReference) : TypeReference() {
+ override fun toString(): String = "$wrapped?"
+}
+
+public object StarProjection : TypeReference() {
+ override fun toString(): String = "*"
+}
+
+@JsonTypeInfo(use = CLASS)
+public sealed class DriTarget {
+ override fun toString(): String = this.javaClass.simpleName
+
+ public companion object
+}
+
+public data class PointingToGenericParameters(val parameterIndex: Int) : DriTarget() {
+ override fun toString(): String = "PointingToGenericParameters($parameterIndex)"
+}
+
+public object PointingToDeclaration : DriTarget()
+
+public data class PointingToCallableParameters(val parameterIndex: Int) : DriTarget() {
+ override fun toString(): String = "PointingToCallableParameters($parameterIndex)"
+}
+
+public fun DriTarget.nextTarget(): DriTarget = when (this) {
+ is PointingToGenericParameters -> PointingToGenericParameters(this.parameterIndex + 1)
+ is PointingToCallableParameters -> PointingToCallableParameters(this.parameterIndex + 1)
+ else -> this
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/CompositeSourceSetID.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/CompositeSourceSetID.kt
new file mode 100644
index 00000000..af7d1a5d
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/CompositeSourceSetID.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.DokkaConfiguration
+import org.jetbrains.dokka.DokkaSourceSetID
+
+/**
+ * A unique composite key of multiple [DokkaSourceSetID] that identifies [DisplaySourceSet].
+ * Consists of multiple (non-zero) [DokkaSourceSetID] that the corresponding [DisplaySourceSet] was built from.
+ *
+ * Should not be constructed or copied outside of [DisplaySourceSet] instantiation.
+ */
+public data class CompositeSourceSetID(
+ private val children: Set<DokkaSourceSetID>
+) {
+ public constructor(sourceSetIDs: Iterable<DokkaSourceSetID>) : this(sourceSetIDs.toSet())
+ public constructor(sourceSetId: DokkaSourceSetID) : this(setOf(sourceSetId))
+
+ init {
+ require(children.isNotEmpty()) { "Expected at least one source set id" }
+ }
+
+ public val merged: DokkaSourceSetID = children.sortedBy { it.scopeId + it.sourceSetName }.let { sortedChildren ->
+ DokkaSourceSetID(
+ scopeId = sortedChildren.joinToString(separator = "+") { it.scopeId },
+ sourceSetName = sortedChildren.joinToString(separator = "+") { it.sourceSetName }
+ )
+ }
+
+ public val all: Set<DokkaSourceSetID> = setOf(merged, *children.toTypedArray())
+
+ public operator fun contains(sourceSetId: DokkaSourceSetID): Boolean {
+ return sourceSetId in all
+ }
+
+ public operator fun contains(sourceSet: DokkaConfiguration.DokkaSourceSet): Boolean {
+ return sourceSet.sourceSetID in this
+ }
+
+ public operator fun plus(other: DokkaSourceSetID): CompositeSourceSetID {
+ return copy(children = children + other)
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/DisplaySourceSet.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/DisplaySourceSet.kt
new file mode 100644
index 00000000..9d637048
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/DisplaySourceSet.kt
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.*
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+
+/**
+ * Represents a final user-visible source set in the documentable model that is
+ * used to specify under which source sets/targets current signatures are available,
+ * can be used to filter in and out all available signatures under the specified source set,
+ * and, depending on the format, are rendered as "platform" selectors.
+ *
+ * E.g. HTML format renders display source sets as "bubbles" that later are used for filtering
+ * and informational purposes.
+ *
+ * [DisplaySourceSet]s typically have a one-to-one correspondence to the build system source sets,
+ * are created by the base plugin from [DokkaSourceSet] and never tweaked manually.
+ * [DisplaySourceSet] is uniquely identified by the corresponding [CompositeSourceSetID].
+ *
+ * @property sourceSetIDs unique stable id of the display source set.
+ * It is composite by definition, as it uniquely defines the source set and all nested source sets.
+ * Apart from names, it also contains a substitute to a full source set path in order to differentiate
+ * source sets with the same name in a stable manner.
+ * @property name corresponds to the name of the original [DokkaSourceSet]
+ * @property platform the platform of the source set. If the source set is a mix of multiple source sets
+ * that correspond to multiple KMP platforms, then it is [Platform.common]
+ */
+public data class DisplaySourceSet(
+ val sourceSetIDs: CompositeSourceSetID,
+ val name: String,
+ val platform: Platform
+) {
+ public constructor(sourceSet: DokkaSourceSet) : this(
+ sourceSetIDs = CompositeSourceSetID(sourceSet.sourceSetID),
+ name = sourceSet.displayName,
+ platform = sourceSet.analysisPlatform
+ )
+}
+
+/**
+ * Transforms the current [DokkaSourceSet] into [DisplaySourceSet],
+ * matching the corresponding subset of its properties to [DisplaySourceSet] properties.
+ */
+public fun DokkaSourceSet.toDisplaySourceSet(): DisplaySourceSet = DisplaySourceSet(this)
+
+/**
+ * Transforms all the given [DokkaSourceSet]s into [DisplaySourceSet]s.
+ */
+public fun Iterable<DokkaSourceSet>.toDisplaySourceSets(): Set<DisplaySourceSet> =
+ map { it.toDisplaySourceSet() }.toSet()
+
+@InternalDokkaApi
+@Deprecated("Use computeSourceSetIds() and cache its results instead", replaceWith = ReplaceWith("computeSourceSetIds()"))
+public val Iterable<DisplaySourceSet>.sourceSetIDs: List<DokkaSourceSetID> get() = this.flatMap { it.sourceSetIDs.all }
+
+@InternalDokkaApi
+public fun Iterable<DisplaySourceSet>.computeSourceSetIds(): Set<DokkaSourceSetID> =
+ fold(hashSetOf()) { acc, set -> acc.addAll(set.sourceSetIDs.all); acc }
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/Documentable.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/Documentable.kt
new file mode 100644
index 00000000..c6109f47
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/Documentable.kt
@@ -0,0 +1,540 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.doc.DocumentationNode
+import org.jetbrains.dokka.model.properties.PropertyContainer
+import org.jetbrains.dokka.model.properties.WithExtraProperties
+
+public interface AnnotationTarget
+
+public abstract class Documentable : WithChildren<Documentable>,
+ AnnotationTarget {
+ public abstract val name: String?
+ public abstract val dri: DRI
+ public abstract val documentation: SourceSetDependent<DocumentationNode>
+ public abstract val sourceSets: Set<DokkaSourceSet>
+ public abstract val expectPresentInSet: DokkaSourceSet?
+ abstract override val children: List<Documentable>
+
+ override fun toString(): String =
+ "${javaClass.simpleName}($dri)"
+
+ override fun equals(other: Any?): Boolean =
+ other is Documentable && this.dri == other.dri // TODO: https://github.com/Kotlin/dokka/pull/667#discussion_r382555806
+
+ override fun hashCode(): Int = dri.hashCode()
+}
+
+public typealias SourceSetDependent<T> = Map<DokkaSourceSet, T>
+
+public interface WithSources {
+ public val sources: SourceSetDependent<DocumentableSource>
+}
+
+public interface WithScope {
+ public val functions: List<DFunction>
+ public val properties: List<DProperty>
+ public val classlikes: List<DClasslike>
+}
+
+public interface WithVisibility {
+ public val visibility: SourceSetDependent<Visibility>
+}
+
+public interface WithType {
+ public val type: Bound
+}
+
+public interface WithAbstraction {
+ public val modifier: SourceSetDependent<Modifier>
+}
+
+public sealed class Modifier(
+ public val name: String
+)
+
+public sealed class KotlinModifier(name: String) : Modifier(name) {
+ public object Abstract : KotlinModifier("abstract")
+ public object Open : KotlinModifier("open")
+ public object Final : KotlinModifier("final")
+ public object Sealed : KotlinModifier("sealed")
+ public object Empty : KotlinModifier("")
+}
+
+public sealed class JavaModifier(name: String) : Modifier(name) {
+ public object Abstract : JavaModifier("abstract")
+ public object Final : JavaModifier("final")
+ public object Empty : JavaModifier("")
+}
+
+public interface WithCompanion {
+ public val companion: DObject?
+}
+
+public interface WithConstructors {
+ public val constructors: List<DFunction>
+}
+
+public interface WithGenerics {
+ public val generics: List<DTypeParameter>
+}
+
+public interface WithSupertypes {
+ public val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>
+}
+
+public interface WithIsExpectActual {
+ public val isExpectActual: Boolean
+}
+
+public interface Callable : WithVisibility, WithType, WithAbstraction, WithSources, WithIsExpectActual {
+ public val receiver: DParameter?
+}
+
+public sealed class DClasslike : Documentable(), WithScope, WithVisibility, WithSources, WithIsExpectActual
+
+public data class DModule(
+ override val name: String,
+ val packages: List<DPackage>,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet? = null,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val extra: PropertyContainer<DModule> = PropertyContainer.empty()
+) : Documentable(), WithExtraProperties<DModule> {
+ override val dri: DRI = DRI.topLevel
+ override val children: List<Documentable>
+ get() = packages
+
+ override fun withNewExtras(newExtras: PropertyContainer<DModule>): DModule = copy(extra = newExtras)
+}
+
+public data class DPackage(
+ override val dri: DRI,
+ override val functions: List<DFunction>,
+ override val properties: List<DProperty>,
+ override val classlikes: List<DClasslike>,
+ val typealiases: List<DTypeAlias>,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet? = null,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val extra: PropertyContainer<DPackage> = PropertyContainer.empty()
+) : Documentable(), WithScope, WithExtraProperties<DPackage> {
+
+ val packageName: String = dri.packageName.orEmpty()
+
+ /**
+ * !!! WARNING !!!
+ * This name is not guaranteed to be a be a canonical/real package name.
+ * e.g. this will return a human readable version for root packages.
+ * Use [packageName] or `dri.packageName` instead to obtain the real packageName
+ */
+ override val name: String = packageName.ifBlank { "[root]" }
+
+ override val children: List<Documentable> = properties + functions + classlikes + typealiases
+
+ override fun withNewExtras(newExtras: PropertyContainer<DPackage>): DPackage = copy(extra = newExtras)
+}
+
+public data class DClass(
+ override val dri: DRI,
+ override val name: String,
+ override val constructors: List<DFunction>,
+ override val functions: List<DFunction>,
+ override val properties: List<DProperty>,
+ override val classlikes: List<DClasslike>,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val companion: DObject?,
+ override val generics: List<DTypeParameter>,
+ override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val modifier: SourceSetDependent<Modifier>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val isExpectActual: Boolean,
+ override val extra: PropertyContainer<DClass> = PropertyContainer.empty()
+) : DClasslike(), WithAbstraction, WithCompanion, WithConstructors, WithGenerics, WithSupertypes,
+ WithExtraProperties<DClass> {
+
+ override val children: List<Documentable>
+ get() = (functions + properties + classlikes + constructors)
+
+ override fun withNewExtras(newExtras: PropertyContainer<DClass>): DClass = copy(extra = newExtras)
+}
+
+public data class DEnum(
+ override val dri: DRI,
+ override val name: String,
+ val entries: List<DEnumEntry>,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val functions: List<DFunction>,
+ override val properties: List<DProperty>,
+ override val classlikes: List<DClasslike>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val companion: DObject?,
+ override val constructors: List<DFunction>,
+ override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val isExpectActual: Boolean,
+ override val extra: PropertyContainer<DEnum> = PropertyContainer.empty()
+) : DClasslike(), WithCompanion, WithConstructors, WithSupertypes, WithExtraProperties<DEnum> {
+ override val children: List<Documentable>
+ get() = (entries + functions + properties + classlikes + constructors)
+
+ override fun withNewExtras(newExtras: PropertyContainer<DEnum>): DEnum = copy(extra = newExtras)
+}
+
+public data class DEnumEntry(
+ override val dri: DRI,
+ override val name: String,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val functions: List<DFunction>,
+ override val properties: List<DProperty>,
+ override val classlikes: List<DClasslike>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val extra: PropertyContainer<DEnumEntry> = PropertyContainer.empty()
+) : Documentable(), WithScope, WithExtraProperties<DEnumEntry> {
+ override val children: List<Documentable>
+ get() = (functions + properties + classlikes)
+
+ override fun withNewExtras(newExtras: PropertyContainer<DEnumEntry>): DEnumEntry = copy(extra = newExtras)
+}
+
+public data class DFunction(
+ override val dri: DRI,
+ override val name: String,
+ val isConstructor: Boolean,
+ val parameters: List<DParameter>,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val type: Bound,
+ override val generics: List<DTypeParameter>,
+ override val receiver: DParameter?,
+ override val modifier: SourceSetDependent<Modifier>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val isExpectActual: Boolean,
+ override val extra: PropertyContainer<DFunction> = PropertyContainer.empty()
+) : Documentable(), Callable, WithGenerics, WithExtraProperties<DFunction> {
+ override val children: List<Documentable>
+ get() = parameters
+
+ override fun withNewExtras(newExtras: PropertyContainer<DFunction>): DFunction = copy(extra = newExtras)
+}
+
+public data class DInterface(
+ override val dri: DRI,
+ override val name: String,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val functions: List<DFunction>,
+ override val properties: List<DProperty>,
+ override val classlikes: List<DClasslike>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val companion: DObject?,
+ override val generics: List<DTypeParameter>,
+ override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val isExpectActual: Boolean,
+ override val extra: PropertyContainer<DInterface> = PropertyContainer.empty()
+) : DClasslike(), WithCompanion, WithGenerics, WithSupertypes, WithExtraProperties<DInterface> {
+ override val children: List<Documentable>
+ get() = (functions + properties + classlikes)
+
+ override fun withNewExtras(newExtras: PropertyContainer<DInterface>): DInterface = copy(extra = newExtras)
+}
+
+public data class DObject(
+ override val name: String?,
+ override val dri: DRI,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val functions: List<DFunction>,
+ override val properties: List<DProperty>,
+ override val classlikes: List<DClasslike>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val isExpectActual: Boolean,
+ override val extra: PropertyContainer<DObject> = PropertyContainer.empty()
+) : DClasslike(), WithSupertypes, WithExtraProperties<DObject> {
+ override val children: List<Documentable>
+ get() = (functions + properties + classlikes)
+
+ override fun withNewExtras(newExtras: PropertyContainer<DObject>): DObject = copy(extra = newExtras)
+}
+
+public data class DAnnotation(
+ override val name: String,
+ override val dri: DRI,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val functions: List<DFunction>,
+ override val properties: List<DProperty>,
+ override val classlikes: List<DClasslike>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val companion: DObject?,
+ override val constructors: List<DFunction>,
+ override val generics: List<DTypeParameter>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val isExpectActual: Boolean,
+ override val extra: PropertyContainer<DAnnotation> = PropertyContainer.empty()
+) : DClasslike(), WithCompanion, WithConstructors, WithExtraProperties<DAnnotation>, WithGenerics {
+ override val children: List<Documentable>
+ get() = (functions + properties + classlikes + constructors)
+
+ override fun withNewExtras(newExtras: PropertyContainer<DAnnotation>): DAnnotation = copy(extra = newExtras)
+}
+
+public data class DProperty(
+ override val dri: DRI,
+ override val name: String,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val type: Bound,
+ override val receiver: DParameter?,
+ val setter: DFunction?,
+ val getter: DFunction?,
+ override val modifier: SourceSetDependent<Modifier>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val generics: List<DTypeParameter>,
+ override val isExpectActual: Boolean,
+ override val extra: PropertyContainer<DProperty> = PropertyContainer.empty()
+) : Documentable(), Callable, WithExtraProperties<DProperty>, WithGenerics {
+ override val children: List<Nothing>
+ get() = emptyList()
+
+ override fun withNewExtras(newExtras: PropertyContainer<DProperty>): DProperty = copy(extra = newExtras)
+}
+
+// TODO: treat named Parameters and receivers differently
+public data class DParameter(
+ override val dri: DRI,
+ override val name: String?,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val type: Bound,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val extra: PropertyContainer<DParameter> = PropertyContainer.empty()
+) : Documentable(), WithExtraProperties<DParameter>, WithType {
+ override val children: List<Nothing>
+ get() = emptyList()
+
+ override fun withNewExtras(newExtras: PropertyContainer<DParameter>): DParameter = copy(extra = newExtras)
+}
+
+public data class DTypeParameter(
+ val variantTypeParameter: Variance<TypeParameter>,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ val bounds: List<Bound>,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val extra: PropertyContainer<DTypeParameter> = PropertyContainer.empty()
+) : Documentable(), WithExtraProperties<DTypeParameter> {
+
+ public constructor(
+ dri: DRI,
+ name: String,
+ presentableName: String?,
+ documentation: SourceSetDependent<DocumentationNode>,
+ expectPresentInSet: DokkaSourceSet?,
+ bounds: List<Bound>,
+ sourceSets: Set<DokkaSourceSet>,
+ extra: PropertyContainer<DTypeParameter> = PropertyContainer.empty()
+ ) : this(
+ Invariance(TypeParameter(dri, name, presentableName)),
+ documentation,
+ expectPresentInSet,
+ bounds,
+ sourceSets,
+ extra
+ )
+
+ override val dri: DRI by variantTypeParameter.inner::dri
+ override val name: String by variantTypeParameter.inner::name
+
+ override val children: List<Nothing>
+ get() = emptyList()
+
+ override fun withNewExtras(newExtras: PropertyContainer<DTypeParameter>): DTypeParameter = copy(extra = newExtras)
+}
+
+public data class DTypeAlias(
+ override val dri: DRI,
+ override val name: String,
+ override val type: Bound,
+ val underlyingType: SourceSetDependent<Bound>,
+ override val visibility: SourceSetDependent<Visibility>,
+ override val documentation: SourceSetDependent<DocumentationNode>,
+ override val expectPresentInSet: DokkaSourceSet?,
+ override val sourceSets: Set<DokkaSourceSet>,
+ override val generics: List<DTypeParameter>,
+ override val sources: SourceSetDependent<DocumentableSource>,
+ override val extra: PropertyContainer<DTypeAlias> = PropertyContainer.empty()
+) : Documentable(), WithType, WithVisibility, WithExtraProperties<DTypeAlias>, WithGenerics, WithSources {
+ override val children: List<Nothing>
+ get() = emptyList()
+
+ override fun withNewExtras(newExtras: PropertyContainer<DTypeAlias>): DTypeAlias = copy(extra = newExtras)
+}
+
+public sealed class Projection
+public sealed class Bound : Projection()
+public data class TypeParameter(
+ val dri: DRI,
+ val name: String,
+ val presentableName: String? = null,
+ override val extra: PropertyContainer<TypeParameter> = PropertyContainer.empty()
+) : Bound(), AnnotationTarget, WithExtraProperties<TypeParameter> {
+ override fun withNewExtras(newExtras: PropertyContainer<TypeParameter>): TypeParameter =
+ copy(extra = extra)
+}
+
+public sealed class TypeConstructor : Bound(), AnnotationTarget {
+ public abstract val dri: DRI
+ public abstract val projections: List<Projection>
+ public abstract val presentableName: String?
+}
+
+public data class GenericTypeConstructor(
+ override val dri: DRI,
+ override val projections: List<Projection>,
+ override val presentableName: String? = null,
+ override val extra: PropertyContainer<GenericTypeConstructor> = PropertyContainer.empty()
+) : TypeConstructor(), WithExtraProperties<GenericTypeConstructor> {
+ override fun withNewExtras(newExtras: PropertyContainer<GenericTypeConstructor>): GenericTypeConstructor =
+ copy(extra = newExtras)
+}
+
+public data class FunctionalTypeConstructor(
+ override val dri: DRI,
+ override val projections: List<Projection>,
+ val isExtensionFunction: Boolean = false,
+ val isSuspendable: Boolean = false,
+ override val presentableName: String? = null,
+ override val extra: PropertyContainer<FunctionalTypeConstructor> = PropertyContainer.empty(),
+) : TypeConstructor(), WithExtraProperties<FunctionalTypeConstructor> {
+ override fun withNewExtras(newExtras: PropertyContainer<FunctionalTypeConstructor>): FunctionalTypeConstructor =
+ copy(extra = newExtras)
+}
+
+// kotlin.annotation.AnnotationTarget.TYPEALIAS
+public data class TypeAliased(
+ val typeAlias: Bound,
+ val inner: Bound,
+ override val extra: PropertyContainer<TypeAliased> = PropertyContainer.empty()
+) : Bound(), AnnotationTarget, WithExtraProperties<TypeAliased> {
+ override fun withNewExtras(newExtras: PropertyContainer<TypeAliased>): TypeAliased =
+ copy(extra = newExtras)
+}
+
+public data class PrimitiveJavaType(
+ val name: String,
+ override val extra: PropertyContainer<PrimitiveJavaType> = PropertyContainer.empty()
+) : Bound(), AnnotationTarget, WithExtraProperties<PrimitiveJavaType> {
+ override fun withNewExtras(newExtras: PropertyContainer<PrimitiveJavaType>): PrimitiveJavaType =
+ copy(extra = newExtras)
+}
+
+public data class JavaObject(override val extra: PropertyContainer<JavaObject> = PropertyContainer.empty()) :
+ Bound(), AnnotationTarget, WithExtraProperties<JavaObject> {
+ override fun withNewExtras(newExtras: PropertyContainer<JavaObject>): JavaObject =
+ copy(extra = newExtras)
+}
+
+public data class UnresolvedBound(
+ val name: String,
+ override val extra: PropertyContainer<UnresolvedBound> = PropertyContainer.empty()
+) : Bound(), AnnotationTarget, WithExtraProperties<UnresolvedBound> {
+ override fun withNewExtras(newExtras: PropertyContainer<UnresolvedBound>): UnresolvedBound =
+ copy(extra = newExtras)
+}
+
+// The following Projections are not AnnotationTargets; they cannot be annotated.
+public data class Nullable(val inner: Bound) : Bound()
+
+/**
+ * It introduces [definitely non-nullable types](https://github.com/Kotlin/KEEP/blob/c72601cf35c1e95a541bb4b230edb474a6d1d1a8/proposals/definitely-non-nullable-types.md)
+ */
+public data class DefinitelyNonNullable(val inner: Bound) : Bound()
+
+public sealed class Variance<out T : Bound> : Projection() {
+ public abstract val inner: T
+}
+
+public data class Covariance<out T : Bound>(override val inner: T) : Variance<T>() {
+ override fun toString(): String = "out"
+}
+
+public data class Contravariance<out T : Bound>(override val inner: T) : Variance<T>() {
+ override fun toString(): String = "in"
+}
+
+public data class Invariance<out T : Bound>(override val inner: T) : Variance<T>() {
+ override fun toString(): String = ""
+}
+
+public object Star : Projection()
+
+public object Void : Bound()
+public object Dynamic : Bound()
+
+public fun Variance<TypeParameter>.withDri(dri: DRI): Variance<TypeParameter> = when (this) {
+ is Contravariance -> Contravariance(TypeParameter(dri, inner.name, inner.presentableName))
+ is Covariance -> Covariance(TypeParameter(dri, inner.name, inner.presentableName))
+ is Invariance -> Invariance(TypeParameter(dri, inner.name, inner.presentableName))
+}
+
+public fun Documentable.dfs(predicate: (Documentable) -> Boolean): Documentable? =
+ if (predicate(this)) {
+ this
+ } else {
+ this.children.asSequence().mapNotNull { it.dfs(predicate) }.firstOrNull()
+ }
+
+public sealed class Visibility(public val name: String)
+
+public sealed class KotlinVisibility(name: String) : Visibility(name) {
+ public object Public : KotlinVisibility("public")
+ public object Private : KotlinVisibility("private")
+ public object Protected : KotlinVisibility("protected")
+ public object Internal : KotlinVisibility("internal")
+}
+
+public sealed class JavaVisibility(name: String) : Visibility(name) {
+ public object Public : JavaVisibility("public")
+ public object Private : JavaVisibility("private")
+ public object Protected : JavaVisibility("protected")
+ public object Default : JavaVisibility("")
+}
+
+public fun <T> SourceSetDependent<T>?.orEmpty(): SourceSetDependent<T> = this ?: emptyMap()
+
+public interface DocumentableSource {
+ public val path: String
+
+ /**
+ * Computes the first line number of the documentable's declaration/signature/identifier.
+ *
+ * Numbering is always 1-based.
+ *
+ * May return null if the sources could not be found - for example, for synthetic/generated declarations.
+ */
+ public fun computeLineNumber(): Int?
+}
+
+public data class TypeConstructorWithKind(val typeConstructor: TypeConstructor, val kind: ClassKind)
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/JvmField.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/JvmField.kt
new file mode 100644
index 00000000..a2b641c9
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/JvmField.kt
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.links.DRI
+
+public const val JVM_FIELD_PACKAGE_NAME: String = "kotlin.jvm"
+public const val JVM_FIELD_CLASS_NAMES: String = "JvmField"
+
+public fun DRI.isJvmField(): Boolean = packageName == JVM_FIELD_PACKAGE_NAME && classNames == JVM_FIELD_CLASS_NAMES
+
+public fun Annotations.Annotation.isJvmField(): Boolean = dri.isJvmField()
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/WithChildren.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/WithChildren.kt
new file mode 100644
index 00000000..f73a5aa0
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/WithChildren.kt
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+public interface WithChildren<out T> {
+ public val children: List<T>
+}
+
+public inline fun <reified T> WithChildren<*>.firstChildOfTypeOrNull(): T? =
+ children.filterIsInstance<T>().firstOrNull()
+
+public inline fun <reified T> WithChildren<*>.firstChildOfTypeOrNull(predicate: (T) -> Boolean): T? =
+ children.filterIsInstance<T>().firstOrNull(predicate)
+
+public inline fun <reified T> WithChildren<*>.firstChildOfType(): T =
+ children.filterIsInstance<T>().first()
+
+public inline fun <reified T> WithChildren<*>.childrenOfType(): List<T> =
+ children.filterIsInstance<T>()
+
+public inline fun <reified T> WithChildren<*>.firstChildOfType(predicate: (T) -> Boolean): T =
+ children.filterIsInstance<T>().first(predicate)
+
+public inline fun <reified T> WithChildren<WithChildren<*>>.firstMemberOfType(): T where T : WithChildren<*> {
+ return withDescendants().filterIsInstance<T>().first()
+}
+
+public inline fun <reified T> WithChildren<WithChildren<*>>.firstMemberOfType(
+ predicate: (T) -> Boolean
+): T where T : WithChildren<*> = withDescendants().filterIsInstance<T>().first(predicate)
+
+
+public inline fun <reified T> WithChildren<WithChildren<*>>.firstMemberOfTypeOrNull(): T? where T : WithChildren<*> {
+ return withDescendants().filterIsInstance<T>().firstOrNull()
+}
+
+public fun <T> T.withDescendants(): Sequence<T> where T : WithChildren<T> {
+ return sequence {
+ yield(this@withDescendants)
+ children.forEach { child ->
+ yieldAll(child.withDescendants())
+ }
+ }
+}
+
+@JvmName("withDescendantsProjection")
+public fun WithChildren<*>.withDescendants(): Sequence<Any?> {
+ return sequence {
+ yield(this@withDescendants)
+ children.forEach { child ->
+ if (child is WithChildren<*>) {
+ yieldAll(child.withDescendants())
+ }
+ }
+ }
+}
+
+@JvmName("withDescendantsAny")
+public fun WithChildren<Any>.withDescendants(): Sequence<Any> {
+ return sequence {
+ yield(this@withDescendants)
+ children.forEach { child ->
+ if (child is WithChildren<*>) {
+ yieldAll(child.withDescendants().filterNotNull())
+ }
+ }
+ }
+}
+
+public fun <T> T.dfs(predicate: (T) -> Boolean): T? where T : WithChildren<T> = if (predicate(this)) {
+ this
+} else {
+ children.asSequence().mapNotNull { it.dfs(predicate) }.firstOrNull()
+}
+
+public fun <T : WithChildren<T>> T.asPrintableTree(
+ nodeNameBuilder: Appendable.(T) -> Unit = { append(it.toString()) }
+): String {
+ fun Appendable.append(element: T, ownPrefix: String, childPrefix: String) {
+ append(ownPrefix)
+ nodeNameBuilder(element)
+ appendLine()
+ element.children.takeIf(Collection<*>::isNotEmpty)?.also { children ->
+ val newOwnPrefix = "$childPrefix├─ "
+ val lastOwnPrefix = "$childPrefix└─ "
+ val newChildPrefix = "$childPrefix│ "
+ val lastChildPrefix = "$childPrefix "
+ children.forEachIndexed { n, e ->
+ if (n != children.lastIndex) append(e, newOwnPrefix, newChildPrefix)
+ else append(e, lastOwnPrefix, lastChildPrefix)
+ }
+ }
+ }
+
+ return buildString { append(this@asPrintableTree, "", "") }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/additionalExtras.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/additionalExtras.kt
new file mode 100644
index 00000000..1db8e59d
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/additionalExtras.kt
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.properties.ExtraProperty
+import org.jetbrains.dokka.model.properties.MergeStrategy
+
+public class AdditionalModifiers(
+ public val content: SourceSetDependent<Set<ExtraModifiers>>
+) : ExtraProperty<Documentable> {
+
+ public companion object : ExtraProperty.Key<Documentable, AdditionalModifiers> {
+ override fun mergeStrategyFor(
+ left: AdditionalModifiers,
+ right: AdditionalModifiers
+ ): MergeStrategy<Documentable> = MergeStrategy.Replace(AdditionalModifiers(left.content + right.content))
+ }
+
+ override fun equals(other: Any?): Boolean =
+ if (other is AdditionalModifiers) other.content == content else false
+
+ override fun hashCode(): Int = content.hashCode()
+ override val key: ExtraProperty.Key<Documentable, *> = AdditionalModifiers
+}
+
+public fun SourceSetDependent<Set<ExtraModifiers>>.toAdditionalModifiers(): AdditionalModifiers = AdditionalModifiers(this)
+
+public data class Annotations(
+ private val myContent: SourceSetDependent<List<Annotation>>
+) : ExtraProperty<AnnotationTarget> {
+ public companion object : ExtraProperty.Key<AnnotationTarget, Annotations> {
+ override fun mergeStrategyFor(left: Annotations, right: Annotations): MergeStrategy<AnnotationTarget> =
+ MergeStrategy.Replace(Annotations(left.myContent + right.myContent))
+ }
+
+ override val key: ExtraProperty.Key<AnnotationTarget, *> = Annotations
+
+ public data class Annotation(
+ val dri: DRI,
+ val params: Map<String, AnnotationParameterValue>,
+ val mustBeDocumented: Boolean = false,
+ val scope: AnnotationScope = AnnotationScope.DIRECT
+ ) {
+ override fun equals(other: Any?): Boolean = when (other) {
+ is Annotation -> dri == other.dri
+ else -> false
+ }
+
+ override fun hashCode(): Int = dri.hashCode()
+ }
+
+ @Deprecated("Use directAnnotations or fileLevelAnnotations")
+ val content: SourceSetDependent<List<Annotation>>
+ get() = myContent
+
+ val directAnnotations: SourceSetDependent<List<Annotation>> = annotationsByScope(AnnotationScope.DIRECT)
+
+ val fileLevelAnnotations: SourceSetDependent<List<Annotation>> = annotationsByScope(AnnotationScope.FILE)
+
+ private fun annotationsByScope(scope: AnnotationScope): SourceSetDependent<List<Annotation>> =
+ myContent.entries.mapNotNull { (key, value) ->
+ val withoutFileLevel = value.filter { it.scope == scope }
+ if (withoutFileLevel.isEmpty()) null
+ else Pair(key, withoutFileLevel)
+ }.toMap()
+
+ public enum class AnnotationScope {
+ DIRECT, FILE, GETTER, SETTER
+ }
+}
+
+public fun SourceSetDependent<List<Annotations.Annotation>>.toAnnotations(): Annotations = Annotations(this)
+
+public sealed class AnnotationParameterValue
+
+public data class AnnotationValue(val annotation: Annotations.Annotation) : AnnotationParameterValue()
+
+public data class ArrayValue(val value: List<AnnotationParameterValue>) : AnnotationParameterValue()
+
+public data class EnumValue(val enumName: String, val enumDri: DRI) : AnnotationParameterValue()
+
+public data class ClassValue(val className: String, val classDRI: DRI) : AnnotationParameterValue()
+
+public abstract class LiteralValue : AnnotationParameterValue() {
+ public abstract fun text() : String
+}
+public data class IntValue(val value: Int) : LiteralValue() {
+ override fun text(): String = value.toString()
+}
+
+public data class LongValue(val value: Long) : LiteralValue() {
+ override fun text(): String = value.toString()
+}
+
+public data class FloatValue(val value: Float) : LiteralValue() {
+ override fun text(): String = value.toString()
+}
+
+public data class DoubleValue(val value: Double) : LiteralValue() {
+ override fun text(): String = value.toString()
+}
+
+public object NullValue : LiteralValue() {
+ override fun text(): String = "null"
+}
+
+public data class BooleanValue(val value: Boolean) : LiteralValue() {
+ override fun text(): String = value.toString()
+}
+
+public data class StringValue(val value: String) : LiteralValue() {
+ override fun text(): String = value
+ override fun toString(): String = value
+}
+
+public object PrimaryConstructorExtra : ExtraProperty<DFunction>, ExtraProperty.Key<DFunction, PrimaryConstructorExtra> {
+ override val key: ExtraProperty.Key<DFunction, *> = this
+}
+
+public data class ActualTypealias(
+ val typeAlias: DTypeAlias
+) : ExtraProperty<DClasslike> {
+
+ @Suppress("unused")
+ @Deprecated(message = "It can be removed soon. Use [typeAlias.underlyingType]", ReplaceWith("this.typeAlias.underlyingType"))
+ val underlyingType: SourceSetDependent<Bound>
+ get() = typeAlias.underlyingType
+
+ public companion object : ExtraProperty.Key<DClasslike, ActualTypealias> {
+ override fun mergeStrategyFor(
+ left: ActualTypealias,
+ right: ActualTypealias
+ ): MergeStrategy<DClasslike> = MergeStrategy.Fail {
+ throw IllegalStateException("Adding [ActualTypealias] should be after merging all documentables")
+ }
+ }
+
+ override val key: ExtraProperty.Key<DClasslike, ActualTypealias> = ActualTypealias
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/ancestryNode.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/ancestryNode.kt
new file mode 100644
index 00000000..7203ab18
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/ancestryNode.kt
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+public data class AncestryNode(
+ val typeConstructor: TypeConstructor,
+ val superclass: AncestryNode?,
+ val interfaces: List<AncestryNode>,
+) {
+ public fun allImplementedInterfaces(): List<TypeConstructor> {
+ fun traverseInterfaces(ancestry: AncestryNode): List<TypeConstructor> =
+ ancestry.interfaces.flatMap { listOf(it.typeConstructor) + traverseInterfaces(it) } +
+ (ancestry.superclass?.let(::traverseInterfaces) ?: emptyList())
+ return traverseInterfaces(this).distinct()
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/classKinds.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/classKinds.kt
new file mode 100644
index 00000000..25256022
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/classKinds.kt
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+public interface ClassKind
+
+public enum class KotlinClassKindTypes : ClassKind {
+ CLASS,
+ INTERFACE,
+ ENUM_CLASS,
+ ENUM_ENTRY,
+ ANNOTATION_CLASS,
+ OBJECT;
+}
+
+public enum class JavaClassKindTypes : ClassKind {
+ CLASS,
+ INTERFACE,
+ ENUM_CLASS,
+ ENUM_ENTRY,
+ ANNOTATION_CLASS;
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/defaultValues.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/defaultValues.kt
new file mode 100644
index 00000000..426954fb
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/defaultValues.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.model.properties.ExtraProperty
+import org.jetbrains.dokka.model.properties.MergeStrategy
+
+public class DefaultValue(
+ public val expression: SourceSetDependent<Expression>
+): ExtraProperty<Documentable> {
+
+ @Deprecated("Use `expression` property that depends on source set", ReplaceWith("this.expression.values.first()"))
+ public val value: Expression
+ get() = expression.values.first()
+
+ public companion object : ExtraProperty.Key<Documentable, DefaultValue> {
+ override fun mergeStrategyFor(left: DefaultValue, right: DefaultValue): MergeStrategy<Documentable> =
+ MergeStrategy.Replace(DefaultValue(left.expression + right.expression))
+
+ }
+
+ override val key: ExtraProperty.Key<Documentable, *>
+ get() = Companion
+}
+
+public interface Expression
+public data class ComplexExpression(val value: String) : Expression
+public data class IntegerConstant(val value: Long) : Expression
+public data class StringConstant(val value: String) : Expression
+public data class DoubleConstant(val value: Double) : Expression
+public data class FloatConstant(val value: Float) : Expression
+public data class BooleanConstant(val value: Boolean) : Expression
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocTag.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocTag.kt
new file mode 100644
index 00000000..f4cb9b33
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocTag.kt
@@ -0,0 +1,372 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model.doc
+
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.WithChildren
+
+public sealed class DocTag : WithChildren<DocTag> {
+ public abstract val params: Map<String, String>
+
+ public companion object {
+ public fun contentTypeParam(type: String): Map<String, String> = mapOf("content-type" to type)
+ }
+}
+
+public data class A(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Big(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class B(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class BlockQuote(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public object Br : DocTag() {
+ override val children: List<DocTag> = emptyList()
+ override val params: Map<String, String> = emptyMap()
+}
+
+public data class Cite(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public sealed class Code : DocTag()
+
+public data class CodeInline(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : Code()
+
+public data class CodeBlock(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : Code()
+
+public data class CustomDocTag(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap(),
+ val name: String
+) : DocTag()
+
+public data class Dd(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Dfn(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Dir(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Div(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Dl(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class DocumentationLink(
+ val dri: DRI,
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Dt(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Em(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Font(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Footer(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Frame(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class FrameSet(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class H1(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class H2(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class H3(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class H4(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class H5(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class H6(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Head(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Header(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public object HorizontalRule : DocTag() {
+ override val children: List<DocTag> = emptyList()
+ override val params: Map<String, String> = emptyMap()
+}
+
+public data class Html(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class I(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class IFrame(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Img(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Index(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Input(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Li(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Link(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Listing(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Main(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Menu(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Meta(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Nav(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class NoFrames(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class NoScript(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Ol(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class P(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Pre(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Script(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Section(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Small(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Span(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Strikethrough(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Strong(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Sub(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Sup(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Table(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Text(
+ val body: String = "",
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class TBody(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Td(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class TFoot(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Th(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class THead(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Title(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Tr(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Tt(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class U(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Ul(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Var(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
+public data class Caption(
+ override val children: List<DocTag> = emptyList(),
+ override val params: Map<String, String> = emptyMap()
+) : DocTag()
+
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocumentationNode.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocumentationNode.kt
new file mode 100644
index 00000000..9c270f79
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocumentationNode.kt
@@ -0,0 +1,9 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model.doc
+
+import org.jetbrains.dokka.model.WithChildren
+
+public data class DocumentationNode(override val children: List<TagWrapper>): WithChildren<TagWrapper>
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/TagWrapper.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/TagWrapper.kt
new file mode 100644
index 00000000..e3eaffb7
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/TagWrapper.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model.doc
+
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.WithChildren
+
+public sealed class TagWrapper : WithChildren<DocTag> {
+ public abstract val root: DocTag
+
+ override val children: List<DocTag>
+ get() = root.children
+}
+
+public sealed class NamedTagWrapper : TagWrapper() {
+ public abstract val name: String
+}
+
+public data class Description(override val root: DocTag) : TagWrapper()
+public data class Author(override val root: DocTag) : TagWrapper()
+public data class Version(override val root: DocTag) : TagWrapper()
+public data class Since(override val root: DocTag) : TagWrapper()
+public data class See(override val root: DocTag, override val name: String, val address: DRI?) : NamedTagWrapper()
+public data class Param(override val root: DocTag, override val name: String) : NamedTagWrapper()
+public data class Return(override val root: DocTag) : TagWrapper()
+public data class Receiver(override val root: DocTag) : TagWrapper()
+public data class Constructor(override val root: DocTag) : TagWrapper()
+//TODO this naming is confusing since kotlin has Throws annotation
+public data class Throws(override val root: DocTag, override val name: String, val exceptionAddress: DRI?) : NamedTagWrapper()
+public data class Sample(override val root: DocTag, override val name: String) : NamedTagWrapper()
+public data class Deprecated(override val root: DocTag) : TagWrapper()
+public data class Property(override val root: DocTag, override val name: String) : NamedTagWrapper()
+public data class Suppress(override val root: DocTag) : TagWrapper()
+public data class CustomTagWrapper(override val root: DocTag, override val name: String) : NamedTagWrapper()
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableProperties.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableProperties.kt
new file mode 100644
index 00000000..b0ebb6ef
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableProperties.kt
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.properties.ExtraProperty
+import org.jetbrains.dokka.model.properties.MergeStrategy
+
+public data class InheritedMember(val inheritedFrom: SourceSetDependent<DRI?>) : ExtraProperty<Documentable> {
+ public companion object : ExtraProperty.Key<Documentable, InheritedMember> {
+ override fun mergeStrategyFor(left: InheritedMember, right: InheritedMember): MergeStrategy<Documentable> = MergeStrategy.Replace(
+ InheritedMember(left.inheritedFrom + right.inheritedFrom)
+ )
+ }
+
+ public fun isInherited(sourceSetDependent: DokkaSourceSet): Boolean = inheritedFrom[sourceSetDependent] != null
+
+ override val key: ExtraProperty.Key<Documentable, *> = InheritedMember
+}
+
+public data class ImplementedInterfaces(val interfaces: SourceSetDependent<List<TypeConstructor>>) : ExtraProperty<Documentable> {
+ public companion object : ExtraProperty.Key<Documentable, ImplementedInterfaces> {
+ override fun mergeStrategyFor(left: ImplementedInterfaces, right: ImplementedInterfaces): MergeStrategy<Documentable> =
+ MergeStrategy.Replace(ImplementedInterfaces(left.interfaces + right.interfaces))
+ }
+
+ override val key: ExtraProperty.Key<Documentable, *> = ImplementedInterfaces
+}
+
+public data class ExceptionInSupertypes(val exceptions: SourceSetDependent<List<TypeConstructor>>): ExtraProperty<Documentable> {
+ public companion object : ExtraProperty.Key<Documentable, ExceptionInSupertypes> {
+ override fun mergeStrategyFor(left: ExceptionInSupertypes, right: ExceptionInSupertypes): MergeStrategy<Documentable> =
+ MergeStrategy.Replace(ExceptionInSupertypes(left.exceptions + right.exceptions))
+ }
+
+ override val key: ExtraProperty.Key<Documentable, *> = ExceptionInSupertypes
+}
+
+public object ObviousMember : ExtraProperty<Documentable>, ExtraProperty.Key<Documentable, ObviousMember> {
+ override val key: ExtraProperty.Key<Documentable, *> = this
+}
+
+/**
+ * Whether this [DProperty] is `var` or `val`, should be present both in Kotlin and in Java properties
+ *
+ * In case of properties that came from `Java`, [IsVar] is added if
+ * the java field has no accessors at all (plain field) or has a setter
+ */
+public object IsVar : ExtraProperty<DProperty>, ExtraProperty.Key<DProperty, IsVar> {
+ override val key: ExtraProperty.Key<DProperty, *> = this
+}
+
+public data class IsAlsoParameter(val inSourceSets: List<DokkaSourceSet>) : ExtraProperty<DProperty> {
+ public companion object : ExtraProperty.Key<DProperty, IsAlsoParameter> {
+ override fun mergeStrategyFor(left: IsAlsoParameter, right: IsAlsoParameter): MergeStrategy<DProperty> =
+ MergeStrategy.Replace(IsAlsoParameter(left.inSourceSets + right.inSourceSets))
+ }
+
+ override val key: ExtraProperty.Key<DProperty, *> = IsAlsoParameter
+}
+
+public data class CheckedExceptions(val exceptions: SourceSetDependent<List<DRI>>) : ExtraProperty<Documentable>, ExtraProperty.Key<Documentable, ObviousMember> {
+ public companion object : ExtraProperty.Key<Documentable, CheckedExceptions> {
+ override fun mergeStrategyFor(left: CheckedExceptions, right: CheckedExceptions): MergeStrategy<Documentable> =
+ MergeStrategy.Replace(CheckedExceptions(left.exceptions + right.exceptions))
+ }
+ override val key: ExtraProperty.Key<Documentable, *> = CheckedExceptions
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableUtils.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableUtils.kt
new file mode 100644
index 00000000..c9d75bf4
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableUtils.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+
+public fun <T> SourceSetDependent<T>.filtered(sourceSets: Set<DokkaSourceSet>): SourceSetDependent<T> = filter { it.key in sourceSets }
+public fun DokkaSourceSet?.filtered(sourceSets: Set<DokkaSourceSet>): DokkaSourceSet? = takeIf { this in sourceSets }
+
+public fun DTypeParameter.filter(filteredSet: Set<DokkaSourceSet>): DTypeParameter? =
+ if (filteredSet.containsAll(sourceSets)) this
+ else {
+ val intersection = filteredSet.intersect(sourceSets)
+ if (intersection.isEmpty()) null
+ else DTypeParameter(
+ variantTypeParameter,
+ documentation.filtered(intersection),
+ expectPresentInSet?.takeIf { intersection.contains(expectPresentInSet) },
+ bounds,
+ intersection,
+ extra
+ )
+ }
+
+public fun Documentable.isExtension(): Boolean = this is Callable && receiver != null
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/extraModifiers.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/extraModifiers.kt
new file mode 100644
index 00000000..f1193070
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/extraModifiers.kt
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+public sealed class ExtraModifiers(public val name: String) {
+
+ public sealed class KotlinOnlyModifiers(name: String) : ExtraModifiers(name) {
+ public object Inline : KotlinOnlyModifiers("inline")
+ public object Value : KotlinOnlyModifiers("value")
+ public object Infix : KotlinOnlyModifiers("infix")
+ public object External : KotlinOnlyModifiers("external")
+ public object Suspend : KotlinOnlyModifiers("suspend")
+ public object Reified : KotlinOnlyModifiers("reified")
+ public object CrossInline : KotlinOnlyModifiers("crossinline")
+ public object NoInline : KotlinOnlyModifiers("noinline")
+ public object Override : KotlinOnlyModifiers("override")
+ public object Data : KotlinOnlyModifiers("data")
+ public object Const : KotlinOnlyModifiers("const")
+ public object Inner : KotlinOnlyModifiers("inner")
+ public object LateInit : KotlinOnlyModifiers("lateinit")
+ public object Operator : KotlinOnlyModifiers("operator")
+ public object TailRec : KotlinOnlyModifiers("tailrec")
+ public object VarArg : KotlinOnlyModifiers("vararg")
+ public object Fun : KotlinOnlyModifiers("fun")
+ }
+
+ public sealed class JavaOnlyModifiers(name: String) : ExtraModifiers(name) {
+ public object Static : JavaOnlyModifiers("static")
+ public object Native : JavaOnlyModifiers("native")
+ public object Synchronized : JavaOnlyModifiers("synchronized")
+ public object StrictFP : JavaOnlyModifiers("strictfp")
+ public object Transient : JavaOnlyModifiers("transient")
+ public object Volatile : JavaOnlyModifiers("volatile")
+ public object Transitive : JavaOnlyModifiers("transitive")
+ }
+
+ public companion object {
+ public fun valueOf(str: String): ExtraModifiers = when (str) {
+ "inline" -> KotlinOnlyModifiers.Inline
+ "value" -> KotlinOnlyModifiers.Value
+ "infix" -> KotlinOnlyModifiers.Infix
+ "external" -> KotlinOnlyModifiers.External
+ "suspend" -> KotlinOnlyModifiers.Suspend
+ "reified" -> KotlinOnlyModifiers.Reified
+ "crossinline" -> KotlinOnlyModifiers.CrossInline
+ "noinline" -> KotlinOnlyModifiers.NoInline
+ "override" -> KotlinOnlyModifiers.Override
+ "data" -> KotlinOnlyModifiers.Data
+ "const" -> KotlinOnlyModifiers.Const
+ "inner" -> KotlinOnlyModifiers.Inner
+ "lateinit" -> KotlinOnlyModifiers.LateInit
+ "operator" -> KotlinOnlyModifiers.Operator
+ "tailrec" -> KotlinOnlyModifiers.TailRec
+ "vararg" -> KotlinOnlyModifiers.VarArg
+ "static" -> JavaOnlyModifiers.Static
+ "native" -> JavaOnlyModifiers.Native
+ "synchronized" -> JavaOnlyModifiers.Synchronized
+ "strictfp" -> JavaOnlyModifiers.StrictFP
+ "transient" -> JavaOnlyModifiers.Transient
+ "volatile" -> JavaOnlyModifiers.Volatile
+ "transitive" -> JavaOnlyModifiers.Transitive
+ "fun" -> KotlinOnlyModifiers.Fun
+ else -> throw IllegalArgumentException("There is no Extra Modifier for given name $str")
+ }
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/jvmName.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/jvmName.kt
new file mode 100644
index 00000000..8fd7ccd9
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/jvmName.kt
@@ -0,0 +1,11 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.links.DRI
+
+public fun DRI.isJvmName(): Boolean = packageName == "kotlin.jvm" && classNames == "JvmName"
+
+public fun Annotations.Annotation.isJvmName(): Boolean = dri.isJvmName()
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/PropertyContainer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/PropertyContainer.kt
new file mode 100644
index 00000000..7f5bb2f0
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/PropertyContainer.kt
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model.properties
+
+public data class PropertyContainer<C : Any> internal constructor(
+ @PublishedApi internal val map: Map<ExtraProperty.Key<C, *>, ExtraProperty<C>>
+) {
+ public operator fun <D : C> plus(prop: ExtraProperty<D>): PropertyContainer<D> =
+ PropertyContainer(map + (prop.key to prop))
+
+ // TODO: Add logic for caching calculated properties
+ public inline operator fun <reified T : Any> get(key: ExtraProperty.Key<C, T>): T? = when (val prop = map[key]) {
+ is T? -> prop
+ else -> throw ClassCastException("Property for $key stored under not matching key type.")
+ }
+
+ public inline fun <reified T : Any> allOfType(): List<T> = map.values.filterIsInstance<T>()
+
+ public fun <D : C> addAll(extras: Collection<ExtraProperty<D>>): PropertyContainer<D> =
+ PropertyContainer(map + extras.map { p -> p.key to p })
+
+ public operator fun <D : C> minus(prop: ExtraProperty.Key<C, *>): PropertyContainer<D> =
+ PropertyContainer(map.filterNot { it.key == prop })
+
+ public companion object {
+ public fun <T : Any> empty(): PropertyContainer<T> = PropertyContainer(emptyMap())
+ public fun <T : Any> withAll(vararg extras: ExtraProperty<T>?): PropertyContainer<T> = empty<T>().addAll(extras.filterNotNull())
+ public fun <T : Any> withAll(extras: Collection<ExtraProperty<T>>): PropertyContainer<T> = empty<T>().addAll(extras)
+ }
+}
+
+public operator fun <D: Any> PropertyContainer<D>.plus(prop: ExtraProperty<D>?): PropertyContainer<D> =
+ if (prop == null) this else PropertyContainer(map + (prop.key to prop))
+
+
+public interface WithExtraProperties<C : Any> {
+ public val extra: PropertyContainer<C>
+
+ public fun withNewExtras(newExtras: PropertyContainer<C>): C
+}
+
+public fun <C> C.mergeExtras(left: C, right: C): C where C : Any, C : WithExtraProperties<C> {
+ val aggregatedExtras: List<List<ExtraProperty<C>>> =
+ (left.extra.map.values + right.extra.map.values)
+ .groupBy { it.key }
+ .values
+ .map { it.distinct() }
+
+ val (unambiguous, toMerge) = aggregatedExtras.partition { it.size == 1 }
+
+ @Suppress("UNCHECKED_CAST")
+ val strategies: List<MergeStrategy<C>> = toMerge.map { (l, r) ->
+ (l.key as ExtraProperty.Key<C, ExtraProperty<C>>).mergeStrategyFor(l, r)
+ }
+
+ strategies.filterIsInstance<MergeStrategy.Fail>().firstOrNull()?.error?.invoke()
+
+ val replaces: List<ExtraProperty<C>> =
+ strategies.filterIsInstance<MergeStrategy.Replace<C>>().map { it.newProperty }
+
+ val needingFullMerge: List<(preMerged: C, left: C, right: C) -> C> =
+ strategies.filterIsInstance<MergeStrategy.Full<C>>().map { it.merger }
+
+ val newExtras = PropertyContainer((unambiguous.flatten() + replaces).associateBy { it.key })
+
+ return needingFullMerge.fold(withNewExtras(newExtras)) { acc, merger -> merger(acc, left, right) }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/properties.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/properties.kt
new file mode 100644
index 00000000..ea76dc72
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/properties.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.model.properties
+
+public interface ExtraProperty<in C : Any> {
+ public interface Key<in C : Any, T : Any> {
+ public fun mergeStrategyFor(left: T, right: T): MergeStrategy<C> = MergeStrategy.Fail {
+ throw NotImplementedError("Property merging for $this is not implemented")
+ }
+ }
+
+ public val key: Key<C, *>
+}
+
+public interface CalculatedProperty<in C : Any, T : Any> : ExtraProperty.Key<C, T> {
+ public fun calculate(subject: C): T
+}
+
+public sealed class MergeStrategy<in C> {
+
+ public class Replace<in C : Any>(
+ public val newProperty: ExtraProperty<C>
+ ) : MergeStrategy<C>()
+
+ public object Remove : MergeStrategy<Any>()
+
+ public class Full<C : Any>(
+ public val merger: (preMerged: C, left: C, right: C) -> C
+ ) : MergeStrategy<C>()
+
+ public class Fail(
+ public val error: () -> Nothing
+ ) : MergeStrategy<Any>()
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt
new file mode 100644
index 00000000..96f43205
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt
@@ -0,0 +1,436 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.pages
+
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.DisplaySourceSet
+import org.jetbrains.dokka.model.WithChildren
+import org.jetbrains.dokka.model.properties.PropertyContainer
+import org.jetbrains.dokka.model.properties.WithExtraProperties
+
+public data class DCI(val dri: Set<DRI>, val kind: Kind) {
+ override fun toString(): String = "$dri[$kind]"
+}
+
+public interface ContentNode : WithExtraProperties<ContentNode>, WithChildren<ContentNode> {
+ public val dci: DCI
+ public val sourceSets: Set<DisplaySourceSet>
+ public val style: Set<Style>
+
+ public fun hasAnyContent(): Boolean
+
+ public fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentNode
+
+ override val children: List<ContentNode>
+ get() = emptyList()
+}
+
+/** Simple text */
+public data class ContentText(
+ val text: String,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style> = emptySet(),
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentNode {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentText = copy(extra = newExtras)
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentText = copy(sourceSets = sourceSets)
+ override fun hasAnyContent(): Boolean = text.isNotBlank()
+}
+
+public data class ContentBreakLine(
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val dci: DCI = DCI(emptySet(), ContentKind.Empty),
+ override val style: Set<Style> = emptySet(),
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentNode {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentBreakLine = copy(extra = newExtras)
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentBreakLine = copy(sourceSets = sourceSets)
+ override fun hasAnyContent(): Boolean = true
+}
+
+/** Headers */
+public data class ContentHeader(
+ override val children: List<ContentNode>,
+ val level: Int,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentComposite {
+ public constructor(level: Int, c: ContentComposite) : this(c.children, level, c.dci, c.sourceSets, c.style, c.extra)
+
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentHeader = copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentHeader =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentHeader =
+ copy(sourceSets = sourceSets)
+}
+
+public interface ContentCode : ContentComposite
+
+/** Code blocks */
+public data class ContentCodeBlock(
+ override val children: List<ContentNode>,
+ val language: String,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentCode {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentCodeBlock = copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentCodeBlock =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentCodeBlock =
+ copy(sourceSets = sourceSets)
+
+}
+
+public data class ContentCodeInline(
+ override val children: List<ContentNode>,
+ val language: String,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentCode {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentCodeInline = copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentCodeInline =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentCodeInline =
+ copy(sourceSets = sourceSets)
+
+}
+
+/** Union type replacement */
+public interface ContentLink : ContentComposite
+
+/** All links to classes, packages, etc. that have te be resolved */
+public data class ContentDRILink(
+ override val children: List<ContentNode>,
+ val address: DRI,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style> = emptySet(),
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentLink {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentDRILink = copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentDRILink =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentDRILink =
+ copy(sourceSets = sourceSets)
+
+}
+
+/** All links that do not need to be resolved */
+public data class ContentResolvedLink(
+ override val children: List<ContentNode>,
+ val address: String,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style> = emptySet(),
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentLink {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentResolvedLink =
+ copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentResolvedLink =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentResolvedLink =
+ copy(sourceSets = sourceSets)
+}
+
+/** Embedded resources like images */
+public data class ContentEmbeddedResource(
+ override val children: List<ContentNode> = emptyList(),
+ val address: String,
+ val altText: String?,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style> = emptySet(),
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentLink {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentEmbeddedResource =
+ copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentEmbeddedResource =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentEmbeddedResource =
+ copy(sourceSets = sourceSets)
+}
+
+/** Logical grouping of [ContentNode]s */
+public interface ContentComposite : ContentNode {
+ override val children: List<ContentNode> // overwrite to make it abstract once again
+
+ override val sourceSets: Set<DisplaySourceSet> get() = children.flatMap { it.sourceSets }.toSet()
+
+ public fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentComposite
+
+ override fun hasAnyContent(): Boolean = children.any { it.hasAnyContent() }
+}
+
+/** Tables */
+public data class ContentTable(
+ val header: List<ContentGroup>,
+ val caption: ContentGroup? = null,
+ override val children: List<ContentGroup>,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentComposite {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentTable = copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentTable =
+ copy(children = children.map(transformer).map { it as ContentGroup })
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentTable =
+ copy(sourceSets = sourceSets)
+
+}
+
+/** Lists */
+public data class ContentList(
+ override val children: List<ContentNode>,
+ val ordered: Boolean,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentComposite {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentList = copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentList =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentList =
+ copy(sourceSets = sourceSets)
+}
+
+/** Default group, eg. for blocks of Functions, Properties, etc. **/
+public data class ContentGroup(
+ override val children: List<ContentNode>,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentComposite {
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentGroup = copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentGroup =
+ copy(children = children.map(transformer))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentGroup =
+ copy(sourceSets = sourceSets)
+}
+
+/**
+ * @property groupID is used for finding and copying [ContentDivergentInstance]s when merging [ContentPage]s
+ */
+public data class ContentDivergentGroup(
+ override val children: List<ContentDivergentInstance>,
+ override val dci: DCI,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode>,
+ val groupID: GroupID,
+ val implicitlySourceSetHinted: Boolean = true
+) : ContentComposite {
+ public data class GroupID(val name: String)
+
+ override val sourceSets: Set<DisplaySourceSet>
+ get() = children.flatMap { it.sourceSets }.distinct().toSet()
+
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentDivergentGroup =
+ copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentDivergentGroup =
+ copy(children = children.map(transformer).map { it as ContentDivergentInstance })
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentDivergentGroup = this
+}
+
+/** Instance of a divergent content */
+public data class ContentDivergentInstance(
+ val before: ContentNode?,
+ val divergent: ContentNode,
+ val after: ContentNode?,
+ override val dci: DCI,
+ override val sourceSets: Set<DisplaySourceSet>,
+ override val style: Set<Style>,
+ override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty()
+) : ContentComposite {
+ override val children: List<ContentNode>
+ get() = listOfNotNull(before, divergent, after)
+
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentDivergentInstance =
+ copy(extra = newExtras)
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentDivergentInstance =
+ copy(
+ before = before?.let(transformer),
+ divergent = divergent.let(transformer),
+ after = after?.let(transformer)
+ )
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentDivergentInstance =
+ copy(sourceSets = sourceSets)
+
+}
+
+public data class PlatformHintedContent(
+ val inner: ContentNode,
+ override val sourceSets: Set<DisplaySourceSet>
+) : ContentComposite {
+ override val children: List<ContentNode> = listOf(inner)
+
+ override val dci: DCI
+ get() = inner.dci
+
+ override val extra: PropertyContainer<ContentNode>
+ get() = inner.extra
+
+ override val style: Set<Style>
+ get() = inner.style
+
+ override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentNode =
+ throw UnsupportedOperationException("This method should not be called on this PlatformHintedContent")
+
+ override fun transformChildren(transformer: (ContentNode) -> ContentNode): PlatformHintedContent =
+ copy(inner = transformer(inner))
+
+ override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): PlatformHintedContent =
+ copy(sourceSets = sourceSets)
+
+}
+
+public interface Style
+public interface Kind
+
+/**
+ * [ContentKind] represents a grouping of content of one kind that can can be rendered
+ * as part of a composite page (one tab/block within a class's page, for instance).
+ */
+public enum class ContentKind : Kind {
+
+ /**
+ * Marks all sorts of signatures. Can contain sub-kinds marked as [SymbolContentKind]
+ *
+ * Some examples:
+ * - primary constructor: `data class CoroutineName(name: String) : AbstractCoroutineContextElement`
+ * - constructor: `fun CoroutineName(name: String)`
+ * - function: `open override fun toString(): String`
+ * - property: `val name: String`
+ */
+ Symbol,
+
+ Comment, Constructors, Functions, Parameters, Properties, Classlikes, Packages, Sample, Main, BriefComment,
+ Empty, Source, TypeAliases, Cover, Inheritors, SourceSetDependentHint, Extensions, Annotations,
+
+ /**
+ * Deprecation details block with related information such as message/replaceWith/level.
+ */
+ Deprecation;
+
+ public companion object {
+ private val platformTagged =
+ setOf(
+ Constructors,
+ Functions,
+ Properties,
+ Classlikes,
+ Packages,
+ Source,
+ TypeAliases,
+ Inheritors,
+ Extensions
+ )
+
+ public fun shouldBePlatformTagged(kind: Kind): Boolean = kind in platformTagged
+ }
+}
+
+/**
+ * Content kind for [ContentKind.Symbol] content, which is essentially about signatures
+ */
+public enum class SymbolContentKind : Kind {
+ /**
+ * Marks constructor/function parameters, everything in-between parentheses.
+ *
+ * For function `fun foo(bar: String, baz: Int, qux: Boolean)`,
+ * the parameters would be the whole of `bar: String, baz: Int, qux: Boolean`
+ */
+ Parameters,
+
+ /**
+ * Marks a single parameter in a function. Most likely to be a child of [Parameters].
+ *
+ * In function `fun foo(bar: String, baz: Int, qux: Boolean)` there would be 3 [Parameter] instances:
+ * - `bar: String, `
+ * - `baz: Int, `
+ * - `qux: Boolean`
+ */
+ Parameter,
+}
+
+public enum class TokenStyle : Style {
+ Keyword, Punctuation, Function, Operator, Annotation, Number, String, Boolean, Constant
+}
+
+public enum class TextStyle : Style {
+ Bold, Italic, Strong, Strikethrough, Paragraph,
+ Block, Span, Monospace, Indented, Cover, UnderCoverText, BreakableAfter, Breakable, InlineComment, Quotation,
+ FloatingRight, Var, Underlined
+}
+
+public enum class ContentStyle : Style {
+ RowTitle,
+ /**
+ * The style is used only for HTML. It is applied only for [ContentGroup].
+ * Creating and rendering tabs is a part of a renderer.
+ */
+ TabbedContent,
+
+ WithExtraAttributes, RunnableSample, InDocumentationAnchor, Caption,
+ Wrapped, Indented, KDocTag, Footnote
+}
+
+public enum class ListStyle : Style {
+ /**
+ * Represents a list of groups of [DescriptionTerm] and [DescriptionDetails].
+ * Common uses for this element are to implement a glossary or to display
+ * metadata (a list of key-value pairs). Formatting example: see `<dl>` html tag.
+ */
+ DescriptionList,
+
+ /**
+ * If used within [DescriptionList] context, specifies a term in a description
+ * or definition list, usually followed by [DescriptionDetails] for one or more
+ * terms. Formatting example: see `<dt>` html tag
+ */
+ DescriptionTerm,
+
+ /**
+ * If used within [DescriptionList] context, provides the definition or other
+ * related text associated with [DescriptionTerm]. Formatting example: see `<dd>` html tag
+ */
+ DescriptionDetails
+}
+
+public object CommentTable : Style
+
+public object MultimoduleTable : Style
+
+public fun ContentNode.hasStyle(style: Style): Boolean = this.style.contains(style)
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/PageNodes.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/PageNodes.kt
new file mode 100644
index 00000000..cfaf2347
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/PageNodes.kt
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.pages
+
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.Documentable
+import org.jetbrains.dokka.model.WithChildren
+import java.util.*
+
+public interface PageNode : WithChildren<PageNode> {
+ public val name: String
+ override val children: List<PageNode>
+
+ public fun modified(
+ name: String = this.name,
+ children: List<PageNode> = this.children
+ ): PageNode
+}
+
+public interface ContentPage : PageNode {
+ public val content: ContentNode
+ public val dri: Set<DRI>
+ public val embeddedResources: List<String>
+
+ @Deprecated("Deprecated. Remove its usages from your code.",
+ ReplaceWith("this.documentables.firstOrNull()")
+ )
+ public val documentable: Documentable?
+ get() = if (this is WithDocumentables) this.documentables.firstOrNull() else null
+
+ public fun modified(
+ name: String = this.name,
+ content: ContentNode = this.content,
+ dri: Set<DRI> = this.dri,
+ embeddedResources: List<String> = this.embeddedResources,
+ children: List<PageNode> = this.children
+ ): ContentPage
+}
+
+public interface WithDocumentables {
+ public val documentables: List<Documentable>
+}
+
+public abstract class RootPageNode(
+ public val forceTopLevelName: Boolean = false
+) : PageNode {
+ public val parentMap: Map<PageNode, PageNode> by lazy {
+ IdentityHashMap<PageNode, PageNode>().apply {
+ fun process(parent: PageNode) {
+ parent.children.forEach { child ->
+ put(child, parent)
+ process(child)
+ }
+ }
+ process(this@RootPageNode)
+ }
+ }
+
+ public fun transformPageNodeTree(operation: (PageNode) -> PageNode): RootPageNode =
+ this.transformNode(operation) as RootPageNode
+
+ public fun transformContentPagesTree(operation: (ContentPage) -> ContentPage): RootPageNode = transformPageNodeTree {
+ if (it is ContentPage) operation(it) else it
+ }
+
+ private fun PageNode.transformNode(operation: (PageNode) -> PageNode): PageNode =
+ operation(this).let { newNode ->
+ newNode.modified(children = newNode.children.map { it.transformNode(operation) })
+ }
+
+ abstract override fun modified(
+ name: String,
+ children: List<PageNode>
+ ): RootPageNode
+}
+
+public class ModulePageNode(
+ override val name: String,
+ override val content: ContentNode,
+ override val documentables: List<Documentable> = listOf(),
+ override val children: List<PageNode>,
+ override val embeddedResources: List<String> = listOf()
+) : RootPageNode(), ModulePage {
+ override val dri: Set<DRI> = setOf(DRI.topLevel)
+
+ override fun modified(name: String, children: List<PageNode>): ModulePageNode =
+ modified(name = name, content = this.content, dri = dri, children = children)
+
+ override fun modified(
+ name: String,
+ content: ContentNode,
+ dri: Set<DRI>,
+ embeddedResources: List<String>,
+ children: List<PageNode>
+ ): ModulePageNode =
+ if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this
+ else ModulePageNode(name, content, documentables, children, embeddedResources)
+}
+
+public class PackagePageNode(
+ override val name: String,
+ override val content: ContentNode,
+ override val dri: Set<DRI>,
+ override val documentables: List<Documentable> = listOf(),
+ override val children: List<PageNode>,
+ override val embeddedResources: List<String> = listOf()
+) : PackagePage {
+
+ init {
+ require(name.isNotBlank()) { "PackagePageNode.name cannot be blank" }
+ }
+
+ override fun modified(name: String, children: List<PageNode>): PackagePageNode =
+ modified(name = name, content = this.content, children = children)
+
+ override fun modified(
+ name: String,
+ content: ContentNode,
+ dri: Set<DRI>,
+ embeddedResources: List<String>,
+ children: List<PageNode>
+ ): PackagePageNode =
+ if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this
+ else PackagePageNode(name, content, dri, documentables, children, embeddedResources)
+}
+
+public class ClasslikePageNode(
+ override val name: String,
+ override val content: ContentNode,
+ override val dri: Set<DRI>,
+ override val documentables: List<Documentable> = listOf(),
+ override val children: List<PageNode>,
+ override val embeddedResources: List<String> = listOf()
+) : ClasslikePage {
+ override fun modified(name: String, children: List<PageNode>): ClasslikePageNode =
+ modified(name = name, content = this.content, children = children)
+
+ override fun modified(
+ name: String,
+ content: ContentNode,
+ dri: Set<DRI>,
+ embeddedResources: List<String>,
+ children: List<PageNode>
+ ): ClasslikePageNode =
+ if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this
+ else ClasslikePageNode(name, content, dri, documentables, children, embeddedResources)
+}
+
+public class MemberPageNode(
+ override val name: String,
+ override val content: ContentNode,
+ override val dri: Set<DRI>,
+ override val documentables: List<Documentable> = listOf(),
+ override val children: List<PageNode> = emptyList(),
+ override val embeddedResources: List<String> = listOf()
+) : MemberPage {
+ override fun modified(name: String, children: List<PageNode>): MemberPageNode =
+ modified(name = name, content = this.content, children = children)
+
+ override fun modified(
+ name: String,
+ content: ContentNode,
+ dri: Set<DRI>,
+ embeddedResources: List<String>,
+ children: List<PageNode>
+ ): MemberPageNode =
+ if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this
+ else MemberPageNode(name, content, dri, documentables, children, embeddedResources)
+}
+
+
+public class MultimoduleRootPageNode(
+ override val dri: Set<DRI>,
+ override val content: ContentNode,
+ override val embeddedResources: List<String> = emptyList()
+) : RootPageNode(forceTopLevelName = true), MultimoduleRootPage {
+ override val name: String = "All modules"
+
+ override val children: List<PageNode> = emptyList()
+
+ override fun modified(name: String, children: List<PageNode>): RootPageNode =
+ MultimoduleRootPageNode(dri, content, embeddedResources)
+
+ override fun modified(
+ name: String,
+ content: ContentNode,
+ dri: Set<DRI>,
+ embeddedResources: List<String>,
+ children: List<PageNode>
+ ): ContentPage =
+ if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this
+ else MultimoduleRootPageNode(dri, content, embeddedResources)
+}
+
+public inline fun <reified T : PageNode> PageNode.children(): List<T> = children.filterIsInstance<T>()
+
+private infix fun <T> List<T>.shallowEq(other: List<T>) =
+ this === other || (this.size == other.size && (this zip other).all { (a, b) -> a === b })
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/Pages.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/Pages.kt
new file mode 100644
index 00000000..0bf225c9
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/Pages.kt
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.pages
+
+public interface MultimoduleRootPage : ContentPage
+
+public interface ModulePage : ContentPage, WithDocumentables
+
+public interface PackagePage : ContentPage, WithDocumentables
+
+public interface ClasslikePage : ContentPage, WithDocumentables
+
+public interface MemberPage : ContentPage, WithDocumentables
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/RendererSpecificPage.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/RendererSpecificPage.kt
new file mode 100644
index 00000000..701886b7
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/RendererSpecificPage.kt
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.pages
+
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.DisplaySourceSet
+import org.jetbrains.dokka.renderers.Renderer
+import kotlin.reflect.KClass
+
+public fun interface DriResolver: (DRI, Set<DisplaySourceSet>) -> String?
+public fun interface PageResolver: (PageNode, PageNode?) -> String?
+
+public interface RendererSpecificPage : PageNode {
+ public val strategy: RenderingStrategy
+}
+
+public class RendererSpecificRootPage(
+ override val name: String,
+ override val children: List<PageNode>,
+ override val strategy: RenderingStrategy
+) : RootPageNode(), RendererSpecificPage {
+ override fun modified(name: String, children: List<PageNode>): RendererSpecificRootPage =
+ RendererSpecificRootPage(name, children, strategy)
+}
+
+public class RendererSpecificResourcePage(
+ override val name: String,
+ override val children: List<PageNode>,
+ override val strategy: RenderingStrategy
+): RendererSpecificPage {
+ override fun modified(name: String, children: List<PageNode>): RendererSpecificResourcePage =
+ RendererSpecificResourcePage(name, children, strategy)
+}
+
+public sealed class RenderingStrategy {
+ public class Callback(public val instructions: Renderer.(PageNode) -> String): RenderingStrategy()
+ public data class Copy(val from: String) : RenderingStrategy()
+ public data class Write(val text: String) : RenderingStrategy()
+ public data class DriLocationResolvableWrite(val contentToResolve: (DriResolver) -> String) : RenderingStrategy()
+ public data class PageLocationResolvableWrite(val contentToResolve: (PageResolver) -> String) : RenderingStrategy()
+ public object DoNothing : RenderingStrategy()
+
+ public companion object {
+ public inline operator fun <reified T: Renderer> invoke(crossinline instructions: T.(PageNode) -> String): RenderingStrategy {
+ return Callback { if (this is T) instructions(it) else throw WrongRendererTypeException(T::class) }
+ }
+ }
+}
+
+public data class WrongRendererTypeException(val expectedType: KClass<*>): Exception()
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/contentNodeProperties.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/contentNodeProperties.kt
new file mode 100644
index 00000000..64f19572
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/contentNodeProperties.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.pages
+
+import org.jetbrains.dokka.model.properties.ExtraProperty
+
+public class SimpleAttr(
+ public val extraKey: String,
+ public val extraValue: String
+) : ExtraProperty<ContentNode> {
+ public data class SimpleAttrKey(val key: String) : ExtraProperty.Key<ContentNode, SimpleAttr>
+ override val key: ExtraProperty.Key<ContentNode, SimpleAttr> = SimpleAttrKey(extraKey)
+
+}
+
+public enum class BasicTabbedContentType : TabbedContentType {
+ TYPE, CONSTRUCTOR, FUNCTION, PROPERTY, ENTRY, EXTENSION_PROPERTY, EXTENSION_FUNCTION
+}
+
+/**
+ * It is used only to mark content for tabs in HTML format
+ */
+public interface TabbedContentType
+
+/**
+ * @see TabbedContentType
+ */
+public class TabbedContentTypeExtra(public val value: TabbedContentType) : ExtraProperty<ContentNode> {
+ public companion object : ExtraProperty.Key<ContentNode, TabbedContentTypeExtra>
+ override val key: ExtraProperty.Key<ContentNode, TabbedContentTypeExtra> = TabbedContentTypeExtra
+}
+
+public object HtmlContent : ExtraProperty<ContentNode>, ExtraProperty.Key<ContentNode, HtmlContent> {
+ override val key: ExtraProperty.Key<ContentNode, *> = this
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/utils.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/utils.kt
new file mode 100644
index 00000000..6c416e24
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/utils.kt
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.pages
+
+import kotlin.reflect.KClass
+
+public inline fun <reified T : ContentNode, R : ContentNode> R.mapTransform(noinline operation: (T) -> T): R =
+ mapTransform(T::class, operation)
+
+public inline fun <reified T : ContentNode, R : ContentNode> R.recursiveMapTransform(noinline operation: (T) -> T): R =
+ recursiveMapTransform(T::class, operation)
+
+@PublishedApi
+@Suppress("UNCHECKED_CAST")
+internal fun <T : ContentNode, R : ContentNode> R.mapTransform(type: KClass<T>, operation: (T) -> T): R {
+ if (this::class == type) {
+ return operation(this as T) as R
+ }
+ val new = when (this) {
+ is ContentGroup -> copy(children = children.map { it.mapTransform(type, operation) })
+ is ContentHeader -> copy(children = children.map { it.mapTransform(type, operation) })
+ is ContentCodeBlock -> copy(children = children.map { it.mapTransform(type, operation) })
+ is ContentCodeInline -> copy(children = children.map { it.mapTransform(type, operation) })
+ is ContentTable -> copy(header = header.map { it.recursiveMapTransform(type, operation) }, children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentList -> copy(children = children.map { it.mapTransform(type, operation) })
+ is ContentDivergentGroup -> copy(children = children.map { it.mapTransform(type, operation) })
+ is ContentDivergentInstance -> copy(
+ before = before?.mapTransform(type, operation),
+ divergent = divergent.mapTransform(type, operation),
+ after = after?.mapTransform(type, operation)
+ )
+ is PlatformHintedContent -> copy(inner = inner.mapTransform(type, operation))
+ else -> this
+ }
+ return new as R
+}
+
+@PublishedApi
+@Suppress("UNCHECKED_CAST")
+internal fun <T : ContentNode, R : ContentNode> R.recursiveMapTransform(type: KClass<T>, operation: (T) -> T): R {
+ val new = when (this) {
+ is ContentGroup -> copy(children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentHeader -> copy(children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentCodeBlock -> copy(children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentCodeInline -> copy(children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentTable -> copy(header = header.map { it.recursiveMapTransform(type, operation) }, children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentList -> copy(children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentDivergentGroup -> copy(children = children.map { it.recursiveMapTransform(type, operation) })
+ is ContentDivergentInstance -> copy(
+ before = before?.recursiveMapTransform(type, operation),
+ divergent = divergent.recursiveMapTransform(type, operation),
+ after = after?.recursiveMapTransform(type, operation)
+ )
+ is PlatformHintedContent -> copy(inner = inner.recursiveMapTransform(type, operation))
+ else -> this
+ }
+ if (new::class == type) {
+ return operation(new as T) as R
+ }
+ return new as R
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaContext.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaContext.kt
new file mode 100644
index 00000000..1287e58b
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaContext.kt
@@ -0,0 +1,235 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.plugability
+
+import org.jetbrains.dokka.DokkaConfiguration
+import org.jetbrains.dokka.utilities.DokkaLogger
+import java.io.File
+import java.net.URLClassLoader
+import java.util.*
+import kotlin.reflect.KClass
+import kotlin.reflect.full.createInstance
+
+public interface DokkaContext {
+ public fun <T : DokkaPlugin> plugin(kclass: KClass<T>): T?
+
+ public operator fun <T, E> get(point: E): List<T>
+ where T : Any, E : ExtensionPoint<T>
+
+ public fun <T, E> single(point: E): T where T : Any, E : ExtensionPoint<T>
+
+ public val logger: DokkaLogger
+ public val configuration: DokkaConfiguration
+ public val unusedPoints: Collection<ExtensionPoint<*>>
+
+ public companion object {
+ public fun create(
+ configuration: DokkaConfiguration,
+ logger: DokkaLogger,
+ pluginOverrides: List<DokkaPlugin>
+ ): DokkaContext =
+ DokkaContextConfigurationImpl(logger, configuration).apply {
+ // File(it.path) is a workaround for an incorrect filesystem in a File instance returned by Gradle.
+ configuration.pluginsClasspath.map { File(it.path).toURI().toURL() }
+ .toTypedArray()
+ .let { URLClassLoader(it, this.javaClass.classLoader) }
+ .also { checkClasspath(it) }
+ .let { ServiceLoader.load(DokkaPlugin::class.java, it) }
+ .let { it + pluginOverrides }
+ .forEach { install(it) }
+ topologicallySortAndPrune()
+ }.also { it.logInitialisationInfo() }
+ }
+}
+
+public inline fun <reified T : DokkaPlugin> DokkaContext.plugin(): T = plugin(T::class)
+ ?: throw java.lang.IllegalStateException("Plugin ${T::class.qualifiedName} is not present in context.")
+
+public fun interface DokkaContextConfiguration {
+ public fun installExtension(extension: Extension<*, *, *>)
+}
+
+private class DokkaContextConfigurationImpl(
+ override val logger: DokkaLogger,
+ override val configuration: DokkaConfiguration
+) : DokkaContext, DokkaContextConfiguration {
+ private val plugins = mutableMapOf<KClass<*>, DokkaPlugin>()
+ private val pluginStubs = mutableMapOf<KClass<*>, DokkaPlugin>()
+ val extensions = mutableMapOf<ExtensionPoint<*>, MutableList<Extension<*, *, *>>>()
+ val pointsUsed: MutableSet<ExtensionPoint<*>> = mutableSetOf()
+ val pointsPopulated: MutableSet<ExtensionPoint<*>> = mutableSetOf()
+ override val unusedPoints: Set<ExtensionPoint<*>>
+ get() = pointsPopulated - pointsUsed
+
+ private enum class State {
+ UNVISITED,
+ VISITING,
+ VISITED;
+ }
+
+ private sealed class Suppression {
+ data class ByExtension(val extension: Extension<*, *, *>) : Suppression() {
+ override fun toString() = extension.toString()
+ }
+
+ data class ByPlugin(val plugin: DokkaPlugin) : Suppression() {
+ override fun toString() = "Plugin ${plugin::class.qualifiedName}"
+ }
+ }
+
+ private val rawExtensions = mutableListOf<Extension<*, *, *>>()
+ private val rawAdjacencyList = mutableMapOf<Extension<*, *, *>, MutableList<Extension<*, *, *>>>()
+ private val suppressedExtensions = mutableMapOf<Extension<*, *, *>, MutableList<Suppression>>()
+
+ fun topologicallySortAndPrune() {
+ pointsPopulated.clear()
+ extensions.clear()
+
+ val overridesInfo = processOverrides()
+ val extensionsToSort = overridesInfo.keys
+ val adjacencyList = translateAdjacencyList(overridesInfo)
+
+ val verticesWithState = extensionsToSort.associateWithTo(mutableMapOf()) { State.UNVISITED }
+ val result: MutableList<Extension<*, *, *>> = mutableListOf()
+
+ fun visit(n: Extension<*, *, *>) {
+ val state = verticesWithState[n]
+ if (state == State.VISITED)
+ return
+ if (state == State.VISITING)
+ throw Error("Detected cycle in plugins graph")
+ verticesWithState[n] = State.VISITING
+ adjacencyList[n]?.forEach { visit(it) }
+ verticesWithState[n] = State.VISITED
+ result += n
+ }
+
+ extensionsToSort.forEach(::visit)
+
+ val filteredResult = result.asReversed().filterNot { it in suppressedExtensions }
+
+ filteredResult.mapTo(pointsPopulated) { it.extensionPoint }
+ filteredResult.groupByTo(extensions) { it.extensionPoint }
+ }
+
+ private fun processOverrides(): Map<Extension<*, *, *>, Set<Extension<*, *, *>>> {
+ val buckets = rawExtensions.associateWithTo(mutableMapOf()) { setOf(it) }
+ suppressedExtensions.forEach { (extension, suppressions) ->
+ val mergedBucket = suppressions.filterIsInstance<Suppression.ByExtension>()
+ .map { it.extension }
+ .plus(extension)
+ .flatMap { buckets[it].orEmpty() }
+ .toSet()
+ mergedBucket.forEach { buckets[it] = mergedBucket }
+ }
+ return buckets.values.distinct().associateBy(::findNotOverridden)
+ }
+
+ private fun findNotOverridden(bucket: Set<Extension<*, *, *>>): Extension<*, *, *> {
+ // Let's filter out all suppressedExtensions that are not only overrides.
+ // suppressedExtensions can be polluted by suppressions that completely disables the extension, and would break dokka behaviour
+ // if not filtered out
+ val suppressedExtensionsByOverrides = suppressedExtensions.filterNot { it.value.any { it !is Suppression.ByExtension } }
+ val filtered = bucket.filterNot { it in suppressedExtensionsByOverrides }
+ return filtered.singleOrNull()
+ ?: throw IllegalStateException("Conflicting overrides: $filtered")
+ }
+
+ private fun translateAdjacencyList(
+ overridesInfo: Map<Extension<*, *, *>, Set<Extension<*, *, *>>>
+ ): Map<Extension<*, *, *>, List<Extension<*, *, *>>> {
+ val reverseOverrideInfo = overridesInfo.flatMap { (ext, set) -> set.map { it to ext } }.toMap()
+ return rawAdjacencyList.mapNotNull { (ext, list) ->
+ reverseOverrideInfo[ext]?.to(list.mapNotNull { reverseOverrideInfo[it] })
+ }.toMap()
+ }
+
+ @Suppress("UNCHECKED_CAST")
+ override operator fun <T, E> get(point: E) where T : Any, E : ExtensionPoint<T> =
+ actions(point).also { pointsUsed += point }.orEmpty() as List<T>
+
+ @Suppress("UNCHECKED_CAST")
+ override fun <T, E> single(point: E): T where T : Any, E : ExtensionPoint<T> {
+ fun throwBadArity(substitution: String): Nothing = throw IllegalStateException(
+ "$point was expected to have exactly one extension registered, but $substitution found."
+ )
+ pointsUsed += point
+
+ val extensions = extensions[point].orEmpty() as List<Extension<T, *, *>>
+ return when (extensions.size) {
+ 0 -> throwBadArity("none was")
+ 1 -> extensions.single().action.get(this)
+ else -> throwBadArity("many were")
+ }
+ }
+
+ private fun <E : ExtensionPoint<*>> actions(point: E) = extensions[point]?.map { it.action.get(this) }
+
+ @Suppress("UNCHECKED_CAST")
+ override fun <T : DokkaPlugin> plugin(kclass: KClass<T>) = (plugins[kclass] ?: pluginStubFor(kclass)) as T
+
+ private fun <T : DokkaPlugin> pluginStubFor(kclass: KClass<T>): DokkaPlugin =
+ pluginStubs.getOrPut(kclass) { kclass.createInstance().also { it.context = this } }
+
+ fun install(plugin: DokkaPlugin) {
+ plugins[plugin::class] = plugin
+ plugin.context = this
+ plugin.internalInstall(this, this.configuration)
+
+ if (plugin is WithUnsafeExtensionSuppression) {
+ plugin.extensionsSuppressed.forEach {
+ suppressedExtensions.listFor(it) += Suppression.ByPlugin(plugin)
+ }
+ }
+ }
+
+ override fun installExtension(extension: Extension<*, *, *>) {
+ rawExtensions += extension
+
+ if (extension.ordering is OrderingKind.ByDsl) {
+ val orderDsl = OrderDsl()
+ orderDsl.(extension.ordering.block)()
+
+ rawAdjacencyList.listFor(extension) += orderDsl.following.toList()
+ orderDsl.previous.forEach { rawAdjacencyList.listFor(it) += extension }
+ }
+
+ if (extension.override is OverrideKind.Present) {
+ fun root(ext: Extension<*, *, *>): List<Extension<*, *, *>> = if (ext.override is OverrideKind.Present) ext.override.overriden.flatMap(::root) else listOf(ext)
+ if (extension.override.overriden.size > 1 && root(extension).distinct().size > 1)
+ throw IllegalStateException("Extension $extension overrides extensions without common root")
+ extension.override.overriden.forEach { overriden ->
+ suppressedExtensions.listFor(overriden) += Suppression.ByExtension(extension)
+ }
+ }
+ }
+
+ fun logInitialisationInfo() {
+ val pluginNames = plugins.values.map { it::class.qualifiedName.toString() }
+
+ val loadedListForDebug = extensions.run { keys + values.flatten() }.toList()
+ .joinToString(prefix = "[\n", separator = ",\n", postfix = "\n]") { "\t$it" }
+
+ val suppressedList = suppressedExtensions.asSequence()
+ .joinToString(prefix = "[\n", separator = ",\n", postfix = "\n]") {
+ "\t${it.key} by " + (it.value.singleOrNull() ?: it.value)
+ }
+
+ logger.info("Loaded plugins: $pluginNames")
+ logger.info("Loaded: $loadedListForDebug")
+ logger.info("Suppressed: $suppressedList")
+ }
+}
+
+private fun checkClasspath(classLoader: URLClassLoader) {
+ classLoader.findResource(DokkaContext::class.java.name.replace('.', '/') + ".class")?.also {
+ throw AssertionError(
+ "Dokka API found on plugins classpath. This will lead to subtle bugs. " +
+ "Please fix your plugins dependencies or exclude dokka api artifact from plugin classpath"
+ )
+ }
+}
+
+private fun <K, V> MutableMap<K, MutableList<V>>.listFor(key: K) = getOrPut(key, ::mutableListOf)
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaJavaPlugin.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaJavaPlugin.kt
new file mode 100644
index 00000000..3c2f5e65
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaJavaPlugin.kt
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.plugability
+
+import org.jetbrains.dokka.DokkaConfiguration
+
+public class ExtensionBuilderStart internal constructor(){
+ public fun <T: Any> extensionPoint(ext: ExtensionPoint<T>): ProvidedExtension<T> = ProvidedExtension(ext)
+}
+
+public class ProvidedExtension<T: Any> internal constructor(
+ public val ext: ExtensionPoint<T>
+) {
+ public fun fromInstance(inst: T): ExtensionBuilder<T> = createBuilder(
+ LazyEvaluated.fromInstance(
+ inst
+ )
+ )
+ public fun fromRecipe(recipe: (DokkaContext) -> T): ExtensionBuilder<T> = createBuilder(
+ LazyEvaluated.fromRecipe(recipe)
+ )
+
+ private val defaultName = "${ext.pointName}/in/${javaClass.simpleName}"
+
+ private fun createBuilder(action: LazyEvaluated<T>) =
+ ExtensionBuilder(defaultName, ext, action,
+ emptyList(), emptyList(),
+ OverrideKind.None, emptyList())
+}
+
+public data class ExtensionBuilder<T: Any> internal constructor(
+ private val name: String,
+ private val ext: ExtensionPoint<T>,
+ private val action: LazyEvaluated<T>,
+ private val before: List<Extension<*, *, *>>,
+ private val after: List<Extension<*, *, *>>,
+ private val override: OverrideKind = OverrideKind.None,
+ private val conditions: List<(DokkaConfiguration) -> Boolean>
+){
+ public fun build(): Extension<T, *, *> = Extension(
+ ext,
+ javaClass.name,
+ name,
+ action,
+ OrderingKind.ByDsl {
+ before(*before.toTypedArray())
+ after(*after.toTypedArray())
+ },
+ override,
+ conditions
+ )
+
+ public fun overrideExtension(extension: Extension<T, *, *>): ExtensionBuilder<T> = copy(override = OverrideKind.Present(listOf(extension)))
+
+ public fun newOrdering(before: Array<out Extension<*, *, *>>, after: Array<out Extension<*, *, *>>): ExtensionBuilder<T> =
+ copy(before = this.before + before, after = this.after + after)
+
+ public fun before(vararg exts: Extension<*, *, *>): ExtensionBuilder<T> = copy(before = this.before + exts)
+
+ public fun after(vararg exts: Extension<*, *, *>): ExtensionBuilder<T> = copy(after = this.after + exts)
+
+ public fun addCondition(c: (DokkaConfiguration) -> Boolean): ExtensionBuilder<T> = copy(conditions = conditions + c)
+
+ public fun name(name: String): ExtensionBuilder<T> = copy(name = name)
+}
+
+public abstract class DokkaJavaPlugin: DokkaPlugin() {
+
+ public fun <T: DokkaPlugin> plugin(clazz: Class<T>): T =
+ context?.plugin(clazz.kotlin) ?: throwIllegalQuery()
+
+
+ public fun <T: Any> extend(func: (ExtensionBuilderStart) -> ExtensionBuilder<T>): Lazy<Extension<T, *, *>> =
+ lazy { func(ExtensionBuilderStart()).build() }.also { unsafeInstall(it) }
+
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaPlugin.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaPlugin.kt
new file mode 100644
index 00000000..7e15c325
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaPlugin.kt
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.plugability
+
+import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule
+import com.fasterxml.jackson.dataformat.xml.XmlMapper
+import com.fasterxml.jackson.module.kotlin.readValue
+import org.jetbrains.dokka.DokkaConfiguration
+import org.jetbrains.dokka.utilities.DokkaLogger
+import org.jetbrains.dokka.utilities.parseJson
+import kotlin.properties.ReadOnlyProperty
+import kotlin.reflect.KProperty
+import kotlin.reflect.KProperty1
+
+@RequiresOptIn(
+ level = RequiresOptIn.Level.WARNING,
+ message = "All of Dokka's plugin API is in preview and it can be changed " +
+ "in a backwards-incompatible manner with a best-effort migration. " +
+ "By opting in, you acknowledge the risks of relying on preview API."
+)
+@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.FIELD)
+@Retention(AnnotationRetention.BINARY)
+public annotation class DokkaPluginApiPreview
+
+/**
+ * Acknowledgement for empty methods that inform users about [DokkaPluginApiPreview]
+ * Also, it allows to not propagates the annotation in IDE by default when a user autogenerate methods.
+ */
+@DokkaPluginApiPreview
+public object PluginApiPreviewAcknowledgement
+
+public abstract class DokkaPlugin {
+ private val extensionDelegates = mutableListOf<KProperty<*>>()
+ private val unsafePlugins = mutableListOf<Lazy<Extension<*, *, *>>>()
+
+ @PublishedApi
+ internal var context: DokkaContext? = null
+
+ protected val logger: DokkaLogger get() = context?.logger ?: throw IllegalStateException("No logger found")
+
+ /**
+ * @see PluginApiPreviewAcknowledgement
+ */
+ @OptIn(DokkaPluginApiPreview::class)
+ protected abstract fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement
+ protected inline fun <reified T : DokkaPlugin> plugin(): T = context?.plugin(T::class) ?: throwIllegalQuery()
+
+ protected fun <T : Any> extensionPoint(): ReadOnlyProperty<DokkaPlugin, ExtensionPoint<T>> {
+ return ReadOnlyProperty { thisRef, property ->
+ ExtensionPoint(
+ thisRef::class.qualifiedName ?: throw AssertionError("Plugin must be named class"),
+ property.name
+ )
+ }
+ }
+ protected fun <T : Any> extending(definition: ExtendingDSL.() -> Extension<T, *, *>): ExtensionProvider<T> {
+ return ExtensionProvider(definition)
+ }
+
+ protected class ExtensionProvider<T : Any> internal constructor(
+ private val definition: ExtendingDSL.() -> Extension<T, *, *>
+ ) {
+ public operator fun provideDelegate(thisRef: DokkaPlugin, property: KProperty<*>): Lazy<Extension<T, *, *>> {
+ return lazy {
+ ExtendingDSL(
+ thisRef::class.qualifiedName ?: throw AssertionError("Plugin must be named class"),
+ property.name
+ ).definition()
+ }.also { thisRef.extensionDelegates += property }
+ }
+ }
+
+ internal fun internalInstall(ctx: DokkaContextConfiguration, configuration: DokkaConfiguration) {
+ val extensionsToInstall = extensionDelegates.asSequence()
+ .filterIsInstance<KProperty1<DokkaPlugin, Extension<*, *, *>>>() // should be always true
+ .map { it.get(this) } + unsafePlugins.map { it.value }
+
+ extensionsToInstall.forEach { if (configuration.(it.condition)()) ctx.installExtension(it) }
+ }
+
+ protected fun <T : Any> unsafeInstall(ext: Lazy<Extension<T, *, *>>) {
+ unsafePlugins.add(ext)
+ }
+}
+
+public interface WithUnsafeExtensionSuppression {
+ public val extensionsSuppressed: List<Extension<*, *, *>>
+}
+
+public interface ConfigurableBlock
+
+public inline fun <reified P : DokkaPlugin, reified E : Any> P.query(extension: P.() -> ExtensionPoint<E>): List<E> =
+ context?.let { it[extension()] } ?: throwIllegalQuery()
+
+public inline fun <reified P : DokkaPlugin, reified E : Any> P.querySingle(extension: P.() -> ExtensionPoint<E>): E =
+ context?.single(extension()) ?: throwIllegalQuery()
+
+public fun throwIllegalQuery(): Nothing =
+ throw IllegalStateException("Querying about plugins is only possible with dokka context initialised")
+
+public inline fun <reified T : DokkaPlugin, reified R : ConfigurableBlock> configuration(context: DokkaContext): R? =
+ context.configuration.pluginsConfiguration.firstOrNull { it.fqPluginName == T::class.qualifiedName }
+ ?.let { configuration ->
+ when (configuration.serializationFormat) {
+ DokkaConfiguration.SerializationFormat.JSON -> parseJson(configuration.values)
+ DokkaConfiguration.SerializationFormat.XML -> XmlMapper(JacksonXmlModule().apply {
+ setDefaultUseWrapper(
+ true
+ )
+ }).readValue<R>(configuration.values)
+ }
+ }
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/LazyEvaluated.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/LazyEvaluated.kt
new file mode 100644
index 00000000..46f15b17
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/LazyEvaluated.kt
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.plugability
+
+internal class LazyEvaluated<T : Any> private constructor(private val recipe: ((DokkaContext) -> T)? = null, private var value: T? = null) {
+
+ @Synchronized
+ internal fun get(context: DokkaContext): T {
+ if(value == null) {
+ value = recipe?.invoke(context)
+ }
+ return value ?: throw AssertionError("Incorrect initialized LazyEvaluated instance")
+ }
+
+ companion object {
+ fun <T : Any> fromInstance(value: T) = LazyEvaluated(value = value)
+ fun <T : Any> fromRecipe(recipe: (DokkaContext) -> T) = LazyEvaluated(recipe = recipe)
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/extensions.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/extensions.kt
new file mode 100644
index 00000000..04212d1a
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/extensions.kt
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.plugability
+
+import org.jetbrains.dokka.DokkaConfiguration
+
+public data class ExtensionPoint<T : Any> internal constructor(
+ internal val pluginClass: String,
+ internal val pointName: String
+) {
+ override fun toString(): String = "ExtensionPoint: $pluginClass/$pointName"
+}
+
+public sealed class OrderingKind {
+ public object None : OrderingKind()
+
+ public class ByDsl(
+ public val block: (OrderDsl.() -> Unit)
+ ) : OrderingKind()
+}
+
+public sealed class OverrideKind {
+ public object None : OverrideKind()
+ public class Present(
+ public val overriden: List<Extension<*, *, *>>
+ ) : OverrideKind()
+}
+
+public class Extension<T : Any, Ordering : OrderingKind, Override : OverrideKind> internal constructor(
+ internal val extensionPoint: ExtensionPoint<T>,
+ internal val pluginClass: String,
+ internal val extensionName: String,
+ internal val action: LazyEvaluated<T>,
+ internal val ordering: Ordering,
+ internal val override: Override,
+ internal val conditions: List<DokkaConfiguration.() -> Boolean>
+) {
+ override fun toString(): String = "Extension: $pluginClass/$extensionName"
+
+ override fun equals(other: Any?): Boolean =
+ if (other is Extension<*, *, *>) this.pluginClass == other.pluginClass && this.extensionName == other.extensionName
+ else false
+
+ override fun hashCode(): Int = listOf(pluginClass, extensionName).hashCode()
+
+ public val condition: DokkaConfiguration.() -> Boolean
+ get() = { conditions.all { it(this) } }
+}
+
+internal fun <T : Any> Extension(
+ extensionPoint: ExtensionPoint<T>,
+ pluginClass: String,
+ extensionName: String,
+ action: LazyEvaluated<T>
+) = Extension(extensionPoint, pluginClass, extensionName, action, OrderingKind.None, OverrideKind.None, emptyList())
+
+@DslMarker
+public annotation class ExtensionsDsl
+
+@ExtensionsDsl
+public class ExtendingDSL(private val pluginClass: String, private val extensionName: String) {
+
+ public infix fun <T : Any> ExtensionPoint<T>.with(action: T): Extension<T, OrderingKind.None, OverrideKind.None> {
+ return Extension(this, this@ExtendingDSL.pluginClass, extensionName, LazyEvaluated.fromInstance(action))
+ }
+
+ public infix fun <T : Any> ExtensionPoint<T>.providing(action: (DokkaContext) -> T): Extension<T, OrderingKind.None, OverrideKind.None> {
+ return Extension(this, this@ExtendingDSL.pluginClass, extensionName, LazyEvaluated.fromRecipe(action))
+ }
+
+ public infix fun <T : Any, Override : OverrideKind> Extension<T, OrderingKind.None, Override>.order(
+ block: OrderDsl.() -> Unit
+ ): Extension<T, OrderingKind.ByDsl, Override> {
+ return Extension(extensionPoint, pluginClass, extensionName, action, OrderingKind.ByDsl(block), override, conditions)
+ }
+
+ public infix fun <T : Any, Override : OverrideKind, Ordering: OrderingKind> Extension<T, Ordering, Override>.applyIf(
+ condition: DokkaConfiguration.() -> Boolean
+ ): Extension<T, Ordering, Override> {
+ return Extension(extensionPoint, pluginClass, extensionName, action, ordering, override, conditions + condition)
+ }
+
+ public infix fun <T : Any, Override : OverrideKind, Ordering: OrderingKind> Extension<T, Ordering, Override>.override(
+ overriden: List<Extension<T, *, *>>
+ ): Extension<T, Ordering, OverrideKind.Present> {
+ return Extension(extensionPoint, pluginClass, extensionName, action, ordering, OverrideKind.Present(overriden), conditions)
+ }
+
+ public infix fun <T : Any, Override : OverrideKind, Ordering: OrderingKind> Extension<T, Ordering, Override>.override(
+ overriden: Extension<T, *, *>
+ ): Extension<T, Ordering, OverrideKind.Present> {
+ return this.override(listOf(overriden))
+ }
+}
+
+@ExtensionsDsl
+public class OrderDsl {
+ internal val previous = mutableSetOf<Extension<*, *, *>>()
+ internal val following = mutableSetOf<Extension<*, *, *>>()
+
+ public fun after(vararg extensions: Extension<*, *, *>) {
+ previous += extensions
+ }
+
+ public fun before(vararg extensions: Extension<*, *, *>) {
+ following += extensions
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/PostAction.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/PostAction.kt
new file mode 100644
index 00000000..191a77b3
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/PostAction.kt
@@ -0,0 +1,7 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.renderers
+
+public fun interface PostAction : () -> Unit
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/Renderer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/Renderer.kt
new file mode 100644
index 00000000..f1583506
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/Renderer.kt
@@ -0,0 +1,11 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.renderers
+
+import org.jetbrains.dokka.pages.RootPageNode
+
+public fun interface Renderer {
+ public fun render(root: RootPageNode)
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger.kt
new file mode 100644
index 00000000..fe1e5d64
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger.kt
@@ -0,0 +1,307 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.documentation
+
+import org.jetbrains.dokka.DokkaConfiguration
+import org.jetbrains.dokka.InternalDokkaApi
+import org.jetbrains.dokka.model.*
+import org.jetbrains.dokka.model.properties.ExtraProperty
+import org.jetbrains.dokka.model.properties.MergeStrategy
+import org.jetbrains.dokka.model.properties.mergeExtras
+import org.jetbrains.dokka.plugability.DokkaContext
+import org.jetbrains.dokka.CoreExtensions
+
+/**
+ * Should NOT be used outside of Dokka itself, there are no guarantees
+ * this class will continue to exist in future releases.
+ *
+ * This class resides in core because it is a non-trivial implementation
+ * for a core extension [CoreExtensions.documentableMerger], which is needed
+ * in modules that only have access to `dokka-core`.
+ */
+@InternalDokkaApi
+public class DefaultDocumentableMerger(context: DokkaContext) : DocumentableMerger {
+ private val dependencyInfo = context.getDependencyInfo()
+
+ override fun invoke(modules: Collection<DModule>): DModule? =
+ modules.reduceOrNull { left, right ->
+ val list = listOf(left, right)
+ DModule(
+ name = modules.map { it.name }.distinct().joinToString("|"),
+ packages = merge(
+ list.flatMap { it.packages }
+ ) { pck1, pck2 -> pck1.mergeWith(pck2) },
+ documentation = list.map { it.documentation }.flatMap { it.entries }.associate { (k, v) -> k to v },
+ expectPresentInSet = list.firstNotNullOfOrNull { it.expectPresentInSet },
+ sourceSets = list.flatMap { it.sourceSets }.toSet()
+ ).mergeExtras(left, right)
+ }
+
+ private fun DokkaContext.getDependencyInfo()
+ : Map<DokkaConfiguration.DokkaSourceSet, List<DokkaConfiguration.DokkaSourceSet>> {
+
+ fun getDependencies(sourceSet: DokkaConfiguration.DokkaSourceSet): List<DokkaConfiguration.DokkaSourceSet> =
+ listOf(sourceSet) + configuration.sourceSets.filter {
+ it.sourceSetID in sourceSet.dependentSourceSets
+ }.flatMap { getDependencies(it) }
+
+ return configuration.sourceSets.associateWith { getDependencies(it) }
+ }
+
+ private fun <T : Documentable> merge(elements: List<T>, reducer: (T, T) -> T): List<T> =
+ elements.groupingBy { it.dri }
+ .reduce { _, left, right -> reducer(left, right) }
+ .values.toList()
+
+ private fun <T> mergeExpectActual(
+ elements: List<T>,
+ reducer: (T, T) -> T
+ ): List<T> where T : Documentable, T : WithSources {
+
+ fun mergeClashingElements(elements: List<Pair<T, Set<DokkaConfiguration.DokkaSourceSet>>>): List<T> =
+ elements.groupBy { it.first.name }.values.flatMap { listOfDocumentableToSSIds ->
+ val merged = listOfDocumentableToSSIds.map { (documentable, sourceSets) ->
+ when (documentable) {
+ is DClass -> documentable.copy(
+ extra = documentable.extra + ClashingDriIdentifier(
+ sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet())
+ )
+ )
+ is DObject -> documentable.copy(
+ extra = documentable.extra + ClashingDriIdentifier(
+ sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet())
+ )
+ )
+ is DAnnotation -> documentable.copy(
+ extra = documentable.extra + ClashingDriIdentifier(
+ sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet())
+ )
+ )
+ is DInterface -> documentable.copy(
+ extra = documentable.extra + ClashingDriIdentifier(
+ sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet())
+ )
+ )
+ is DEnum -> documentable.copy(
+ extra = documentable.extra + ClashingDriIdentifier(
+ sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet())
+ )
+ )
+ is DFunction -> documentable.copy(
+ extra = documentable.extra + ClashingDriIdentifier(
+ sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet())
+ )
+ )
+ is DProperty -> documentable.copy(
+ extra = documentable.extra + ClashingDriIdentifier(
+ sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet())
+ )
+ )
+ else -> documentable
+ }
+ }
+ @Suppress("UNCHECKED_CAST")
+ merged as List<T>
+ }
+
+
+ fun analyzeExpectActual(sameDriElements: List<T>): List<T> {
+ val (expects, actuals) = sameDriElements.partition { it.expectPresentInSet != null }
+ val groupedByOwnExpectWithActualSourceSetIds = expects.map { expect ->
+ val actualsForGivenExpect = actuals.filter { actual ->
+ dependencyInfo[actual.sourceSets.single()]
+ ?.contains(expect.expectPresentInSet!!)
+ ?: throw IllegalStateException("Cannot resolve expect/actual relation for ${actual.name}")
+ }
+ (listOf(expect) + actualsForGivenExpect) to actualsForGivenExpect.flatMap { it.sourceSets }.toSet()
+ }
+ val reducedToOneDocumentableWithActualSourceSetIds =
+ groupedByOwnExpectWithActualSourceSetIds.map { it.first.reduce(reducer) to it.second }
+ return reducedToOneDocumentableWithActualSourceSetIds.let(::mergeClashingElements)
+ }
+
+
+ return elements.partition {
+ (it as? WithIsExpectActual)?.isExpectActual ?: false
+ }.let { (expectActuals, notExpectActuals) ->
+ notExpectActuals.map { it to it.sourceSets }
+ .groupBy { it.first.dri }.values.flatMap(::mergeClashingElements) +
+ expectActuals.groupBy { it.dri }.values.flatMap(::analyzeExpectActual)
+ }
+ }
+
+ public fun DPackage.mergeWith(other: DPackage): DPackage = copy(
+ functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) },
+ properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) },
+ classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) },
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ typealiases = merge(typealiases + other.typealiases) { ta1, ta2 -> ta1.mergeWith(ta2) },
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ public fun DFunction.mergeWith(other: DFunction): DFunction = copy(
+ parameters = merge(this.parameters + other.parameters) { p1, p2 -> p1.mergeWith(p2) },
+ receiver = receiver?.let { r -> other.receiver?.let { r.mergeWith(it) } ?: r } ?: other.receiver,
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sources = sources + other.sources,
+ visibility = visibility + other.visibility,
+ modifier = modifier + other.modifier,
+ sourceSets = sourceSets + other.sourceSets,
+ generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) },
+ ).mergeExtras(this, other)
+
+ public fun DProperty.mergeWith(other: DProperty): DProperty = copy(
+ receiver = receiver?.let { r -> other.receiver?.let { r.mergeWith(it) } ?: r } ?: other.receiver,
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sources = sources + other.sources,
+ visibility = visibility + other.visibility,
+ modifier = modifier + other.modifier,
+ sourceSets = sourceSets + other.sourceSets,
+ getter = getter?.let { g -> other.getter?.let { g.mergeWith(it) } ?: g } ?: other.getter,
+ setter = setter?.let { s -> other.setter?.let { s.mergeWith(it) } ?: s } ?: other.setter,
+ generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) },
+ ).mergeExtras(this, other)
+
+ private fun DClasslike.mergeWith(other: DClasslike): DClasslike = when {
+ this is DClass && other is DClass -> mergeWith(other)
+ this is DEnum && other is DEnum -> mergeWith(other)
+ this is DInterface && other is DInterface -> mergeWith(other)
+ this is DObject && other is DObject -> mergeWith(other)
+ this is DAnnotation && other is DAnnotation -> mergeWith(other)
+ else -> throw IllegalStateException("${this::class.qualifiedName} ${this.name} cannot be merged with ${other::class.qualifiedName} ${other.name}")
+ }
+
+ private fun DClass.mergeWith(other: DClass): DClass = copy(
+ constructors = mergeExpectActual(
+ constructors + other.constructors
+ ) { f1, f2 -> f1.mergeWith(f2) },
+ functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) },
+ properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) },
+ classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) },
+ companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion,
+ generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) },
+ modifier = modifier + other.modifier,
+ supertypes = supertypes + other.supertypes,
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sources = sources + other.sources,
+ visibility = visibility + other.visibility,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ private fun DEnum.mergeWith(other: DEnum): DEnum = copy(
+ entries = merge(entries + other.entries) { ee1, ee2 -> ee1.mergeWith(ee2) },
+ constructors = mergeExpectActual(
+ constructors + other.constructors
+ ) { f1, f2 -> f1.mergeWith(f2) },
+ functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) },
+ properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) },
+ classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) },
+ companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion,
+ supertypes = supertypes + other.supertypes,
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sources = sources + other.sources,
+ visibility = visibility + other.visibility,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ private fun DEnumEntry.mergeWith(other: DEnumEntry): DEnumEntry = copy(
+ functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) },
+ properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) },
+ classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) },
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ private fun DObject.mergeWith(other: DObject): DObject = copy(
+ functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) },
+ properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) },
+ classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) },
+ supertypes = supertypes + other.supertypes,
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sources = sources + other.sources,
+ visibility = visibility + other.visibility,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ private fun DInterface.mergeWith(other: DInterface): DInterface = copy(
+ functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) },
+ properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) },
+ classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) },
+ companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion,
+ generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) },
+ supertypes = supertypes + other.supertypes,
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sources = sources + other.sources,
+ visibility = visibility + other.visibility,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ private fun DAnnotation.mergeWith(other: DAnnotation): DAnnotation = copy(
+ constructors = mergeExpectActual(
+ constructors + other.constructors
+ ) { f1, f2 -> f1.mergeWith(f2) },
+ functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) },
+ properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) },
+ classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) },
+ companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion,
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sources = sources + other.sources,
+ visibility = visibility + other.visibility,
+ sourceSets = sourceSets + other.sourceSets,
+ generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) }
+ ).mergeExtras(this, other)
+
+ private fun DParameter.mergeWith(other: DParameter): DParameter = copy(
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ private fun DTypeParameter.mergeWith(other: DTypeParameter): DTypeParameter = copy(
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+
+ private fun DTypeAlias.mergeWith(other: DTypeAlias): DTypeAlias = copy(
+ documentation = documentation + other.documentation,
+ expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet,
+ underlyingType = underlyingType + other.underlyingType,
+ visibility = visibility + other.visibility,
+ sourceSets = sourceSets + other.sourceSets
+ ).mergeExtras(this, other)
+}
+
+public data class ClashingDriIdentifier(val value: Set<DokkaConfiguration.DokkaSourceSet>) : ExtraProperty<Documentable> {
+ public companion object : ExtraProperty.Key<Documentable, ClashingDriIdentifier> {
+ override fun mergeStrategyFor(
+ left: ClashingDriIdentifier,
+ right: ClashingDriIdentifier
+ ): MergeStrategy<Documentable> =
+ MergeStrategy.Replace(ClashingDriIdentifier(left.value + right.value))
+ }
+
+ override val key: ExtraProperty.Key<Documentable, *> = ClashingDriIdentifier
+}
+
+// TODO [beresnev] remove this copy-paste and use the same method from stdlib instead after updating to 1.5
+private inline fun <T, R : Any> Iterable<T>.firstNotNullOfOrNull(transform: (T) -> R?): R? {
+ for (element in this) {
+ val result = transform(element)
+ if (result != null) {
+ return result
+ }
+ }
+ return null
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableMerger.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableMerger.kt
new file mode 100644
index 00000000..aff1f763
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableMerger.kt
@@ -0,0 +1,12 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.documentation
+
+import org.jetbrains.dokka.model.DModule
+
+public fun interface DocumentableMerger {
+ public operator fun invoke(modules: Collection<DModule>): DModule?
+}
+
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator.kt
new file mode 100644
index 00000000..ad35ab1d
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator.kt
@@ -0,0 +1,13 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.documentation
+
+import org.jetbrains.dokka.model.DModule
+import org.jetbrains.dokka.pages.RootPageNode
+
+public fun interface DocumentableToPageTranslator {
+ public operator fun invoke(module: DModule): RootPageNode
+}
+
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableTransformer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableTransformer.kt
new file mode 100644
index 00000000..f680b9f3
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableTransformer.kt
@@ -0,0 +1,12 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.documentation
+
+import org.jetbrains.dokka.model.DModule
+import org.jetbrains.dokka.plugability.DokkaContext
+
+public fun interface DocumentableTransformer {
+ public operator fun invoke(original: DModule, context: DokkaContext): DModule
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer.kt
new file mode 100644
index 00000000..8ae28605
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer.kt
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.documentation
+
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+import org.jetbrains.dokka.DokkaConfiguration.PackageOptions
+import org.jetbrains.dokka.model.DModule
+import org.jetbrains.dokka.model.Documentable
+import org.jetbrains.dokka.model.DocumentableSource
+import org.jetbrains.dokka.model.WithSources
+
+public interface PreMergeDocumentableTransformer {
+ public operator fun invoke(modules: List<DModule>): List<DModule>
+}
+
+/**
+ * It is fair to assume that a given [Documentable] is not merged when seen by the [PreMergeDocumentableTransformer].
+ * Therefore, it can also be assumed, that there is just a single source set connected to the given [documentable]
+ * @return the single source set associated with this [documentable].
+ */
+@Suppress("UnusedReceiverParameter") // Receiver is used for scoping this function
+public fun PreMergeDocumentableTransformer.sourceSet(documentable: Documentable): DokkaSourceSet {
+ return documentable.sourceSets.single()
+}
+
+/**
+ * @return The [PackageOptions] associated with this documentable, or null
+ */
+public fun PreMergeDocumentableTransformer.perPackageOptions(documentable: Documentable): PackageOptions? {
+ val packageName = documentable.dri.packageName ?: return null
+ return sourceSet(documentable).perPackageOptions
+ .sortedByDescending { packageOptions -> packageOptions.matchingRegex.length }
+ .firstOrNull { packageOptions -> Regex(packageOptions.matchingRegex).matches(packageName) }
+}
+
+public fun <T> PreMergeDocumentableTransformer.source(documentable: T): DocumentableSource where T : Documentable, T : WithSources =
+ checkNotNull(documentable.sources[sourceSet(documentable)])
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageCreator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageCreator.kt
new file mode 100644
index 00000000..8c008f04
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageCreator.kt
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.pages
+
+import org.jetbrains.dokka.pages.RootPageNode
+
+public interface CreationContext
+
+public object NoCreationContext : CreationContext
+
+public interface PageCreator<T: CreationContext> {
+ public operator fun invoke(creationContext: T): RootPageNode
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformer.kt
new file mode 100644
index 00000000..b2bbc1d1
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformer.kt
@@ -0,0 +1,11 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.pages
+
+import org.jetbrains.dokka.pages.RootPageNode
+
+public fun interface PageTransformer {
+ public operator fun invoke(input: RootPageNode): RootPageNode
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformerBuilders.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformerBuilders.kt
new file mode 100644
index 00000000..a00c1578
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformerBuilders.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.pages
+
+import org.jetbrains.dokka.pages.PageNode
+import org.jetbrains.dokka.pages.RootPageNode
+
+public fun pageScanner(block: PageNode.() -> Unit): PageTransformer {
+ return PageTransformer { input -> input.invokeOnAll(block) as RootPageNode }
+}
+
+public fun pageMapper(block: PageNode.() -> PageNode): PageTransformer {
+ return PageTransformer { input -> input.alterChildren(block) as RootPageNode }
+}
+
+public fun pageStructureTransformer(block: RootPageNode.() -> RootPageNode): PageTransformer {
+ return PageTransformer { input -> block(input) }
+}
+
+public fun PageNode.invokeOnAll(block: PageNode.() -> Unit): PageNode =
+ this.also(block).also { it.children.forEach { it.invokeOnAll(block) } }
+
+public fun PageNode.alterChildren(block: PageNode.() -> PageNode): PageNode =
+ block(this).modified(children = this.children.map { it.alterChildren(block) })
+
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator.kt
new file mode 100644
index 00000000..f7f45d25
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator.kt
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.sources
+
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.runBlocking
+import org.jetbrains.dokka.DokkaConfiguration
+import org.jetbrains.dokka.model.DModule
+import org.jetbrains.dokka.plugability.DokkaContext
+
+public interface AsyncSourceToDocumentableTranslator : SourceToDocumentableTranslator {
+ public suspend fun invokeSuspending(sourceSet: DokkaConfiguration.DokkaSourceSet, context: DokkaContext): DModule
+
+ override fun invoke(sourceSet: DokkaConfiguration.DokkaSourceSet, context: DokkaContext): DModule =
+ runBlocking(Dispatchers.Default) {
+ invokeSuspending(sourceSet, context)
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator.kt
new file mode 100644
index 00000000..04f11830
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator.kt
@@ -0,0 +1,13 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.transformers.sources
+
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+import org.jetbrains.dokka.model.DModule
+import org.jetbrains.dokka.plugability.DokkaContext
+
+public fun interface SourceToDocumentableTranslator {
+ public fun invoke(sourceSet: DokkaSourceSet, context: DokkaContext): DModule
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Collections.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Collections.kt
new file mode 100644
index 00000000..e0b84a28
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Collections.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import org.jetbrains.dokka.InternalDokkaApi
+
+/**
+ * This utility method was previously imported from `org.jetbrains.kotlin.utils.addToStdlib`,
+ * and there were a lot of usages. Since no replacement exists in stdlib, it was implemented
+ * locally for convenience.
+ */
+@InternalDokkaApi
+public inline fun <reified T : Any> Iterable<*>.firstIsInstanceOrNull(): T? {
+ for (element in this) if (element is T) return element
+ return null
+}
+
+/**
+ * This utility method was previously imported from `org.jetbrains.kotlin.utils.addToStdlib`,
+ * and there were a lot of usages. Since no replacement exists in stdlib, it was implemented
+ * locally for convenience.
+ */
+@InternalDokkaApi
+public inline fun <reified T : Any> Sequence<*>.firstIsInstanceOrNull(): T? {
+ for (element in this) if (element is T) return element
+ return null
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/DokkaLogging.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/DokkaLogging.kt
new file mode 100644
index 00000000..7855c9c1
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/DokkaLogging.kt
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import java.util.concurrent.atomic.AtomicInteger
+
+public interface DokkaLogger {
+ public var warningsCount: Int
+ public var errorsCount: Int
+
+ public fun debug(message: String)
+ public fun info(message: String)
+ public fun progress(message: String)
+ public fun warn(message: String)
+ public fun error(message: String)
+}
+
+public fun DokkaLogger.report() {
+ if (warningsCount > 0 || errorsCount > 0) {
+ info(
+ "Generation completed with $warningsCount warning" +
+ (if (warningsCount == 1) "" else "s") +
+ " and $errorsCount error" +
+ if (errorsCount == 1) "" else "s"
+ )
+ } else {
+ info("Generation completed successfully")
+ }
+}
+
+public enum class LoggingLevel(
+ public val index: Int
+) {
+ DEBUG(0), PROGRESS(1), INFO(2), WARN(3), ERROR(4);
+}
+
+/**
+ * Used to decouple the transport layer from logger and make it convenient for testing
+ */
+public fun interface MessageEmitter : (String) -> Unit {
+ public companion object {
+ public val consoleEmitter: MessageEmitter = MessageEmitter { message -> println(message) }
+ }
+}
+
+public class DokkaConsoleLogger(
+ private val minLevel: LoggingLevel = LoggingLevel.PROGRESS,
+ private val emitter: MessageEmitter = MessageEmitter.consoleEmitter
+) : DokkaLogger {
+ private val warningsCounter = AtomicInteger()
+ private val errorsCounter = AtomicInteger()
+
+ override var warningsCount: Int
+ get() = warningsCounter.get()
+ set(value) = warningsCounter.set(value)
+
+ override var errorsCount: Int
+ get() = errorsCounter.get()
+ set(value) = errorsCounter.set(value)
+
+ override fun debug(message: String) {
+ if (shouldBeDisplayed(LoggingLevel.DEBUG)) emitter(message)
+ }
+
+ override fun progress(message: String) {
+ if (shouldBeDisplayed(LoggingLevel.PROGRESS)) emitter("PROGRESS: $message")
+ }
+
+ override fun info(message: String) {
+ if (shouldBeDisplayed(LoggingLevel.INFO)) emitter(message)
+ }
+
+ override fun warn(message: String) {
+ if (shouldBeDisplayed(LoggingLevel.WARN)) {
+ emitter("WARN: $message")
+ }
+ warningsCounter.incrementAndGet()
+ }
+
+ override fun error(message: String) {
+ if (shouldBeDisplayed(LoggingLevel.ERROR)) {
+ emitter("ERROR: $message")
+ }
+ errorsCounter.incrementAndGet()
+ }
+
+ private fun shouldBeDisplayed(messageLevel: LoggingLevel): Boolean = messageLevel.index >= minLevel.index
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Html.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Html.kt
new file mode 100644
index 00000000..fc2330d2
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Html.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import org.jetbrains.dokka.InternalDokkaApi
+import java.net.URLEncoder
+
+
+/**
+ * Replaces symbols reserved in HTML with their respective entities.
+ * Replaces & with &amp;, < with &lt; and > with &gt;
+ */
+@InternalDokkaApi
+public fun String.htmlEscape(): String = replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;").replace("\"", "&quot;")
+
+@InternalDokkaApi
+public fun String.urlEncoded(): String = URLEncoder.encode(this, "UTF-8")
+
+@InternalDokkaApi
+public fun String.formatToEndWithHtml(): String =
+ if (endsWith(".html") || contains(Regex("\\.html#"))) this else "$this.html"
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet.kt
new file mode 100644
index 00000000..57d3b1e1
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import org.jetbrains.dokka.InternalDokkaApi
+
+@InternalDokkaApi
+@Suppress("DEPRECATION_ERROR")
+@Deprecated(message = "SelfRepresentingSingletonSet is an incorrect set implementation that breaks set invariants", level = DeprecationLevel.ERROR)
+public interface SelfRepresentingSingletonSet<T : SelfRepresentingSingletonSet<T>> : Set<T> {
+ override val size: Int get() = 1
+
+ override fun contains(element: T): Boolean = this == element
+
+ override fun containsAll(elements: Collection<T>): Boolean =
+ if (elements.isEmpty()) true
+ else elements.all { this == it }
+
+ override fun isEmpty(): Boolean = false
+
+ override fun iterator(): Iterator<T> = iterator {
+ @Suppress("UNCHECKED_CAST")
+ yield(this@SelfRepresentingSingletonSet as T)
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/ServiceLocator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/ServiceLocator.kt
new file mode 100644
index 00000000..c8b8a837
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/ServiceLocator.kt
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import org.jetbrains.dokka.InternalDokkaApi
+import java.io.File
+import java.net.URISyntaxException
+import java.net.URL
+import java.util.*
+import java.util.jar.JarFile
+import java.util.zip.ZipEntry
+
+@InternalDokkaApi
+public data class ServiceDescriptor(val name: String, val category: String, val description: String?, val className: String)
+
+@InternalDokkaApi
+public class ServiceLookupException(message: String) : Exception(message)
+
+@InternalDokkaApi
+public object ServiceLocator {
+ public fun <T : Any> lookup(clazz: Class<T>, category: String, implementationName: String): T {
+ val descriptor = lookupDescriptor(category, implementationName)
+ return lookup(clazz, descriptor)
+ }
+
+ public fun <T : Any> lookup(
+ clazz: Class<T>,
+ descriptor: ServiceDescriptor
+ ): T {
+ val loadedClass = javaClass.classLoader.loadClass(descriptor.className)
+ val constructor = loadedClass.constructors.firstOrNull { it.parameterTypes.isEmpty() } ?: throw ServiceLookupException("Class ${descriptor.className} has no corresponding constructor")
+
+ val implementationRawType: Any =
+ if (constructor.parameterTypes.isEmpty()) constructor.newInstance() else constructor.newInstance(constructor)
+
+ if (!clazz.isInstance(implementationRawType)) {
+ throw ServiceLookupException("Class ${descriptor.className} is not a subtype of ${clazz.name}")
+ }
+
+ @Suppress("UNCHECKED_CAST")
+ return implementationRawType as T
+ }
+
+ private fun lookupDescriptor(category: String, implementationName: String): ServiceDescriptor {
+ val properties = javaClass.classLoader.getResourceAsStream("dokka/$category/$implementationName.properties")?.use { stream ->
+ Properties().let { properties ->
+ properties.load(stream)
+ properties
+ }
+ } ?: throw ServiceLookupException("No implementation with name $implementationName found in category $category")
+
+ val className = properties["class"]?.toString() ?: throw ServiceLookupException("Implementation $implementationName has no class configured")
+
+ return ServiceDescriptor(implementationName, category, properties["description"]?.toString(), className)
+ }
+
+ public fun URL.toFile(): File {
+ assert(protocol == "file")
+
+ return try {
+ File(toURI())
+ } catch (e: URISyntaxException) { //Try to handle broken URLs, with unescaped spaces
+ File(path)
+ }
+ }
+
+ public fun allServices(category: String): List<ServiceDescriptor> {
+ val entries = this.javaClass.classLoader.getResources("dokka/$category")?.toList() ?: emptyList()
+
+ return entries.flatMap {
+ when (it.protocol) {
+ "file" -> it.toFile().listFiles()?.filter { it.extension == "properties" }?.map { lookupDescriptor(category, it.nameWithoutExtension) } ?: emptyList()
+ "jar" -> {
+ JarFile(URL(it.file.substringBefore("!")).toFile()).use { file ->
+ val jarPath = it.file.substringAfterLast("!").removePrefix("/").removeSuffix("/")
+ file.entries()
+ .asSequence()
+ .filter { entry -> !entry.isDirectory && entry.path == jarPath && entry.extension == "properties" }
+ .map { entry ->
+ lookupDescriptor(category, entry.fileName.substringBeforeLast("."))
+ }.toList()
+ }
+ }
+ else -> emptyList()
+ }
+ }
+ }
+}
+
+private val ZipEntry.fileName: String
+ get() = name.substringAfterLast("/", name)
+
+private val ZipEntry.path: String
+ get() = name.substringBeforeLast("/", "").removePrefix("/")
+
+private val ZipEntry.extension: String?
+ get() = fileName.let { fn -> if ("." in fn) fn.substringAfterLast(".") else null }
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Uri.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Uri.kt
new file mode 100644
index 00000000..7e6b3fbe
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Uri.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import org.jetbrains.dokka.InternalDokkaApi
+import java.net.URI
+
+@InternalDokkaApi
+@Deprecated("Deprecated for removal") // Unused in Dokka
+public fun URI.relativeTo(uri: URI): URI {
+ // Normalize paths to remove . and .. segments
+ val base = uri.normalize()
+ val child = this.normalize()
+
+ fun StringBuilder.appendRelativePath() {
+ // Split paths into segments
+ var bParts = base.path.split('/').dropLastWhile { it.isEmpty() }
+ val cParts = child.path.split('/').dropLastWhile { it.isEmpty() }
+
+ // Discard trailing segment of base path
+ if (bParts.isNotEmpty() && !base.path.endsWith("/")) {
+ bParts = bParts.dropLast(1)
+ }
+
+ // Compute common prefix
+ val commonPartsSize = bParts.zip(cParts).takeWhile { (basePart, childPart) -> basePart == childPart }.count()
+ bParts.drop(commonPartsSize).joinTo(this, separator = "") { "../" }
+ cParts.drop(commonPartsSize).joinTo(this, separator = "/")
+ }
+
+ return URI.create(buildString {
+ if (base.path != child.path) {
+ appendRelativePath()
+ }
+ child.rawQuery?.let {
+ append("?")
+ append(it)
+ }
+ child.rawFragment?.let {
+ append("#")
+ append(it)
+ }
+ })
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/associateWithNotNull.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/associateWithNotNull.kt
new file mode 100644
index 00000000..29e37d13
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/associateWithNotNull.kt
@@ -0,0 +1,13 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import org.jetbrains.dokka.InternalDokkaApi
+
+@InternalDokkaApi
+public inline fun <K, V : Any> Iterable<K>.associateWithNotNull(valueSelector: (K) -> V?): Map<K, V> {
+ @Suppress("UNCHECKED_CAST")
+ return associateWith { valueSelector(it) }.filterValues { it != null } as Map<K, V>
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/cast.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/cast.kt
new file mode 100644
index 00000000..c2598a33
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/cast.kt
@@ -0,0 +1,12 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import org.jetbrains.dokka.InternalDokkaApi
+
+@InternalDokkaApi
+public inline fun <reified T> Any.cast(): T {
+ return this as T
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/json.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/json.kt
new file mode 100644
index 00000000..a8325161
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/json.kt
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import com.fasterxml.jackson.core.JsonGenerator
+import com.fasterxml.jackson.databind.DeserializationFeature
+import com.fasterxml.jackson.databind.SerializerProvider
+import com.fasterxml.jackson.databind.module.SimpleModule
+import com.fasterxml.jackson.databind.ser.std.StdScalarSerializer
+import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
+import com.fasterxml.jackson.module.kotlin.jacksonTypeRef
+import java.io.File
+import com.fasterxml.jackson.core.type.TypeReference as JacksonTypeReference
+
+private val objectMapper = run {
+ val module = SimpleModule().apply {
+ addSerializer(FileSerializer)
+ addAbstractTypeMapping(Set::class.java, LinkedHashSet::class.java)
+ }
+ jacksonObjectMapper()
+ .registerModule(module)
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
+}
+
+@PublishedApi
+internal class TypeReference<T> @PublishedApi internal constructor(
+ internal val jackson: JacksonTypeReference<T>
+) {
+ companion object {
+ @PublishedApi
+ internal inline operator fun <reified T> invoke(): TypeReference<T> = TypeReference(jacksonTypeRef())
+ }
+}
+
+// not used anywhere since at least 1.7.20, but might still be referenced in previously compiled
+// inline functions. should be safe to remove after a few major releases.
+@PublishedApi
+@Deprecated(
+ "Left for previously compiled public inline classes, not for use",
+ ReplaceWith("serializeAsCompactJson(value)"),
+ level = DeprecationLevel.ERROR
+)
+internal fun toJsonString(value: Any): String = serializeAsCompactJson(value)
+
+internal fun serializeAsCompactJson(value: Any): String =
+ objectMapper.writeValueAsString(value)
+
+internal fun serializeAsPrettyJson(value: Any): String =
+ objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(value)
+
+@PublishedApi
+internal inline fun <reified T : Any> parseJson(json: String): T = parseJson(json, TypeReference())
+
+@PublishedApi
+internal fun <T : Any> parseJson(json: String, typeReference: TypeReference<T>): T =
+ objectMapper.readValue(json, typeReference.jackson)
+
+
+private object FileSerializer : StdScalarSerializer<File>(File::class.java) {
+ override fun serialize(value: File, g: JsonGenerator, provider: SerializerProvider) {
+ g.writeString(value.path)
+ }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/parallelCollectionOperations.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/parallelCollectionOperations.kt
new file mode 100644
index 00000000..001fca0b
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/parallelCollectionOperations.kt
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.utilities
+
+import kotlinx.coroutines.async
+import kotlinx.coroutines.awaitAll
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.launch
+import org.jetbrains.dokka.InternalDokkaApi
+
+@InternalDokkaApi
+public suspend inline fun <A, B> Iterable<A>.parallelMap(crossinline f: suspend (A) -> B): List<B> = coroutineScope {
+ map { async { f(it) } }.awaitAll()
+}
+
+@InternalDokkaApi
+public suspend inline fun <A, B> Iterable<A>.parallelMapNotNull(crossinline f: suspend (A) -> B?): List<B> = coroutineScope {
+ map { async { f(it) } }.awaitAll().filterNotNull()
+}
+
+@InternalDokkaApi
+public suspend inline fun <A> Iterable<A>.parallelForEach(crossinline f: suspend (A) -> Unit): Unit = coroutineScope {
+ forEach { launch { f(it) } }
+}
diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/validity/PreGenerationChecker.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/validity/PreGenerationChecker.kt
new file mode 100644
index 00000000..349b398b
--- /dev/null
+++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/validity/PreGenerationChecker.kt
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package org.jetbrains.dokka.validity
+
+public fun interface PreGenerationChecker : () -> PreGenerationCheckerOutput {
+
+ override fun invoke(): PreGenerationCheckerOutput
+}
+
+public data class PreGenerationCheckerOutput(val result: Boolean, val messages: List<String>) {
+
+ public operator fun plus(pair: Pair<Boolean, List<String>>): Pair<Boolean, List<String>> {
+ return Pair(result && pair.first, messages + pair.second)
+ }
+}
diff --git a/dokka-subprojects/core/src/main/resources/META-INF/MANIFEST.MF b/dokka-subprojects/core/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..9d885be5
--- /dev/null
+++ b/dokka-subprojects/core/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1 @@
+Manifest-Version: 1.0
diff --git a/dokka-subprojects/core/src/main/resources/META-INF/dokka/dokka-version.properties b/dokka-subprojects/core/src/main/resources/META-INF/dokka/dokka-version.properties
new file mode 100644
index 00000000..04a9237d
--- /dev/null
+++ b/dokka-subprojects/core/src/main/resources/META-INF/dokka/dokka-version.properties
@@ -0,0 +1,5 @@
+#
+# Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+#
+
+dokka-version=<dokka-version>
diff --git a/dokka-subprojects/core/src/test/kotlin/model/CompositeSourceSetIDTest.kt b/dokka-subprojects/core/src/test/kotlin/model/CompositeSourceSetIDTest.kt
new file mode 100644
index 00000000..261ca325
--- /dev/null
+++ b/dokka-subprojects/core/src/test/kotlin/model/CompositeSourceSetIDTest.kt
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package model
+
+import org.jetbrains.dokka.DokkaSourceSetID
+import org.jetbrains.dokka.model.CompositeSourceSetID
+import kotlin.test.*
+
+class CompositeSourceSetIDTest {
+
+ @Test
+ fun `constructor fails with empty collection`() {
+ assertFailsWith<IllegalArgumentException>("Expected no construction of empty `CompositeSourceSetID`") {
+ CompositeSourceSetID(emptyList())
+ }
+ }
+
+ @Test
+ fun `merged for single source set`() {
+ val sourceSetID = DokkaSourceSetID("module", "sourceSet")
+ val composite = CompositeSourceSetID(sourceSetID)
+
+ assertEquals(
+ composite.merged, sourceSetID,
+ "Expected merged source set id to be equal to single child"
+ )
+ }
+
+ @Test
+ fun `merged with multiple source sets`() {
+ val composite = CompositeSourceSetID(
+ listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2"), DokkaSourceSetID("m3", "s3"))
+ )
+
+ assertEquals(
+ DokkaSourceSetID("m1+m2+m3", "s1+s2+s3"), composite.merged,
+ "Expected merged source set id to concatenate source sets"
+ )
+ }
+
+ @Test
+ fun `contains with child sourceSetID`() {
+ val composite = CompositeSourceSetID(listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2")))
+
+ assertFalse(
+ DokkaSourceSetID("m3", "s3") in composite,
+ "Expected source set id not being contained in composite"
+ )
+
+ assertTrue(
+ DokkaSourceSetID("m1", "s1") in composite,
+ "Expected child source set id being contained in composite"
+ )
+
+ assertTrue(
+ DokkaSourceSetID("m1+m2", "s1+s2") in composite,
+ "Expected merged source set id being contained in composite"
+ )
+ }
+
+ @Test
+ fun `plus operator`() {
+ val composite = DokkaSourceSetID("m1", "s1") + DokkaSourceSetID("m2", "s2") + DokkaSourceSetID("m3", "s3")
+ assertEquals(
+ DokkaSourceSetID("m1+m2+m3", "s1+s2+s3"), composite.merged,
+ "Expected all three source sets being merged in order"
+ )
+ }
+
+ operator fun DokkaSourceSetID.plus(other: DokkaSourceSetID): CompositeSourceSetID {
+ return CompositeSourceSetID(listOf(this, other))
+ }
+
+}
diff --git a/dokka-subprojects/core/src/test/kotlin/model/DisplaySourceSetTest.kt b/dokka-subprojects/core/src/test/kotlin/model/DisplaySourceSetTest.kt
new file mode 100644
index 00000000..d7b7a2a5
--- /dev/null
+++ b/dokka-subprojects/core/src/test/kotlin/model/DisplaySourceSetTest.kt
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package model
+
+import org.jetbrains.dokka.DokkaSourceSetID
+import org.jetbrains.dokka.Platform
+import org.jetbrains.dokka.model.*
+import kotlin.test.Test
+import kotlin.test.assertFalse
+import kotlin.test.assertTrue
+
+class DisplaySourceSetTest {
+ @Test
+ fun `contains sourceSetId`() {
+ val contentSourceSet = DisplaySourceSet(
+ sourceSetIDs = CompositeSourceSetID(listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2"))),
+ name = "displayName",
+ platform = Platform.common
+ )
+
+ assertFalse(
+ DokkaSourceSetID("m3", "s3") in contentSourceSet.sourceSetIDs,
+ "Expected source set id not being contained in content source set"
+ )
+
+ assertTrue(
+ DokkaSourceSetID("m1", "s1") in contentSourceSet.sourceSetIDs,
+ "Expected source set id being contained in content source set"
+ )
+
+ assertTrue(
+ DokkaSourceSetID("m1+m2", "s1+s2") in contentSourceSet.sourceSetIDs,
+ "Expected merged source set being contained in content source set"
+ )
+ }
+
+ @Test
+ fun `Iterable contains sourceSetId`() {
+
+ val contentSourceSet = DisplaySourceSet(
+ sourceSetIDs = CompositeSourceSetID(listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2"))),
+ name = "displayName",
+ platform = Platform.common
+ )
+
+ assertFalse(
+ DokkaSourceSetID("m3", "s3") in listOf(contentSourceSet).computeSourceSetIds(),
+ "Expected source set id not being contained in content source set"
+ )
+
+ assertTrue(
+ DokkaSourceSetID("m1", "s1") in listOf(contentSourceSet).computeSourceSetIds(),
+ "Expected source set id being contained in content source set"
+ )
+
+ assertTrue(
+ DokkaSourceSetID("m1+m2", "s1+s2") in listOf(contentSourceSet).computeSourceSetIds(),
+ "Expected merged source set being contained in content source set"
+ )
+ }
+}
diff --git a/dokka-subprojects/core/src/test/kotlin/model/DocumentableTest.kt b/dokka-subprojects/core/src/test/kotlin/model/DocumentableTest.kt
new file mode 100644
index 00000000..56d32bb2
--- /dev/null
+++ b/dokka-subprojects/core/src/test/kotlin/model/DocumentableTest.kt
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package model
+
+import org.jetbrains.dokka.links.DRI
+import org.jetbrains.dokka.model.*
+import org.jetbrains.dokka.model.properties.PropertyContainer
+import kotlin.test.Test
+import kotlin.test.assertEquals
+
+class DocumentableTest {
+
+ @Test
+ fun withDescendents() {
+ val dClass = DClass(
+ dri = DRI(),
+ name = "TestClass",
+ constructors = emptyList(),
+ classlikes = emptyList(),
+ companion = null,
+ documentation = emptyMap(),
+ expectPresentInSet = null,
+ extra = PropertyContainer.empty(),
+ visibility = emptyMap(),
+ generics = emptyList(),
+ modifier = emptyMap(),
+ properties = emptyList(),
+ sources = emptyMap(),
+ sourceSets = emptySet(),
+ supertypes = emptyMap(),
+ isExpectActual = false,
+ functions = listOf(
+ DFunction(
+ dri = DRI(),
+ name = "function0",
+ documentation = emptyMap(),
+ expectPresentInSet = null,
+ extra = PropertyContainer.empty(),
+ visibility = emptyMap(),
+ generics = emptyList(),
+ modifier = emptyMap(),
+ sources = emptyMap(),
+ sourceSets = emptySet(),
+ type = Void,
+ receiver = null,
+ isConstructor = false,
+ isExpectActual = false,
+ parameters = listOf(
+ DParameter(
+ dri = DRI(),
+ name = "f0p0",
+ documentation = emptyMap(),
+ expectPresentInSet = null,
+ extra = PropertyContainer.empty(),
+ sourceSets = emptySet(),
+ type = Void
+ ),
+ DParameter(
+ dri = DRI(),
+ name = "f0p1",
+ documentation = emptyMap(),
+ expectPresentInSet = null,
+ extra = PropertyContainer.empty(),
+ sourceSets = emptySet(),
+ type = Void
+ )
+ )
+ ),
+ DFunction(
+ dri = DRI(),
+ name = "function1",
+ documentation = emptyMap(),
+ expectPresentInSet = null,
+ extra = PropertyContainer.empty(),
+ visibility = emptyMap(),
+ generics = emptyList(),
+ modifier = emptyMap(),
+ sources = emptyMap(),
+ sourceSets = emptySet(),
+ type = Void,
+ receiver = null,
+ isConstructor = false,
+ isExpectActual = false,
+ parameters = listOf(
+ DParameter(
+ dri = DRI(),
+ name = "f1p0",
+ documentation = emptyMap(),
+ expectPresentInSet = null,
+ extra = PropertyContainer.empty(),
+ sourceSets = emptySet(),
+ type = Void
+ ),
+ DParameter(
+ dri = DRI(),
+ name = "f1p1",
+ documentation = emptyMap(),
+ expectPresentInSet = null,
+ extra = PropertyContainer.empty(),
+ sourceSets = emptySet(),
+ type = Void
+ )
+ )
+ )
+ )
+ )
+
+ assertEquals(
+ listOf("TestClass", "function0", "f0p0", "f0p1", "function1", "f1p0", "f1p1"),
+ dClass.withDescendants().map { it.name }.toList()
+ )
+ }
+}
diff --git a/dokka-subprojects/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt b/dokka-subprojects/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt
new file mode 100644
index 00000000..c10cb32d
--- /dev/null
+++ b/dokka-subprojects/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package utilities
+
+import org.jetbrains.dokka.DokkaConfigurationImpl
+import org.jetbrains.dokka.DokkaSourceSetID
+import org.jetbrains.dokka.DokkaSourceSetImpl
+import org.jetbrains.dokka.toCompactJsonString
+import java.io.File
+import kotlin.test.Test
+import kotlin.test.assertEquals
+
+class DokkaConfigurationJsonTest {
+ @Test
+ fun `simple configuration toJsonString then parseJson`() {
+ val configuration = DokkaConfigurationImpl(
+ moduleName = "moduleName",
+ outputDir = File("customOutputDir"),
+ pluginsClasspath = listOf(File("plugins/customPlugin.jar")),
+ sourceSets = listOf(
+ DokkaSourceSetImpl(
+ sourceRoots = setOf(File("customSourceRoot")),
+ sourceSetID = DokkaSourceSetID("customModuleName", "customSourceSetName")
+ )
+ )
+ )
+
+ val jsonString = configuration.toCompactJsonString()
+ val parsedConfiguration = DokkaConfigurationImpl(jsonString)
+ assertEquals(configuration, parsedConfiguration)
+ }
+
+ @Test
+ fun `parse simple configuration json`() {
+ val json = """
+ {
+ "moduleName": "moduleName",
+ "outputDir": "customOutputDir",
+ "pluginsClasspath": [ "plugins/customPlugin.jar" ],
+ "sourceSets": [
+ {
+ "sourceSetID": {
+ "scopeId": "customModuleName",
+ "sourceSetName": "customSourceSetName"
+ },
+ "sourceRoots": [ "customSourceRoot" ],
+ "classpath": [ "classpath/custom1.jar", "classpath/custom2.jar" ]
+ }
+ ]
+ }
+ """.trimIndent()
+
+ val parsedConfiguration = DokkaConfigurationImpl(json)
+ assertEquals(
+ DokkaConfigurationImpl(
+ moduleName = "moduleName",
+ outputDir = File("customOutputDir"),
+ pluginsClasspath = listOf(File("plugins/customPlugin.jar")),
+ sourceSets = listOf(
+ DokkaSourceSetImpl(
+ sourceRoots = setOf(File("customSourceRoot")),
+ sourceSetID = DokkaSourceSetID("customModuleName", "customSourceSetName"),
+ classpath = listOf(File("classpath/custom1.jar"), File("classpath/custom2.jar"))
+ )
+ )
+ ),
+ parsedConfiguration
+ )
+ }
+}
diff --git a/dokka-subprojects/core/src/test/kotlin/utilities/JsonKtTest.kt b/dokka-subprojects/core/src/test/kotlin/utilities/JsonKtTest.kt
new file mode 100644
index 00000000..c706de5f
--- /dev/null
+++ b/dokka-subprojects/core/src/test/kotlin/utilities/JsonKtTest.kt
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package utilities
+
+import org.jetbrains.dokka.utilities.parseJson
+import org.jetbrains.dokka.utilities.serializeAsCompactJson
+import org.jetbrains.dokka.utilities.serializeAsPrettyJson
+import kotlin.test.Test
+import kotlin.test.assertEquals
+
+class JsonTest {
+
+ @Test
+ fun `should serialize an object as compact json`() {
+ val testObject = SimpleTestDataClass(
+ someString = "Foo",
+ someInt = 42,
+ someDouble = 42.0
+ )
+
+ val actual = serializeAsCompactJson(testObject)
+ val expected = "{\"someString\":\"Foo\",\"someInt\":42,\"someIntWithDefaultValue\":42,\"someDouble\":42.0}"
+
+ assertEquals(expected, actual)
+ }
+
+ @Test
+ fun `should serialize an object as pretty json`() {
+ val testObject = SimpleTestDataClass(
+ someString = "Foo",
+ someInt = 42,
+ someDouble = 42.0
+ )
+
+ val actual = serializeAsPrettyJson(testObject)
+
+ val expected = """
+ {
+ "someString" : "Foo",
+ "someInt" : 42,
+ "someIntWithDefaultValue" : 42,
+ "someDouble" : 42.0
+ }""".trimIndent().withSystemLineSeparator()
+
+ assertEquals(expected, actual)
+ }
+
+ @Test
+ fun `should keep order of Set after serialize and deserialize`() {
+ val testObject = SimpleTestSetDataClass(
+ someStringSet = setOf("Foo", "Bar", "ABC")
+ )
+ val expected = testObject.someStringSet.toList() // ["Foo", "Bar", "ABC"]
+
+ val jsonString = serializeAsCompactJson(testObject)
+ val parsedClass: SimpleTestSetDataClass = parseJson(jsonString)
+ val actual = parsedClass.someStringSet.toList()
+
+ assertEquals(expected, actual)
+ }
+
+ /**
+ * If the expected output was generated on Linux, but the tests are run under Windows,
+ * the test might fail when comparing the strings due to different separators.
+ */
+ private fun String.withSystemLineSeparator(): String = this.replace("\n", System.lineSeparator())
+}
+
+data class SimpleTestDataClass(
+ val someString: String,
+ val someInt: Int,
+ val someIntWithDefaultValue: Int = 42,
+ val someDouble: Double
+)
+
+data class SimpleTestSetDataClass(
+ val someStringSet: Set<String>
+)