diff --git a/analysis/analysis-api/api/analysis-api.api b/analysis/analysis-api/api/analysis-api.api
new file mode 100644
index 0000000..6a7701a
--- /dev/null
+++ b/analysis/analysis-api/api/analysis-api.api
@@ -0,0 +1,2708 @@
+public final class org/jetbrains/kotlin/analysis/api/AnalyzeKt {
+	public static final fun analyze (Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
+	public static final fun analyze (Lorg/jetbrains/kotlin/psi/KtElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
+	public static final fun analyzeCopy (Lorg/jetbrains/kotlin/psi/KtElement;Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaAnalysisApiInternals : java/lang/annotation/Annotation {
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaAnalysisNonPublicApi : java/lang/annotation/Annotation {
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaExperimentalApi : java/lang/annotation/Annotation {
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaIdeApi : java/lang/annotation/Annotation {
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaImplementationDetail : java/lang/annotation/Annotation {
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaNonPublicApi : java/lang/annotation/Annotation {
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaPlatformInterface : java/lang/annotation/Annotation {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/KaSession : org/jetbrains/kotlin/analysis/api/components/KaAnalysisScopeProvider, org/jetbrains/kotlin/analysis/api/components/KaCompilerFacility, org/jetbrains/kotlin/analysis/api/components/KaCompletionCandidateChecker, org/jetbrains/kotlin/analysis/api/components/KaDataFlowProvider, org/jetbrains/kotlin/analysis/api/components/KaDiagnosticProvider, org/jetbrains/kotlin/analysis/api/components/KaEvaluator, org/jetbrains/kotlin/analysis/api/components/KaExpressionInformationProvider, org/jetbrains/kotlin/analysis/api/components/KaExpressionTypeProvider, org/jetbrains/kotlin/analysis/api/components/KaImportOptimizer, org/jetbrains/kotlin/analysis/api/components/KaJavaInteroperabilityComponent, org/jetbrains/kotlin/analysis/api/components/KaMetadataCalculator, org/jetbrains/kotlin/analysis/api/components/KaOriginalPsiProvider, org/jetbrains/kotlin/analysis/api/components/KaReferenceShortener, org/jetbrains/kotlin/analysis/api/components/KaRenderer, org/jetbrains/kotlin/analysis/api/components/KaResolveExtensionInfoProvider, org/jetbrains/kotlin/analysis/api/components/KaResolver, org/jetbrains/kotlin/analysis/api/components/KaScopeProvider, org/jetbrains/kotlin/analysis/api/components/KaSignatureSubstitutor, org/jetbrains/kotlin/analysis/api/components/KaSourceProvider, org/jetbrains/kotlin/analysis/api/components/KaSubstitutorProvider, org/jetbrains/kotlin/analysis/api/components/KaSymbolInformationProvider, org/jetbrains/kotlin/analysis/api/components/KaSymbolRelationProvider, org/jetbrains/kotlin/analysis/api/components/KaTypeCreator, org/jetbrains/kotlin/analysis/api/components/KaTypeInformationProvider, org/jetbrains/kotlin/analysis/api/components/KaTypeProvider, org/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker, org/jetbrains/kotlin/analysis/api/components/KaVisibilityChecker, org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner, org/jetbrains/kotlin/analysis/api/symbols/KaSymbolProvider {
+	public fun getAnalysisSession ()Lorg/jetbrains/kotlin/analysis/api/KaSession;
+	public abstract fun getUseSiteModule ()Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;
+	public fun getUseSiteSession ()Lorg/jetbrains/kotlin/analysis/api/KaSession;
+	public fun restore (Lorg/jetbrains/kotlin/analysis/api/types/KaTypePointer;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun restoreSymbol (Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/KaSessionKt {
+	public static final fun getModule (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lcom/intellij/psi/PsiElement;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotated {
+	public abstract fun getAnnotations ()Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotationList;
+	public fun getAnnotationsList ()Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotationList;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotatedKt {
+	public static final fun annotationsByClassId (Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/name/ClassId;)Ljava/util/List;
+	public static final fun getAnnotationClassIds (Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Ljava/util/Collection;
+	public static final fun getAnnotationInfos (Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Ljava/util/List;
+	public static final fun getAnnotations (Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Ljava/util/List;
+	public static final fun hasAnnotation (Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/name/ClassId;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotation : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getArguments ()Ljava/util/List;
+	public abstract fun getClassId ()Lorg/jetbrains/kotlin/name/ClassId;
+	public abstract fun getConstructorSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaConstructorSymbol;
+	public fun getConstructorSymbolPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getHasArguments ()Z
+	public abstract fun getIndex ()Ljava/lang/Integer;
+	public abstract fun getPsi ()Lorg/jetbrains/kotlin/psi/KtCallElement;
+	public abstract fun getUseSiteTarget ()Lorg/jetbrains/kotlin/descriptors/annotations/AnnotationUseSiteTarget;
+	public fun isCallWithArguments ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationList : java/util/List, kotlin/jvm/internal/markers/KMappedMarker, org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public fun annotationsByClassId (Lorg/jetbrains/kotlin/name/ClassId;)Ljava/util/List;
+	public abstract fun contains (Lorg/jetbrains/kotlin/name/ClassId;)Z
+	public abstract fun get (Lorg/jetbrains/kotlin/name/ClassId;)Ljava/util/List;
+	public fun getAnnotationClassIds ()Ljava/util/Collection;
+	public fun getAnnotationInfos ()Ljava/util/List;
+	public fun getAnnotations ()Ljava/util/List;
+	public abstract fun getClassIds ()Ljava/util/Collection;
+	public fun hasAnnotation (Lorg/jetbrains/kotlin/name/ClassId;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getSourcePsi ()Lorg/jetbrains/kotlin/psi/KtElement;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue$ArrayValue : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue {
+	public abstract fun getValues ()Ljava/util/Collection;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue$ClassLiteralValue : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue {
+	public abstract fun getClassId ()Lorg/jetbrains/kotlin/name/ClassId;
+	public abstract fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue$ConstantValue : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue {
+	public fun getConstantValue ()Lorg/jetbrains/kotlin/analysis/api/base/KaConstantValue;
+	public abstract fun getValue ()Lorg/jetbrains/kotlin/analysis/api/base/KaConstantValue;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue$EnumEntryValue : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue {
+	public abstract fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue$NestedAnnotationValue : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue {
+	public abstract fun getAnnotation ()Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;
+	public fun getAnnotationValue ()Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue$UnsupportedValue : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValueKt {
+	public static final fun renderAsSourceCode (Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue;)Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/annotations/KaNamedAnnotationValue : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getExpression ()Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotationValue;
+	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getConstantValueKind ()Lorg/jetbrains/kotlin/types/ConstantValueKind;
+	public abstract fun getSourcePsi ()Lorg/jetbrains/kotlin/psi/KtElement;
+	public abstract fun getValue ()Ljava/lang/Object;
+	public abstract fun render ()Ljava/lang/String;
+	public fun renderAsKotlinConstant ()Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$BooleanValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Boolean;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ByteValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Byte;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$CharValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Character;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$DoubleValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Double;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ErrorValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getErrorMessage ()Ljava/lang/String;
+	public abstract fun getValue ()Ljava/lang/Void;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$FloatValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Float;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$IntValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Integer;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaBooleanConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$BooleanValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaByteConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ByteValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaCharConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$CharValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaDoubleConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$DoubleValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaErrorConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ErrorValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaFloatConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$FloatValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaIntConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$IntValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaLongConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$LongValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaNullConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$NullValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaShortConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ShortValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaStringConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$StringValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaUnsignedByteConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$UByteValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaUnsignedIntConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$UIntValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaUnsignedLongConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ULongValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$KaUnsignedShortConstantValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue$UShortValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$LongValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Long;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$NullValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ShortValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/Short;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$StringValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue ()Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$UByteValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue-w2LRezQ ()B
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$UIntValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue-pVg5ArA ()I
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$ULongValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue-s-VKNKU ()J
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/base/KaConstantValue$UShortValue : org/jetbrains/kotlin/analysis/api/base/KaConstantValue {
+	public abstract fun getValue-Mh2AYeg ()S
+}
+
+public final class org/jetbrains/kotlin/analysis/api/calls/KaCallKt {
+	public static final synthetic fun getCalls (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Ljava/util/List;
+	public static final synthetic fun getSymbol (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallableMemberCall;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+	public static final synthetic fun getSymbol (Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+	public static final synthetic fun singleConstructorCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final synthetic fun singleFunctionCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final synthetic fun singleVariableAccessCall (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaVariableAccessCall;
+	public static final synthetic fun successfulConstructorCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final synthetic fun successfulFunctionCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final synthetic fun successfulVariableAccessCall (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaVariableAccessCall;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$BackingField : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Lorg/jetbrains/kotlin/name/Name;ZZ)V
+	public fun getDisplayText ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$ContainingClass : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Lorg/jetbrains/kotlin/name/ClassId;Z)V
+	public fun getDisplayText ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$ContextReceiver : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (ILorg/jetbrains/kotlin/name/Name;Z)V
+	public fun getDisplayText ()Ljava/lang/String;
+	public final fun getIndex ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$CoroutineContext : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Z)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$ExtensionReceiver : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Ljava/lang/String;Z)V
+	public fun getDisplayText ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$ForeignValue : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Lorg/jetbrains/kotlin/name/Name;Z)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$Local : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Lorg/jetbrains/kotlin/name/Name;ZZ)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$LocalDelegate : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Lorg/jetbrains/kotlin/name/Name;ZZ)V
+	public fun getDisplayText ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue$SuperClass : org/jetbrains/kotlin/analysis/api/compile/CodeFragmentCapturedValue {
+	public fun <init> (Lorg/jetbrains/kotlin/name/ClassId;Z)V
+	public fun getDisplayText ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/DefaultTypeClassIds {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/components/DefaultTypeClassIds;
+	public final fun getANY ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getBOOLEAN ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getBYTE ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getCHAR ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getCHAR_SEQUENCE ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getDOUBLE ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getFLOAT ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getINT ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getLONG ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getNOTHING ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getPRIMITIVES ()Ljava/util/Set;
+	public final fun getSHORT ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getSTRING ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getUNIT ()Lorg/jetbrains/kotlin/name/ClassId;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaAnalysisScopeProvider {
+	public abstract fun canBeAnalysed (Lcom/intellij/psi/PsiElement;)Z
+	public abstract fun getAnalysisScope ()Lcom/intellij/psi/search/GlobalSearchScope;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/components/KaBuiltinTypes : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public fun <init> ()V
+	public final fun getANY ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getAny ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getBOOLEAN ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getBYTE ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getBoolean ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getByte ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getCHAR ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getChar ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getDOUBLE ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getDouble ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getFLOAT ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getFloat ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getINT ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getInt ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getLONG ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getLong ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getNOTHING ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getNULLABLE_ANY ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getNULLABLE_NOTHING ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getNothing ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getNullableAny ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getNullableNothing ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getSHORT ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getSTRING ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getShort ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getString ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getTHROWABLE ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getThrowable ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public final fun getUNIT ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getUnit ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaClassTypeBuilder : org/jetbrains/kotlin/analysis/api/components/KaTypeBuilder {
+	public abstract fun argument (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/types/Variance;)V
+	public abstract fun argument (Lorg/jetbrains/kotlin/analysis/api/types/KaTypeProjection;)V
+	public static synthetic fun argument$default (Lorg/jetbrains/kotlin/analysis/api/components/KaClassTypeBuilder;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/types/Variance;ILjava/lang/Object;)V
+	public abstract fun getArguments ()Ljava/util/List;
+	public abstract fun getNullability ()Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+	public abstract fun setNullability (Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaCompilerFacility$Companion {
+	public final fun getCODE_FRAGMENT_CLASS_NAME ()Lorg/jetbrains/kotlin/config/CompilerConfigurationKey;
+	public final fun getCODE_FRAGMENT_METHOD_NAME ()Lorg/jetbrains/kotlin/config/CompilerConfigurationKey;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaCompilerFacilityKt {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaDataFlowExitPointSnapshot$DefaultExpressionInfo {
+	public fun <init> (Lorg/jetbrains/kotlin/psi/KtExpression;Lorg/jetbrains/kotlin/analysis/api/types/KaType;)V
+	public final fun getExpression ()Lorg/jetbrains/kotlin/psi/KtExpression;
+	public final fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaDataFlowExitPointSnapshot$VariableReassignment {
+	public fun <init> (Lorg/jetbrains/kotlin/psi/KtExpression;Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;Z)V
+	public final fun getExpression ()Lorg/jetbrains/kotlin/psi/KtExpression;
+	public final fun getVariable ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;
+	public final fun isAugmented ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaDataFlowProvider {
+	public abstract fun getSmartCastInfo (Lorg/jetbrains/kotlin/psi/KtExpression;)Lorg/jetbrains/kotlin/analysis/api/components/KaSmartCastInfo;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter : java/lang/Enum {
+	public static final field EXTENDED_AND_COMMON_CHECKERS Lorg/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter;
+	public static final field ONLY_COMMON_CHECKERS Lorg/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter;
+	public static final field ONLY_EXTENDED_CHECKERS Lorg/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaDiagnosticProvider {
+	public abstract fun collectDiagnostics (Lorg/jetbrains/kotlin/psi/KtFile;Lorg/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter;)Ljava/util/Collection;
+	public fun collectDiagnosticsForFile (Lorg/jetbrains/kotlin/psi/KtFile;Lorg/jetbrains/kotlin/analysis/api/components/KaDiagnosticCheckerFilter;)Ljava/util/Collection;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaEvaluator {
+	public abstract fun evaluate (Lorg/jetbrains/kotlin/psi/KtExpression;)Lorg/jetbrains/kotlin/analysis/api/base/KaConstantValue;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaExpressionInformationProvider {
+	public abstract fun isUsedAsExpression (Lorg/jetbrains/kotlin/psi/KtExpression;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaExpressionTypeProvider {
+	public abstract fun getExpectedType (Lcom/intellij/psi/PsiElement;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getExpressionType (Lorg/jetbrains/kotlin/psi/KtExpression;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getFunctionType (Lorg/jetbrains/kotlin/psi/KtFunction;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getFunctionalType (Lorg/jetbrains/kotlin/psi/KtFunction;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getKaType (Lorg/jetbrains/kotlin/psi/KtExpression;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getKtType (Lorg/jetbrains/kotlin/psi/KtExpression;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getReturnKaType (Lorg/jetbrains/kotlin/psi/KtDeclaration;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getReturnKtType (Lorg/jetbrains/kotlin/psi/KtDeclaration;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getReturnType (Lorg/jetbrains/kotlin/psi/KtDeclaration;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun isDefinitelyNotNull (Lorg/jetbrains/kotlin/psi/KtExpression;)Z
+	public abstract fun isDefinitelyNull (Lorg/jetbrains/kotlin/psi/KtExpression;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaImplicitReceiver : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getOwnerSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;
+	public abstract fun getScopeIndexInTower ()I
+	public abstract fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaImplicitReceiverSmartCast : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getKind ()Lorg/jetbrains/kotlin/analysis/api/components/KaImplicitReceiverSmartCastKind;
+	public abstract fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaImplicitReceiverSmartCastKind : java/lang/Enum {
+	public static final field DISPATCH Lorg/jetbrains/kotlin/analysis/api/components/KaImplicitReceiverSmartCastKind;
+	public static final field EXTENSION Lorg/jetbrains/kotlin/analysis/api/components/KaImplicitReceiverSmartCastKind;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/components/KaImplicitReceiverSmartCastKind;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/components/KaImplicitReceiverSmartCastKind;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaJavaInteroperabilityComponent {
+	public abstract fun getCallableSymbol (Lcom/intellij/psi/PsiMember;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+	public abstract fun getNamedClassSymbol (Lcom/intellij/psi/PsiClass;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaOriginalPsiProvider {
+	public abstract fun getOriginalDeclaration (Lorg/jetbrains/kotlin/psi/KtDeclaration;)Lorg/jetbrains/kotlin/psi/KtDeclaration;
+	public abstract fun getOriginalKtFile (Lorg/jetbrains/kotlin/psi/KtFile;)Lorg/jetbrains/kotlin/psi/KtFile;
+	public abstract fun recordOriginalDeclaration (Lorg/jetbrains/kotlin/psi/KtDeclaration;Lorg/jetbrains/kotlin/psi/KtDeclaration;)V
+	public abstract fun recordOriginalKtFile (Lorg/jetbrains/kotlin/psi/KtFile;Lorg/jetbrains/kotlin/psi/KtFile;)V
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaResolver {
+	public fun collectCallCandidates (Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/List;
+	public fun collectCallCandidatesOld (Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/List;
+	public abstract fun isImplicitReferenceToCompanion (Lorg/jetbrains/kotlin/idea/references/KtReference;)Z
+	public fun resolveCall (Lorg/jetbrains/kotlin/psi/KtElement;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;
+	public fun resolveCallOld (Lorg/jetbrains/kotlin/psi/KtElement;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;
+	public abstract fun resolveToCall (Lorg/jetbrains/kotlin/psi/KtElement;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;
+	public abstract fun resolveToCallCandidates (Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/List;
+	public abstract fun resolveToSymbol (Lorg/jetbrains/kotlin/idea/references/KtReference;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;
+	public abstract fun resolveToSymbols (Lorg/jetbrains/kotlin/idea/references/KtReference;)Ljava/util/Collection;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeContext : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getImplicitReceivers ()Ljava/util/List;
+	public abstract fun getScopes ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind {
+	public abstract fun getIndexInTower ()I
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$DefaultSimpleImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ImportingScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$DefaultStarImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ImportingScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ExplicitSimpleImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ImportingScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ExplicitStarImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ImportingScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$NonLocalScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$LocalScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$NonLocalScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$PackageMemberScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$NonLocalScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ScriptMemberScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$NonLocalScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$StaticMemberScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$NonLocalScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$TypeParameterScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$NonLocalScope {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeKind$TypeScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$DefaultSimpleImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$DefaultSimpleImportingScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$DefaultStarImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$DefaultStarImportingScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$ExplicitSimpleImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ExplicitSimpleImportingScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$ExplicitStarImportingScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ExplicitStarImportingScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$LocalScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$LocalScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$PackageMemberScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$PackageMemberScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$ScriptMemberScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$ScriptMemberScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$StaticMemberScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$StaticMemberScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$TypeParameterScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$TypeParameterScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaScopeKinds$TypeScope : org/jetbrains/kotlin/analysis/api/components/KaScopeKind$TypeScope {
+	public fun <init> (I)V
+	public fun getIndexInTower ()I
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeProvider {
+	public abstract fun asCompositeScope (Ljava/util/List;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public fun compositeScope (Lorg/jetbrains/kotlin/analysis/api/components/KaScopeContext;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public static synthetic fun compositeScope$default (Lorg/jetbrains/kotlin/analysis/api/components/KaScopeProvider;Lorg/jetbrains/kotlin/analysis/api/components/KaScopeContext;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun getCombinedDeclaredMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public fun getCombinedMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public fun getCompositeScope (Lorg/jetbrains/kotlin/analysis/api/components/KaScopeContext;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public static synthetic fun getCompositeScope$default (Lorg/jetbrains/kotlin/analysis/api/components/KaScopeProvider;Lorg/jetbrains/kotlin/analysis/api/components/KaScopeContext;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun getDeclaredMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun getDelegatedMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun getFileScope (Lorg/jetbrains/kotlin/analysis/api/symbols/KaFileSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun getImportingScopeContext (Lorg/jetbrains/kotlin/psi/KtFile;)Lorg/jetbrains/kotlin/analysis/api/components/KaScopeContext;
+	public abstract fun getMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun getPackageScope (Lorg/jetbrains/kotlin/analysis/api/symbols/KaPackageSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public fun getScopeContextForPosition (Lorg/jetbrains/kotlin/psi/KtFile;Lorg/jetbrains/kotlin/psi/KtElement;)Lorg/jetbrains/kotlin/analysis/api/components/KaScopeContext;
+	public abstract fun getStaticDeclaredMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun getStaticMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+	public abstract fun scopeContext (Lorg/jetbrains/kotlin/psi/KtFile;Lorg/jetbrains/kotlin/psi/KtElement;)Lorg/jetbrains/kotlin/analysis/api/components/KaScopeContext;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeWithKind : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getKind ()Lorg/jetbrains/kotlin/analysis/api/components/KaScopeKind;
+	public abstract fun getScope ()Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaSmartCastInfo : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getSmartCastType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun isStable ()Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaSubstitutorProviderKt {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy : java/lang/Enum {
+	public static final field LENIENT Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;
+	public static final field STRICT Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaSymbolRelationProvider {
+	public abstract fun getAllOverriddenSymbols (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lkotlin/sequences/Sequence;
+	public abstract fun getContainingDeclaration (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;
+	public abstract fun getContainingFile (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaFileSymbol;
+	public abstract fun getContainingModule (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;
+	public abstract fun getContainingSymbol (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;
+	public abstract fun getDirectlyOverriddenSymbols (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lkotlin/sequences/Sequence;
+	public abstract fun getEnumEntries (Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;)Ljava/util/List;
+	public abstract fun getFakeOverrideOriginal (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+	public abstract fun getIntersectionOverriddenSymbols (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Ljava/util/List;
+	public abstract fun getOriginalContainingClassForOverride (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public abstract fun getSamConstructor (Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSamConstructorSymbol;
+	public abstract fun getSealedClassInheritors (Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;)Ljava/util/List;
+	public fun getUnwrapFakeOverrides (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+	public abstract fun isDirectSubClassOf (Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;)Z
+	public abstract fun isSubClassOf (Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeBuilder : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeCreator {
+	public abstract fun buildClassType (Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun buildClassType (Lorg/jetbrains/kotlin/name/ClassId;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public static synthetic fun buildClassType$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeCreator;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public static synthetic fun buildClassType$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeCreator;Lorg/jetbrains/kotlin/name/ClassId;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun buildTypeParameterType (Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/types/KaTypeParameterType;
+	public static synthetic fun buildTypeParameterType$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeCreator;Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/kotlin/analysis/api/types/KaTypeParameterType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeInformationProvider {
+	public abstract fun getCanBeNull (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun getExpandedClassSymbol (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public fun getExpandedSymbol (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public abstract fun getFullyExpandedType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getHasFlexibleNullability (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isAny (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isAnyType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public abstract fun isArrayOrPrimitiveArray (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isBoolean (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isBooleanType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isByte (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isByteType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isChar (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isCharSequence (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isCharSequenceType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isCharType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isClassType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/name/ClassId;)Z
+	public fun isClassTypeWithClassId (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/name/ClassId;)Z
+	public abstract fun isDenotable (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isDouble (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isDoubleType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isFloat (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isFloatType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isFunctionType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public abstract fun isFunctionalInterface (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isFunctionalInterfaceType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isInt (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isIntType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isKFunctionType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isKSuspendFunctionType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isLong (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isLongType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isMarkedNullable (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public abstract fun isNestedArray (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isNothing (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isNothingType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isPrimitive (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isShort (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isShortType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isString (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isStringType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isSuspendFunctionType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUByte (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUByteType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUInt (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUIntType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isULong (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isULongType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUShort (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUShortType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUnit (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isUnitType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeParameterTypeBuilder : org/jetbrains/kotlin/analysis/api/components/KaTypeBuilder {
+	public abstract fun getNullability ()Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+	public abstract fun setNullability (Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;)V
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeProvider {
+	public abstract fun allSupertypes (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Z)Lkotlin/sequences/Sequence;
+	public fun buildSelfClassType (Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun collectImplicitReceiverTypes (Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/List;
+	public fun commonSuperType (Ljava/util/Collection;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun directSupertypes (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Z)Lkotlin/sequences/Sequence;
+	public fun getAllSuperTypes (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Z)Ljava/util/List;
+	public static synthetic fun getAllSuperTypes$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeProvider;Lorg/jetbrains/kotlin/analysis/api/types/KaType;ZILjava/lang/Object;)Ljava/util/List;
+	public fun getAllSupertypes (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lkotlin/sequences/Sequence;
+	public abstract fun getArrayElementType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getBuiltinTypes ()Lorg/jetbrains/kotlin/analysis/api/components/KaBuiltinTypes;
+	public abstract fun getCommonSupertype (Ljava/lang/Iterable;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getCommonSupertype ([Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getDefaultType (Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getDirectSuperTypes (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Z)Ljava/util/List;
+	public static synthetic fun getDirectSuperTypes$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeProvider;Lorg/jetbrains/kotlin/analysis/api/types/KaType;ZILjava/lang/Object;)Ljava/util/List;
+	public fun getDirectSupertypes (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lkotlin/sequences/Sequence;
+	public abstract fun getDispatchReceiverType (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getImplicitReceiverTypesAtPosition (Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/List;
+	public fun getKaType (Lorg/jetbrains/kotlin/psi/KtTypeReference;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getKtType (Lorg/jetbrains/kotlin/psi/KtTypeReference;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun getReceiverKtType (Lorg/jetbrains/kotlin/psi/KtDoubleColonExpression;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getReceiverType (Lorg/jetbrains/kotlin/psi/KtDoubleColonExpression;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getType (Lorg/jetbrains/kotlin/psi/KtTypeReference;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun hasCommonSubTypeWith (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public abstract fun hasCommonSubtypeWith (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun lowerBoundIfFlexible (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public fun upperBoundIfFlexible (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun withNullability (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker {
+	public fun isEqualTo (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
+	public fun isEqualTo (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;)Z
+	public fun isNotSubTypeOf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;)Z
+	public static synthetic fun isNotSubTypeOf$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;ILjava/lang/Object;)Z
+	public fun isSubTypeOf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;)Z
+	public static synthetic fun isSubTypeOf$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;ILjava/lang/Object;)Z
+	public abstract fun isSubtypeOf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;)Z
+	public static synthetic fun isSubtypeOf$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;ILjava/lang/Object;)Z
+	public abstract fun semanticallyEquals (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;)Z
+	public static synthetic fun semanticallyEquals$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;ILjava/lang/Object;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaVisibilityChecker {
+	public abstract fun isPublicApi (Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/ShortenOptions$Companion {
+	public final fun getALL_ENABLED ()Lorg/jetbrains/kotlin/analysis/api/components/ShortenOptions;
+	public final fun getDEFAULT ()Lorg/jetbrains/kotlin/analysis/api/components/ShortenOptions;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/components/ShortenStrategy$Companion {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/contracts/description/KaContractConstantValue$KaContractConstantType : java/lang/Enum {
+	public static final field FALSE Lorg/jetbrains/kotlin/analysis/api/contracts/description/KaContractConstantValue$KaContractConstantType;
+	public static final field NULL Lorg/jetbrains/kotlin/analysis/api/contracts/description/KaContractConstantValue$KaContractConstantType;
+	public static final field TRUE Lorg/jetbrains/kotlin/analysis/api/contracts/description/KaContractConstantValue$KaContractConstantType;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/contracts/description/KaContractConstantValue$KaContractConstantType;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/contracts/description/KaContractConstantValue$KaContractConstantType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/contracts/description/KaContractReturnsContractEffectDeclaration$KaContractReturnsNotNullEffectDeclaration : org/jetbrains/kotlin/analysis/api/contracts/description/KaContractReturnsContractEffectDeclaration {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/contracts/description/KaContractReturnsContractEffectDeclaration$KaContractReturnsSpecificValueEffectDeclaration : org/jetbrains/kotlin/analysis/api/contracts/description/KaContractReturnsContractEffectDeclaration {
+	public abstract fun getValue ()Lorg/jetbrains/kotlin/analysis/api/contracts/description/KaContractConstantValue;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/contracts/description/KaContractReturnsContractEffectDeclaration$KaContractReturnsSuccessfullyEffectDeclaration : org/jetbrains/kotlin/analysis/api/contracts/description/KaContractReturnsContractEffectDeclaration {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/contracts/description/booleans/KaContractBinaryLogicExpression$KaLogicOperation : java/lang/Enum {
+	public static final field AND Lorg/jetbrains/kotlin/analysis/api/contracts/description/booleans/KaContractBinaryLogicExpression$KaLogicOperation;
+	public static final field OR Lorg/jetbrains/kotlin/analysis/api/contracts/description/booleans/KaContractBinaryLogicExpression$KaLogicOperation;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/contracts/description/booleans/KaContractBinaryLogicExpression$KaLogicOperation;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/contracts/description/booleans/KaContractBinaryLogicExpression$KaLogicOperation;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/diagnostics/KaDiagnostic : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getDefaultMessage ()Ljava/lang/String;
+	public abstract fun getDiagnosticClass ()Lkotlin/reflect/KClass;
+	public abstract fun getFactoryName ()Ljava/lang/String;
+	public abstract fun getSeverity ()Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaSeverity;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/diagnostics/KaDiagnosticKt {
+	public static final fun getDefaultMessageWithFactoryName (Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaDiagnostic;)Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/diagnostics/KaDiagnosticWithPsi : org/jetbrains/kotlin/analysis/api/diagnostics/KaDiagnostic {
+	public abstract fun getDiagnosticClass ()Lkotlin/reflect/KClass;
+	public abstract fun getPsi ()Lcom/intellij/psi/PsiElement;
+	public abstract fun getTextRanges ()Ljava/util/Collection;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/diagnostics/KaSeverity : java/lang/Enum {
+	public static final field ERROR Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaSeverity;
+	public static final field INFO Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaSeverity;
+	public static final field WARNING Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaSeverity;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaSeverity;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaSeverity;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getToken ()Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeToken;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwnerField : kotlin/properties/ReadOnlyProperty {
+	public static final synthetic fun box-impl (Ljava/lang/Object;)Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwnerField;
+	public static fun constructor-impl (Ljava/lang/Object;)Ljava/lang/Object;
+	public fun equals (Ljava/lang/Object;)Z
+	public static fun equals-impl (Ljava/lang/Object;Ljava/lang/Object;)Z
+	public static final fun equals-impl0 (Ljava/lang/Object;Ljava/lang/Object;)Z
+	public final fun getValue ()Ljava/lang/Object;
+	public synthetic fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
+	public fun getValue (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
+	public static fun getValue-impl (Ljava/lang/Object;Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
+	public fun hashCode ()I
+	public static fun hashCode-impl (Ljava/lang/Object;)I
+	public fun toString ()Ljava/lang/String;
+	public static fun toString-impl (Ljava/lang/Object;)Ljava/lang/String;
+	public final synthetic fun unbox-impl ()Ljava/lang/Object;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwnerKt {
+	public static final fun assertIsValidAndAccessible (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner;)V
+	public static final fun isValid (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner;)Z
+	public static final fun validityAsserted (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner;Ljava/lang/Object;)Ljava/lang/Object;
+	public static final fun withValidityAssertion (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeToken {
+	public fun <init> ()V
+	public abstract fun getInaccessibilityReason ()Ljava/lang/String;
+	public abstract fun getInvalidationReason ()Ljava/lang/String;
+	public abstract fun isAccessible ()Z
+	public abstract fun isValid ()Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeTokenKt {
+	public static final fun assertIsValidAndAccessible (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeToken;)V
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/permissions/KaAllowAnalysisFromWriteAction : java/lang/annotation/Annotation {
+}
+
+public abstract interface annotation class org/jetbrains/kotlin/analysis/api/permissions/KaAllowAnalysisOnEdt : java/lang/annotation/Annotation {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/permissions/KaAnalysisPermissionRegistry$Companion {
+	public final fun getInstance ()Lorg/jetbrains/kotlin/analysis/api/permissions/KaAnalysisPermissionRegistry;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/permissions/KaAnalysisPermissionRegistry$KaExplicitAnalysisRestriction {
+	public fun <init> (Ljava/lang/String;)V
+	public final fun getDescription ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/permissions/PermissionsKt {
+	public static final fun allowAnalysisFromWriteAction (Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
+	public static final fun allowAnalysisOnEdt (Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
+	public static final fun forbidAnalysis (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/projectStructure/DanglingFilesKt {
+	public static final fun getDanglingFileResolutionMode (Lorg/jetbrains/kotlin/psi/KtFile;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode;
+	public static final fun isDangling (Lorg/jetbrains/kotlin/psi/KtFile;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/projectStructure/DependenciesKt {
+	public static final fun allDirectDependencies (Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Lkotlin/sequences/Sequence;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/projectStructure/ExtensionFileContextModuleKt {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode : java/lang/Enum {
+	public static final field IGNORE_SELF Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode;
+	public static final field PREFER_SELF Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/projectStructure/KaLibraryModule : org/jetbrains/kotlin/analysis/api/projectStructure/KaModule {
+	public abstract fun getBinaryRoots ()Ljava/util/Collection;
+	public abstract fun getLibraryName ()Ljava/lang/String;
+	public abstract fun getLibrarySources ()Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaLibrarySourceModule;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/projectStructure/KaLibrarySourceModule : org/jetbrains/kotlin/analysis/api/projectStructure/KaModule {
+	public abstract fun getBinaryLibrary ()Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaLibraryModule;
+	public abstract fun getLibraryName ()Ljava/lang/String;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/projectStructure/KaModule {
+	public abstract fun getContentScope ()Lcom/intellij/psi/search/GlobalSearchScope;
+	public abstract fun getDirectDependsOnDependencies ()Ljava/util/List;
+	public abstract fun getDirectFriendDependencies ()Ljava/util/List;
+	public abstract fun getDirectRegularDependencies ()Ljava/util/List;
+	public fun getPlatform ()Lorg/jetbrains/kotlin/platform/TargetPlatform;
+	public abstract fun getProject ()Lcom/intellij/openapi/project/Project;
+	public abstract fun getTargetPlatform ()Lorg/jetbrains/kotlin/platform/TargetPlatform;
+	public abstract fun getTransitiveDependsOnDependencies ()Ljava/util/List;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/projectStructure/KaModuleKt {
+	public static final fun isStable (Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileModule;)Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/projectStructure/KaModuleProvider {
+	public static final field Companion Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModuleProvider$Companion;
+	public abstract fun getModule (Lcom/intellij/psi/PsiElement;Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/projectStructure/KaModuleProvider$Companion {
+	public final fun getInstance (Lcom/intellij/openapi/project/Project;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModuleProvider;
+	public final fun getModule (Lcom/intellij/openapi/project/Project;Lcom/intellij/psi/PsiElement;Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/projectStructure/KaSourceModule : org/jetbrains/kotlin/analysis/api/projectStructure/KaModule {
+	public abstract fun getLanguageVersionSettings ()Lorg/jetbrains/kotlin/config/LanguageVersionSettings;
+	public fun getModuleName ()Ljava/lang/String;
+	public abstract fun getName ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer$AS_WORD : org/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer$AS_WORD;
+	public fun renderKeyword (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/lexer/KtKeywordToken;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer$NONE : org/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer$NONE;
+	public fun renderKeyword (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/lexer/KtKeywordToken;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer$Builder {
+	public field keywordFilter Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;
+	public field keywordRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer;
+	public fun <init> ()V
+	public final fun build ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public final fun getKeywordFilter ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;
+	public final fun getKeywordRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer;
+	public final fun setKeywordFilter (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;)V
+	public final fun setKeywordRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordRenderer;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer$Companion {
+	public final fun getAS_WORD ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public final fun getNONE ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public final fun invoke (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer$Builder {
+	public field annotationArgumentsRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer;
+	public field annotationFilter Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter;
+	public field annotationListRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationListRenderer;
+	public field annotationUseSiteTargetRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer;
+	public field annotationsQualifiedNameRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer;
+	public fun <init> ()V
+	public final fun build ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;
+	public final fun getAnnotationArgumentsRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer;
+	public final fun getAnnotationFilter ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter;
+	public final fun getAnnotationListRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationListRenderer;
+	public final fun getAnnotationUseSiteTargetRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer;
+	public final fun getAnnotationsQualifiedNameRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer;
+	public final fun setAnnotationArgumentsRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer;)V
+	public final fun setAnnotationFilter (Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter;)V
+	public final fun setAnnotationListRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationListRenderer;)V
+	public final fun setAnnotationUseSiteTargetRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer;)V
+	public final fun setAnnotationsQualifiedNameRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$ALL : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$ALL;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function3;)Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$NONE : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$NONE;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$NO_NULLABILITY : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$NO_NULLABILITY;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$NO_PARAMETER_NAME : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaRendererAnnotationsFilter$NO_PARAMETER_NAME;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer$IF_ANY : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer$IF_ANY;
+	public fun renderAnnotationArguments (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer$NONE : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationArgumentsRenderer$NONE;
+	public fun renderAnnotationArguments (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationListRenderer$FOR_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationListRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationListRenderer$FOR_SOURCE;
+	public fun renderAnnotations (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer$WITH_QUALIFIED_NAMES : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer$WITH_QUALIFIED_NAMES;
+	public fun renderQualifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer$WITH_SHORT_NAMES : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationQualifierRenderer$WITH_SHORT_NAMES;
+	public fun renderQualifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer$WITHOUT_USE_SITE : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer$WITHOUT_USE_SITE;
+	public fun renderUseSiteTarget (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer$WITH_NON_DEFAULT_USE_SITE : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer$WITH_NON_DEFAULT_USE_SITE;
+	public fun renderUseSiteTarget (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer$WITH_USES_SITE : org/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/renderers/KaAnnotationUseSiteTargetRenderer$WITH_USES_SITE;
+	public fun renderUseSiteTarget (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotation;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer$Builder {
+	public field contextReceiverLabelRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverLabelRenderer;
+	public field contextReceiverListRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverListRenderer;
+	public fun <init> ()V
+	public final fun build ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;
+	public final fun getContextReceiverLabelRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverLabelRenderer;
+	public final fun getContextReceiverListRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverListRenderer;
+	public final fun setContextReceiverLabelRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverLabelRenderer;)V
+	public final fun setContextReceiverListRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverListRenderer;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverLabelRenderer$WITH_LABEL : org/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverLabelRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverLabelRenderer$WITH_LABEL;
+	public fun renderLabel (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/base/KaContextReceiver;Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverListRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverListRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/renderers/KaContextReceiverListRenderer$AS_SOURCE;
+	public fun renderContextReceivers (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/base/KaContextReceiversOwner;Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter$ALWAYS : org/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter$ALWAYS;
+	public fun shouldRenderReturnType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter$NO_UNIT_FOR_FUNCTIONS : org/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter$NO_UNIT_FOR_FUNCTIONS;
+	public fun shouldRenderReturnType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Z
+}
+
+public class org/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer$Builder {
+	public field accessorBodyRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaPropertyAccessorBodyRenderer;
+	public field annotationRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;
+	public field anonymousFunctionRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaAnonymousFunctionSymbolRenderer;
+	public field anonymousObjectRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaAnonymousObjectSymbolRenderer;
+	public field backingFieldRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaBackingFieldSymbolRenderer;
+	public field bodyMemberScopeProvider Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider;
+	public field bodyMemberScopeSorter Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeSorter;
+	public field callableReceiverRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReceiverRenderer;
+	public field callableSignatureRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableSignatureRenderer;
+	public field classInitializerRender Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassInitializerRenderer;
+	public field classifierBodyRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer;
+	public field codeStyle Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererCodeStyle;
+	public field constructorRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer;
+	public field contextReceiversRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;
+	public field declarationTypeApproximator Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator;
+	public field destructuringDeclarationRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaDestructuringDeclarationRenderer;
+	public field enumEntryRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaEnumEntrySymbolRenderer;
+	public field functionLikeBodyRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaFunctionLikeBodyRenderer;
+	public field getterRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyGetterSymbolRenderer;
+	public field javaFieldRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaJavaFieldSymbolRenderer;
+	public field keywordsRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public field kotlinPropertyRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer;
+	public field localVariableRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaLocalVariableSymbolRenderer;
+	public field modifiersRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer;
+	public field nameRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer;
+	public field namedClassRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer;
+	public field namedFunctionRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer;
+	public field parameterDefaultValueRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer;
+	public field propertyAccessorsRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer;
+	public field propertyRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer;
+	public field returnTypeFilter Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter;
+	public field returnTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReturnTypeRenderer;
+	public field samConstructorRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer;
+	public field scriptInitializerRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaScriptInitializerRenderer;
+	public field scriptRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaScriptSymbolRenderer;
+	public field setterRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertySetterSymbolRenderer;
+	public field singleTypeParameterRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer;
+	public field superTypeListRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeListRenderer;
+	public field superTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeRenderer;
+	public field superTypesArgumentRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer;
+	public field superTypesFilter Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter;
+	public field syntheticJavaPropertyRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSyntheticJavaPropertySymbolRenderer;
+	public field typeAliasRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaTypeAliasSymbolRenderer;
+	public field typeParametersFilter Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter;
+	public field typeParametersRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer;
+	public field typeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;
+	public field valueParameterRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer;
+	public field valueParametersRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaCallableParameterRenderer;
+	public field variableInitializerRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer;
+	public fun <init> ()V
+	public final fun build ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;
+	public final fun getAccessorBodyRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaPropertyAccessorBodyRenderer;
+	public final fun getAnnotationRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;
+	public final fun getAnonymousFunctionRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaAnonymousFunctionSymbolRenderer;
+	public final fun getAnonymousObjectRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaAnonymousObjectSymbolRenderer;
+	public final fun getBackingFieldRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaBackingFieldSymbolRenderer;
+	public final fun getBodyMemberScopeProvider ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider;
+	public final fun getBodyMemberScopeSorter ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeSorter;
+	public final fun getCallableReceiverRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReceiverRenderer;
+	public final fun getCallableSignatureRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableSignatureRenderer;
+	public final fun getClassInitializerRender ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassInitializerRenderer;
+	public final fun getClassifierBodyRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer;
+	public final fun getCodeStyle ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererCodeStyle;
+	public final fun getConstructorRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer;
+	public final fun getContextReceiversRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;
+	public final fun getDeclarationTypeApproximator ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator;
+	public final fun getDestructuringDeclarationRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaDestructuringDeclarationRenderer;
+	public final fun getEnumEntryRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaEnumEntrySymbolRenderer;
+	public final fun getFunctionLikeBodyRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaFunctionLikeBodyRenderer;
+	public final fun getGetterRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyGetterSymbolRenderer;
+	public final fun getJavaFieldRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaJavaFieldSymbolRenderer;
+	public final fun getKeywordsRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public final fun getKotlinPropertyRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer;
+	public final fun getLocalVariableRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaLocalVariableSymbolRenderer;
+	public final fun getModifiersRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer;
+	public final fun getNameRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer;
+	public final fun getNamedClassRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer;
+	public final fun getNamedFunctionRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer;
+	public final fun getParameterDefaultValueRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer;
+	public final fun getPropertyAccessorsRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer;
+	public final fun getPropertyRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer;
+	public final fun getReturnTypeFilter ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter;
+	public final fun getReturnTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReturnTypeRenderer;
+	public final fun getSamConstructorRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer;
+	public final fun getScriptInitializerRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaScriptInitializerRenderer;
+	public final fun getScriptRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaScriptSymbolRenderer;
+	public final fun getSetterRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertySetterSymbolRenderer;
+	public final fun getSingleTypeParameterRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer;
+	public final fun getSuperTypeListRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeListRenderer;
+	public final fun getSuperTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeRenderer;
+	public final fun getSuperTypesArgumentRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer;
+	public final fun getSuperTypesFilter ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter;
+	public final fun getSyntheticJavaPropertyRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSyntheticJavaPropertySymbolRenderer;
+	public final fun getTypeAliasRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaTypeAliasSymbolRenderer;
+	public final fun getTypeParametersFilter ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter;
+	public final fun getTypeParametersRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer;
+	public final fun getTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;
+	public final fun getValueParameterRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer;
+	public final fun getValueParametersRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaCallableParameterRenderer;
+	public final fun getVariableInitializerRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer;
+	public final fun setAccessorBodyRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaPropertyAccessorBodyRenderer;)V
+	public final fun setAnnotationRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;)V
+	public final fun setAnonymousFunctionRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaAnonymousFunctionSymbolRenderer;)V
+	public final fun setAnonymousObjectRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaAnonymousObjectSymbolRenderer;)V
+	public final fun setBackingFieldRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaBackingFieldSymbolRenderer;)V
+	public final fun setBodyMemberScopeProvider (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider;)V
+	public final fun setBodyMemberScopeSorter (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeSorter;)V
+	public final fun setCallableReceiverRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReceiverRenderer;)V
+	public final fun setCallableSignatureRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableSignatureRenderer;)V
+	public final fun setClassInitializerRender (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassInitializerRenderer;)V
+	public final fun setClassifierBodyRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer;)V
+	public final fun setCodeStyle (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererCodeStyle;)V
+	public final fun setConstructorRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer;)V
+	public final fun setContextReceiversRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;)V
+	public final fun setDeclarationTypeApproximator (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator;)V
+	public final fun setDestructuringDeclarationRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaDestructuringDeclarationRenderer;)V
+	public final fun setEnumEntryRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaEnumEntrySymbolRenderer;)V
+	public final fun setFunctionLikeBodyRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaFunctionLikeBodyRenderer;)V
+	public final fun setGetterRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyGetterSymbolRenderer;)V
+	public final fun setJavaFieldRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaJavaFieldSymbolRenderer;)V
+	public final fun setKeywordsRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;)V
+	public final fun setKotlinPropertyRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer;)V
+	public final fun setLocalVariableRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaLocalVariableSymbolRenderer;)V
+	public final fun setModifiersRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer;)V
+	public final fun setNameRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer;)V
+	public final fun setNamedClassRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer;)V
+	public final fun setNamedFunctionRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer;)V
+	public final fun setParameterDefaultValueRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer;)V
+	public final fun setPropertyAccessorsRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer;)V
+	public final fun setPropertyRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer;)V
+	public final fun setReturnTypeFilter (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaCallableReturnTypeFilter;)V
+	public final fun setReturnTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReturnTypeRenderer;)V
+	public final fun setSamConstructorRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer;)V
+	public final fun setScriptInitializerRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaScriptInitializerRenderer;)V
+	public final fun setScriptRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaScriptSymbolRenderer;)V
+	public final fun setSetterRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertySetterSymbolRenderer;)V
+	public final fun setSingleTypeParameterRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer;)V
+	public final fun setSuperTypeListRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeListRenderer;)V
+	public final fun setSuperTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeRenderer;)V
+	public final fun setSuperTypesArgumentRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer;)V
+	public final fun setSuperTypesFilter (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter;)V
+	public final fun setSyntheticJavaPropertyRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSyntheticJavaPropertySymbolRenderer;)V
+	public final fun setTypeAliasRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaTypeAliasSymbolRenderer;)V
+	public final fun setTypeParametersFilter (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter;)V
+	public final fun setTypeParametersRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer;)V
+	public final fun setTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;)V
+	public final fun setValueParameterRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer;)V
+	public final fun setValueParametersRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaCallableParameterRenderer;)V
+	public final fun setVariableInitializerRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator$NO_APPROXIMATION : org/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator$NO_APPROXIMATION;
+	public fun approximateType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/types/Variance;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator$TO_DENOTABLE : org/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator$TO_DENOTABLE;
+	public fun approximateType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/types/Variance;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/RendererUtilsKt {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaFunctionLikeBodyRenderer$NO_BODY : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaFunctionLikeBodyRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaFunctionLikeBodyRenderer$NO_BODY;
+	public fun renderBody (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer$NO_DEFAULT_VALUE : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer$NO_DEFAULT_VALUE;
+	public fun renderDefaultValue (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaValueParameterSymbol;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer$THREE_DOTS : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaParameterDefaultValueRenderer$THREE_DOTS;
+	public fun renderDefaultValue (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaValueParameterSymbol;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaPropertyAccessorBodyRenderer$NO_BODY : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaPropertyAccessorBodyRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaPropertyAccessorBodyRenderer$NO_BODY;
+	public fun renderBody (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertyAccessorSymbol;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider$ALL : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider$ALL;
+	public fun getMemberScope (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Ljava/util/List;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider$ALL_DECLARED : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider$ALL_DECLARED;
+	public fun getMemberScope (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Ljava/util/List;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider$NONE : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeProvider$NONE;
+	public fun getMemberScope (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Ljava/util/List;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeSorter$ENUM_ENTRIES_AT_BEGINING : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeSorter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaRendererBodyMemberScopeSorter$ENUM_ENTRIES_AT_BEGINING;
+	public fun sortMembers (Lorg/jetbrains/kotlin/analysis/api/KaSession;Ljava/util/List;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Ljava/util/List;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaScriptInitializerRenderer$NO_INITIALIZER : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaScriptInitializerRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaScriptInitializerRenderer$NO_INITIALIZER;
+	public fun renderInitializer (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaScriptSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer$NO_INITIALIZER : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer$NO_INITIALIZER;
+	public fun renderInitializer (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer$ONLY_CONST_VALUE_INITIALIZERS : org/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/bodies/KaVariableInitializerRenderer$ONLY_CONST_VALUE_INITIALIZERS;
+	public fun renderInitializer (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer$Builder {
+	public field keywordsRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public field modalityProvider Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider;
+	public field modifierListRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifierListRenderer;
+	public field modifiersSorter Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifiersSorter;
+	public field otherModifiersProvider Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererOtherModifiersProvider;
+	public field visibilityProvider Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider;
+	public fun <init> ()V
+	public final fun build ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer;
+	public final fun getKeywordsRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public final fun getModalityProvider ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider;
+	public final fun getModifierListRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifierListRenderer;
+	public final fun getModifiersSorter ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifiersSorter;
+	public final fun getOtherModifiersProvider ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererOtherModifiersProvider;
+	public final fun getVisibilityProvider ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider;
+	public final fun setKeywordsRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;)V
+	public final fun setModalityProvider (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider;)V
+	public final fun setModifierListRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifierListRenderer;)V
+	public final fun setModifiersSorter (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifiersSorter;)V
+	public final fun setOtherModifiersProvider (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererOtherModifiersProvider;)V
+	public final fun setVisibilityProvider (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifierListRenderer$AS_LIST : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifierListRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifierListRenderer$AS_LIST;
+	public fun renderModifiers (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/KaDeclarationModifiersRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifiersSorter$CANONICAL : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifiersSorter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaModifiersSorter$CANONICAL;
+	public fun sort (Lorg/jetbrains/kotlin/analysis/api/KaSession;Ljava/util/List;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Ljava/util/List;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter$ALL : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter$ALL;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/lexer/KtKeywordToken;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function3;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;
+	public final fun onlyWith (Lcom/intellij/psi/tree/TokenSet;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;
+	public final fun onlyWith ([Lorg/jetbrains/kotlin/lexer/KtKeywordToken;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;
+	public final fun without (Lcom/intellij/psi/tree/TokenSet;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;
+	public final fun without ([Lorg/jetbrains/kotlin/lexer/KtKeywordToken;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter$NONE : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererKeywordFilter$NONE;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/lexer/KtKeywordToken;Lorg/jetbrains/kotlin/analysis/api/annotations/KaAnnotated;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider$WITHOUT_IMPLICIT_MODALITY : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider$WITHOUT_IMPLICIT_MODALITY;
+	public fun getModalityModifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Lorg/jetbrains/kotlin/lexer/KtModifierKeywordToken;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider$WITH_IMPLICIT_MODALITY : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererModalityModifierProvider$WITH_IMPLICIT_MODALITY;
+	public fun getModalityModifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Lorg/jetbrains/kotlin/lexer/KtModifierKeywordToken;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererOtherModifiersProvider$ALL : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererOtherModifiersProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererOtherModifiersProvider$ALL;
+	public fun getOtherModifiers (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Ljava/util/List;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider$NO_IMPLICIT_VISIBILITY : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider$NO_IMPLICIT_VISIBILITY;
+	public fun getVisibilityModifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Lorg/jetbrains/kotlin/lexer/KtModifierKeywordToken;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider$WITH_IMPLICIT_VISIBILITY : org/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/modifiers/renderers/KaRendererVisibilityModifierProvider$WITH_IMPLICIT_VISIBILITY;
+	public fun getVisibilityModifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Lorg/jetbrains/kotlin/lexer/KtModifierKeywordToken;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaCallableParameterRenderer$PARAMETERS_IN_PARENS : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaCallableParameterRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaCallableParameterRenderer$PARAMETERS_IN_PARENS;
+	public fun renderValueParameters (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassInitializerRenderer$INIT_BLOCK_WITH_BRACES : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassInitializerRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassInitializerRenderer$INIT_BLOCK_WITH_BRACES;
+	public fun renderClassInitializer (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassInitializerSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$BODY_WITH_MEMBERS : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyWithMembersRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$BODY_WITH_MEMBERS;
+	public fun renderEmptyBodyForEmptyMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$BODY_WITH_MEMBERS_OR_EMPTY_BRACES : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyWithMembersRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$BODY_WITH_MEMBERS_OR_EMPTY_BRACES;
+	public fun renderEmptyBodyForEmptyMemberScope (Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$EMPTY_BRACES : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$EMPTY_BRACES;
+	public fun renderBody (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$NO_BODY : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaClassifierBodyRenderer$NO_BODY;
+	public fun renderBody (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer$QUOTED : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer$QUOTED;
+	public fun renderName (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/name/Name;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer$UNQUOTED : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaDeclarationNameRenderer$UNQUOTED;
+	public fun renderName (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/name/Name;Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function3;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter$NO_FOR_CONSTURCTORS : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParameterRendererFilter$NO_FOR_CONSTURCTORS;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer$NO_TYPE_PARAMETERS : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer$NO_TYPE_PARAMETERS;
+	public fun renderTypeParameters (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+	public fun renderWhereClause (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer$WIHTOUT_BOUNDS : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer$WIHTOUT_BOUNDS;
+	public fun renderTypeParameters (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+	public fun renderWhereClause (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer$WITH_BOUNDS_IN_WHERE_CLAUSE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/KaTypeParametersRenderer$WITH_BOUNDS_IN_WHERE_CLAUSE;
+	public fun renderTypeParameters (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+	public fun renderWhereClause (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaAnonymousFunctionSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaAnonymousFunctionSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaAnonymousFunctionSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousFunctionSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaBackingFieldSymbolRenderer$AS_FIELD_KEYWORD : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaBackingFieldSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaBackingFieldSymbolRenderer$AS_FIELD_KEYWORD;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaBackingFieldSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReceiverRenderer$AS_TYPE_WITH_IN_APPROXIMATION : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReceiverRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReceiverRenderer$AS_TYPE_WITH_IN_APPROXIMATION;
+	public fun renderReceiver (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReturnTypeRenderer$WITH_OUT_APPROXIMATION : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReturnTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableReturnTypeRenderer$WITH_OUT_APPROXIMATION;
+	public fun renderReturnType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableSignatureRenderer$FOR_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableSignatureRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaCallableSignatureRenderer$FOR_SOURCE;
+	public fun renderCallableSignature (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;Lorg/jetbrains/kotlin/lexer/KtKeywordToken;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer$AS_RAW_SIGNATURE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer$AS_RAW_SIGNATURE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaConstructorSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaConstructorSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaConstructorSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaDestructuringDeclarationRenderer$WITH_ENTRIES : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaDestructuringDeclarationRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaDestructuringDeclarationRenderer$WITH_ENTRIES;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaDestructuringDeclarationSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaEnumEntrySymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaEnumEntrySymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaEnumEntrySymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaEnumEntrySymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaJavaFieldSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaJavaFieldSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaJavaFieldSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaJavaFieldSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaKotlinPropertySymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaKotlinPropertySymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaLocalVariableSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaLocalVariableSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaLocalVariableSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaLocalVariableSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer$AS_RAW_SIGNATURE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer$AS_RAW_SIGNATURE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedFunctionSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaNamedFunctionSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedFunctionSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer$ALL : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer$ALL;
+	public fun renderAccessors (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertySymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer$NONE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer$NONE;
+	public fun renderAccessors (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertySymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer$NO_DEFAULT : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyAccessorsRenderer$NO_DEFAULT;
+	public fun renderAccessors (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertySymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyGetterSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyGetterSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertyGetterSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertyGetterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertySetterSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertySetterSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaPropertySetterSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertySetterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer$AS_FUNCTION : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer$AS_FUNCTION;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaSamConstructorSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer$NOT_RENDER : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSamConstructorSymbolRenderer$NOT_RENDER;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaSamConstructorSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaScriptSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaScriptSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaScriptSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaScriptSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSyntheticJavaPropertySymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSyntheticJavaPropertySymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaSyntheticJavaPropertySymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaSyntheticJavaPropertySymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaValueParameterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer$TYPE_ONLY : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KaValueParameterSymbolRenderer$TYPE_ONLY;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaValueParameterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaAnonymousObjectSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaAnonymousObjectSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaAnonymousObjectSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousObjectSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer$AsSourceRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer$AS_SOURCE;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer$AS_SOURCE_WITHOUT_PRIMARY_CONSTRUCTOR : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer$AsSourceRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer$AS_SOURCE_WITHOUT_PRIMARY_CONSTRUCTOR;
+}
+
+public class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer$AsSourceRenderer : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaNamedClassSymbolRenderer {
+	public fun <init> (Z)V
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer$NO : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer$NO;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer$WITHOUT_BOUNDS : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer$WITHOUT_BOUNDS;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer$WITH_COMMA_SEPARATED_BOUNDS : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaSingleTypeParameterSymbolRenderer$WITH_COMMA_SEPARATED_BOUNDS;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaTypeAliasSymbolRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaTypeAliasSymbolRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/classifiers/KaTypeAliasSymbolRenderer$AS_SOURCE;
+	public fun renderSymbol (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeAliasSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeListRenderer$AS_LIST : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeListRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeListRenderer$AS_LIST;
+	public fun renderSuperTypes (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeRenderer$WITH_OUT_APPROXIMATION : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypeRenderer$WITH_OUT_APPROXIMATION;
+	public fun renderSuperType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer$EMPTY_PARENS : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer$EMPTY_PARENS;
+	public fun renderSuperTypeArguments (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer$NO_ARGS : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesCallArgumentsRenderer$NO_ARGS;
+	public fun renderSuperTypeArguments (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaDeclarationRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$ALL : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$ALL;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function3;)Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$NONE : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$NONE;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$NO_ANY_FOR_INTERFACES : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$NO_ANY_FOR_INTERFACES;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$NO_DEFAULT_TYPES : org/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/superTypes/KaSuperTypesFilter$NO_DEFAULT_TYPES;
+	public fun filter (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer$Builder {
+	public field annotationsRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;
+	public field capturedTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer;
+	public field classIdRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer;
+	public field contextReceiversRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;
+	public field definitelyNotNullTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDefinitelyNotNullTypeRenderer;
+	public field dynamicTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDynamicTypeRenderer;
+	public field errorTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer;
+	public field expandedTypeRenderingMode Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaExpandedTypeRenderingMode;
+	public field flexibleTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer;
+	public field functionalTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer;
+	public field intersectionTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaIntersectionTypeRenderer;
+	public field keywordsRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public field typeApproximator Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator;
+	public field typeNameRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer;
+	public field typeParameterTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeParameterTypeRenderer;
+	public field typeProjectionRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer;
+	public field unresolvedClassErrorTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer;
+	public field usualClassTypeRenderer Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUsualClassTypeRenderer;
+	public fun <init> ()V
+	public final fun build ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;
+	public final fun getAnnotationsRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;
+	public final fun getCapturedTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer;
+	public final fun getClassIdRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer;
+	public final fun getContextReceiversRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;
+	public final fun getDefinitelyNotNullTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDefinitelyNotNullTypeRenderer;
+	public final fun getDynamicTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDynamicTypeRenderer;
+	public final fun getErrorTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer;
+	public final fun getExpandedTypeRenderingMode ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaExpandedTypeRenderingMode;
+	public final fun getFlexibleTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer;
+	public final fun getFunctionalTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer;
+	public final fun getIntersectionTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaIntersectionTypeRenderer;
+	public final fun getKeywordsRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;
+	public final fun getTypeApproximator ()Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator;
+	public final fun getTypeNameRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer;
+	public final fun getTypeParameterTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeParameterTypeRenderer;
+	public final fun getTypeProjectionRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer;
+	public final fun getUnresolvedClassErrorTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer;
+	public final fun getUsualClassTypeRenderer ()Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUsualClassTypeRenderer;
+	public final fun setAnnotationsRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/annotations/KaAnnotationRenderer;)V
+	public final fun setCapturedTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer;)V
+	public final fun setClassIdRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer;)V
+	public final fun setContextReceiversRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/contextReceivers/KaContextReceiversRenderer;)V
+	public final fun setDefinitelyNotNullTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDefinitelyNotNullTypeRenderer;)V
+	public final fun setDynamicTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDynamicTypeRenderer;)V
+	public final fun setErrorTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer;)V
+	public final fun setExpandedTypeRenderingMode (Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaExpandedTypeRenderingMode;)V
+	public final fun setFlexibleTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer;)V
+	public final fun setFunctionalTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer;)V
+	public final fun setIntersectionTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaIntersectionTypeRenderer;)V
+	public final fun setKeywordsRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/base/KaKeywordsRenderer;)V
+	public final fun setTypeApproximator (Lorg/jetbrains/kotlin/analysis/api/renderer/declarations/KaRendererTypeApproximator;)V
+	public final fun setTypeNameRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer;)V
+	public final fun setTypeParameterTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeParameterTypeRenderer;)V
+	public final fun setTypeProjectionRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer;)V
+	public final fun setUnresolvedClassErrorTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer;)V
+	public final fun setUsualClassTypeRenderer (Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUsualClassTypeRenderer;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer$Companion {
+	public final fun invoke (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer$AS_CAPTURED_TYPE_WITH_PROJECTION : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer$AS_CAPTURED_TYPE_WITH_PROJECTION;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaCapturedType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer$AS_PROJECTION : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaCapturedTypeRenderer$AS_PROJECTION;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaCapturedType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer$WITH_QUALIFIED_NAMES : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer$WITH_QUALIFIED_NAMES;
+	public fun renderClassTypeQualifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Ljava/util/List;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer$WITH_SHORT_NAMES : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer$WITH_SHORT_NAMES;
+	public fun renderClassTypeQualifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Ljava/util/List;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer$WITH_SHORT_NAMES_WITH_NESTED_CLASSIFIERS : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaClassTypeQualifierRenderer$WITH_SHORT_NAMES_WITH_NESTED_CLASSIFIERS;
+	public fun renderClassTypeQualifier (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Ljava/util/List;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDefinitelyNotNullTypeRenderer$AS_TYPE_INTERSECTION : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDefinitelyNotNullTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDefinitelyNotNullTypeRenderer$AS_TYPE_INTERSECTION;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaDefinitelyNotNullType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDynamicTypeRenderer$AS_DYNAMIC_WORD : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDynamicTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaDynamicTypeRenderer$AS_DYNAMIC_WORD;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaDynamicType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer$AS_CODE_IF_POSSIBLE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer$AS_CODE_IF_POSSIBLE;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaErrorType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer$AS_ERROR_WORD : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer$AS_ERROR_WORD;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaErrorType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer$WITH_ERROR_MESSAGE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaErrorTypeRenderer$WITH_ERROR_MESSAGE;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaErrorType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer$AS_RANGE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer$AS_RANGE;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaFlexibleType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer$AS_SHORT : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFlexibleTypeRenderer$AS_SHORT;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaFlexibleType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer$AS_CLASS_TYPE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer$AS_CLASS_TYPE;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaFunctionType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer$AS_CLASS_TYPE_FOR_REFLECTION_TYPES : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer$AS_CLASS_TYPE_FOR_REFLECTION_TYPES;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaFunctionType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer$AS_FUNCTIONAL_TYPE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaFunctionalTypeRenderer$AS_FUNCTIONAL_TYPE;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaFunctionType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaIntersectionTypeRenderer$AS_INTERSECTION : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaIntersectionTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaIntersectionTypeRenderer$AS_INTERSECTION;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaIntersectionType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer$QUOTED : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer$QUOTED;
+	public fun renderName (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/name/Name;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer$UNQUOTED : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeNameRenderer$UNQUOTED;
+	public fun renderName (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/name/Name;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeParameterTypeRenderer$AS_SOURCE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeParameterTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeParameterTypeRenderer$AS_SOURCE;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaTypeParameterType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer$WITHOUT_VARIANCE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer$WITHOUT_VARIANCE;
+	public fun renderTypeProjection (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaTypeProjection;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer$WITH_VARIANCE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaTypeProjectionRenderer$WITH_VARIANCE;
+	public fun renderTypeProjection (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaTypeProjection;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer$AS_ERROR_WORD : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer$AS_ERROR_WORD;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaClassErrorType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer$UNRESOLVED_QUALIFIER : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer$UNRESOLVED_QUALIFIER;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaClassErrorType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer$WITH_ERROR_MESSAGE : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUnresolvedClassErrorTypeRenderer$WITH_ERROR_MESSAGE;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaClassErrorType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUsualClassTypeRenderer$AS_CLASS_TYPE_WITH_TYPE_ARGUMENTS : org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUsualClassTypeRenderer {
+	public static final field INSTANCE Lorg/jetbrains/kotlin/analysis/api/renderer/types/renderers/KaUsualClassTypeRenderer$AS_CLASS_TYPE_WITH_TYPE_ARGUMENTS;
+	public fun renderType (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/analysis/api/types/KaUsualClassType;Lorg/jetbrains/kotlin/analysis/api/renderer/types/KaTypeRenderer;Lorg/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter;)V
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaAnnotationCall : org/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaApplicableCallCandidateInfo : org/jetbrains/kotlin/analysis/api/resolution/KaCallCandidateInfo {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCall : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCallCandidateInfo : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getCandidate ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaCall;
+	public abstract fun isInBestCandidates ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCallInfo : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolution/KaCallInfoKt {
+	public static final fun getCalls (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Ljava/util/List;
+	public static final fun singleConstructorCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final fun singleFunctionCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final fun singleVariableAccessCall (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaVariableAccessCall;
+	public static final fun successfulConstructorCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final fun successfulFunctionCallOrNull (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall;
+	public static final fun successfulVariableAccessCall (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallInfo;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaVariableAccessCall;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolution/KaCallKt {
+	public static final fun getSymbol (Lorg/jetbrains/kotlin/analysis/api/resolution/KaCallableMemberCall;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCallableMemberCall : org/jetbrains/kotlin/analysis/api/resolution/KaCall {
+	public abstract fun getPartiallyAppliedSymbol ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;
+	public abstract fun getTypeArgumentsMapping ()Ljava/util/Map;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCompoundAccessCall {
+	public fun getCompoundAccess ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundOperation;
+	public abstract fun getCompoundOperation ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundOperation;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCompoundArrayAccessCall : org/jetbrains/kotlin/analysis/api/resolution/KaCall, org/jetbrains/kotlin/analysis/api/resolution/KaCompoundAccessCall {
+	public abstract fun getGetPartiallyAppliedSymbol ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;
+	public abstract fun getIndexArguments ()Ljava/util/List;
+	public abstract fun getSetPartiallyAppliedSymbol ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind : java/lang/Enum {
+	public static final field DIV_ASSIGN Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind;
+	public static final field MINUS_ASSIGN Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind;
+	public static final field PLUS_ASSIGN Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind;
+	public static final field REM_ASSIGN Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind;
+	public static final field TIMES_ASSIGN Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundAssignOperation$Kind;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCompoundOperation : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getOperationPartiallyAppliedSymbol ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Kind : java/lang/Enum {
+	public static final field DEC Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Kind;
+	public static final field INC Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Kind;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Kind;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Kind;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Precedence : java/lang/Enum {
+	public static final field POSTFIX Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Precedence;
+	public static final field PREFIX Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Precedence;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Precedence;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/resolution/KaCompoundUnaryOperation$Precedence;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaCompoundVariableAccessCall : org/jetbrains/kotlin/analysis/api/resolution/KaCall, org/jetbrains/kotlin/analysis/api/resolution/KaCompoundAccessCall {
+	public fun getPartiallyAppliedSymbol ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;
+	public abstract fun getVariablePartiallyAppliedSymbol ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaDelegatedConstructorCall : org/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall {
+	public abstract fun getKind ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaDelegatedConstructorCall$Kind;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolution/KaDelegatedConstructorCall$Kind : java/lang/Enum {
+	public static final field SUPER_CALL Lorg/jetbrains/kotlin/analysis/api/resolution/KaDelegatedConstructorCall$Kind;
+	public static final field THIS_CALL Lorg/jetbrains/kotlin/analysis/api/resolution/KaDelegatedConstructorCall$Kind;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/resolution/KaDelegatedConstructorCall$Kind;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/resolution/KaDelegatedConstructorCall$Kind;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaErrorCallInfo : org/jetbrains/kotlin/analysis/api/resolution/KaCallInfo {
+	public abstract fun getCandidateCalls ()Ljava/util/List;
+	public abstract fun getDiagnostic ()Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaDiagnostic;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaExplicitReceiverValue : org/jetbrains/kotlin/analysis/api/resolution/KaReceiverValue {
+	public abstract fun getExpression ()Lorg/jetbrains/kotlin/psi/KtExpression;
+	public abstract fun isSafeNavigation ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall : org/jetbrains/kotlin/analysis/api/resolution/KaCallableMemberCall {
+	public abstract fun getArgumentMapping ()Ljava/util/Map;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaImplicitReceiverValue : org/jetbrains/kotlin/analysis/api/resolution/KaReceiverValue {
+	public abstract fun getSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaInapplicableCallCandidateInfo : org/jetbrains/kotlin/analysis/api/resolution/KaCallCandidateInfo {
+	public abstract fun getDiagnostic ()Lorg/jetbrains/kotlin/analysis/api/diagnostics/KaDiagnostic;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getDispatchReceiver ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaReceiverValue;
+	public abstract fun getExtensionReceiver ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaReceiverValue;
+	public abstract fun getSignature ()Lorg/jetbrains/kotlin/analysis/api/signatures/KaCallableSignature;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbolKt {
+	public static final fun getSymbol (Lorg/jetbrains/kotlin/analysis/api/resolution/KaPartiallyAppliedSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaReceiverValue : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaSimpleFunctionCall : org/jetbrains/kotlin/analysis/api/resolution/KaFunctionCall {
+	public abstract fun isImplicitInvoke ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaSimpleVariableAccess {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaSimpleVariableAccess$Read : org/jetbrains/kotlin/analysis/api/resolution/KaSimpleVariableAccess {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaSimpleVariableAccess$Write : org/jetbrains/kotlin/analysis/api/resolution/KaSimpleVariableAccess {
+	public abstract fun getValue ()Lorg/jetbrains/kotlin/psi/KtExpression;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaSimpleVariableAccessCall : org/jetbrains/kotlin/analysis/api/resolution/KaVariableAccessCall {
+	public abstract fun getSimpleAccess ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaSimpleVariableAccess;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaSmartCastedReceiverValue : org/jetbrains/kotlin/analysis/api/resolution/KaReceiverValue {
+	public abstract fun getOriginal ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaReceiverValue;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaSuccessCallInfo : org/jetbrains/kotlin/analysis/api/resolution/KaCallInfo {
+	public abstract fun getCall ()Lorg/jetbrains/kotlin/analysis/api/resolution/KaCall;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/resolution/KaVariableAccessCall : org/jetbrains/kotlin/analysis/api/resolution/KaCallableMemberCall {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/resolve/extensions/KaResolveExtensionProvider$Companion {
+	public final fun getEP_NAME ()Lcom/intellij/openapi/extensions/ExtensionPointName;
+	public final fun provideExtensionsFor (Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/scopes/KaScope : org/jetbrains/kotlin/analysis/api/scopes/KaScopeLike {
+	public abstract fun callables (Ljava/util/Collection;)Lkotlin/sequences/Sequence;
+	public abstract fun callables (Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;
+	public fun callables ([Lorg/jetbrains/kotlin/name/Name;)Lkotlin/sequences/Sequence;
+	public abstract fun classifiers (Ljava/util/Collection;)Lkotlin/sequences/Sequence;
+	public abstract fun classifiers (Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;
+	public fun classifiers ([Lorg/jetbrains/kotlin/name/Name;)Lkotlin/sequences/Sequence;
+	public fun getAllSymbols ()Lkotlin/sequences/Sequence;
+	public fun getCallableSymbols (Ljava/util/Collection;)Lkotlin/sequences/Sequence;
+	public fun getCallableSymbols (Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;
+	public fun getCallableSymbols ([Lorg/jetbrains/kotlin/name/Name;)Lkotlin/sequences/Sequence;
+	public static synthetic fun getCallableSymbols$default (Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlin/sequences/Sequence;
+	public fun getCallables ()Lkotlin/sequences/Sequence;
+	public fun getClassifierSymbols (Ljava/util/Collection;)Lkotlin/sequences/Sequence;
+	public fun getClassifierSymbols (Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;
+	public fun getClassifierSymbols ([Lorg/jetbrains/kotlin/name/Name;)Lkotlin/sequences/Sequence;
+	public static synthetic fun getClassifierSymbols$default (Lorg/jetbrains/kotlin/analysis/api/scopes/KaScope;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlin/sequences/Sequence;
+	public fun getClassifiers ()Lkotlin/sequences/Sequence;
+	public abstract fun getConstructors ()Lkotlin/sequences/Sequence;
+	public fun getDeclarations ()Lkotlin/sequences/Sequence;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/session/KaSessionProvider : com/intellij/openapi/Disposable {
+	public static final field Companion Lorg/jetbrains/kotlin/analysis/api/session/KaSessionProvider$Companion;
+	public fun <init> (Lcom/intellij/openapi/project/Project;)V
+	public final fun analyze (Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
+	public final fun analyze (Lorg/jetbrains/kotlin/psi/KtElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
+	public abstract fun clearCaches ()V
+	public fun dispose ()V
+	public abstract fun getAnalysisSession (Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Lorg/jetbrains/kotlin/analysis/api/KaSession;
+	public abstract fun getAnalysisSession (Lorg/jetbrains/kotlin/psi/KtElement;)Lorg/jetbrains/kotlin/analysis/api/KaSession;
+	public final fun getProject ()Lcom/intellij/openapi/project/Project;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/session/KaSessionProvider$Companion {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/signatures/KaCallableSignature : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun equals (Ljava/lang/Object;)Z
+	public fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+	public fun getCallableIdIfNonLocal ()Lorg/jetbrains/kotlin/name/CallableId;
+	public abstract fun getReceiverType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getReturnType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+	public abstract fun hashCode ()I
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/signatures/KaFunctionSignature : org/jetbrains/kotlin/analysis/api/signatures/KaCallableSignature {
+	public abstract fun getValueParameters ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/signatures/KaVariableSignature : org/jetbrains/kotlin/analysis/api/signatures/KaCallableSignature {
+	public fun getName ()Lorg/jetbrains/kotlin/name/Name;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/AdditionalKDocResolutionProvider {
+	public static final field Companion Lorg/jetbrains/kotlin/analysis/api/symbols/AdditionalKDocResolutionProvider$Companion;
+	public abstract fun resolveKdocFqName (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/name/FqName;Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/Collection;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/AdditionalKDocResolutionProvider$Companion {
+	public final fun getEP_NAME ()Lcom/intellij/openapi/extensions/ExtensionPointName;
+	public final fun resolveKdocFqName (Lorg/jetbrains/kotlin/analysis/api/KaSession;Lorg/jetbrains/kotlin/name/FqName;Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/Collection;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer$Companion {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaAnonymousFunctionSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaAnonymousObjectSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getClassId ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getClassKind ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getName ()Lorg/jetbrains/kotlin/name/Name;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaBackingFieldSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol {
+	public static final field Companion Lorg/jetbrains/kotlin/analysis/api/symbols/KaBackingFieldSymbol$Companion;
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getName ()Lorg/jetbrains/kotlin/name/Name;
+	public fun getOrigin ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public abstract fun getOwningProperty ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaKotlinPropertySymbol;
+	public final fun getPsi ()Lcom/intellij/psi/PsiElement;
+	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
+	public final fun isExtension ()Z
+	public final fun isVal ()Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaBackingFieldSymbol$Companion {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol : org/jetbrains/kotlin/analysis/api/base/KaContextReceiversOwner, org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+	public final fun getCallableIdIfNonLocal ()Lorg/jetbrains/kotlin/name/CallableId;
+	public abstract fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
+	public abstract fun getReturnType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun isExtension ()Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbolKt {
+	public static final fun getReceiverType (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaClassInitializerSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public fun <init> ()V
+	public final fun getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public final fun isActual ()Z
+	public final fun isExpect ()Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaClassKind : java/lang/Enum {
+	public static final field ANNOTATION_CLASS Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static final field ANONYMOUS_OBJECT Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static final field CLASS Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static final field COMPANION_OBJECT Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static final field ENUM_CLASS Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static final field INTERFACE Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static final field OBJECT Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public final fun isClass ()Z
+	public final fun isObject ()Z
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaClassifierSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getClassId ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getClassIdIfNonLocal ()Lorg/jetbrains/kotlin/name/ClassId;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbolKt {
+	public static final fun getNameOrAnonymous (Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassifierSymbol;)Lorg/jetbrains/kotlin/name/Name;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getClassKind ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassKind;
+	public abstract fun getSuperTypes ()Ljava/util/List;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaClassifierSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol, org/jetbrains/kotlin/analysis/api/symbols/KaSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaPossiblyNamedSymbol {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaConstructorSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaTypeParameterOwnerSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+	public abstract fun getContainingClassId ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getContainingClassIdIfNonLocal ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
+	public final fun isExtension ()Z
+	public abstract fun isPrimary ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaAnnotatedSymbol {
+	public abstract fun getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public fun getVisibility ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public abstract fun isActual ()Z
+	public abstract fun isExpect ()Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbolKt {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaDestructuringDeclarationSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getEntries ()Ljava/util/List;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public final fun isActual ()Z
+	public final fun isExpect ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/KaEnumEntryInitializerSymbol : org/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaEnumEntrySymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getEnumEntryInitializer ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaEnumEntryInitializerSymbol;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
+	public final fun isExtension ()Z
+	public final fun isVal ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaFileSymbol : org/jetbrains/kotlin/analysis/api/symbols/markers/KaAnnotatedSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getHasStableParameterNames ()Z
+	public abstract fun getValueParameters ()Ljava/util/List;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaJavaFieldSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
+	public final fun isExtension ()Z
+	public abstract fun isStatic ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaKotlinPropertySymbol : org/jetbrains/kotlin/analysis/api/symbols/KaPropertySymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun isConst ()Z
+	public abstract fun isLateInit ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaLocalVariableSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
+	public final fun isExtension ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol, org/jetbrains/kotlin/analysis/api/base/KaContextReceiversOwner, org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaTypeParameterOwnerSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getCompanionObject ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;
+	public abstract fun isData ()Z
+	public abstract fun isExternal ()Z
+	public abstract fun isFun ()Z
+	public abstract fun isInline ()Z
+	public abstract fun isInner ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaNamedFunctionSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaTypeParameterOwnerSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun isBuiltinFunctionInvoke ()Z
+	public abstract fun isExternal ()Z
+	public abstract fun isInfix ()Z
+	public abstract fun isInline ()Z
+	public abstract fun isOperator ()Z
+	public abstract fun isOverride ()Z
+	public abstract fun isStatic ()Z
+	public abstract fun isSuspend ()Z
+	public abstract fun isTailRec ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaPackageSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getFqName ()Lorg/jetbrains/kotlin/name/FqName;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/KaParameterSymbol : org/jetbrains/kotlin/analysis/api/symbols/markers/KaAnnotatedSymbol {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaPropertyAccessorSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getHasBody ()Z
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public abstract fun isDefault ()Z
+	public final fun isExtension ()Z
+	public abstract fun isInline ()Z
+	public abstract fun isOverride ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaPropertyGetterSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaPropertyAccessorSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaPropertySetterSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaPropertyAccessorSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaValueParameterSymbol;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaPropertySymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind, org/jetbrains/kotlin/analysis/api/symbols/markers/KaTypeParameterOwnerSymbol {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getBackingFieldSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaBackingFieldSymbol;
+	public abstract fun getGetter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertyGetterSymbol;
+	public abstract fun getHasBackingField ()Z
+	public abstract fun getHasGetter ()Z
+	public abstract fun getHasSetter ()Z
+	public abstract fun getSetter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertySetterSymbol;
+	public abstract fun isDelegatedProperty ()Z
+	public abstract fun isFromPrimaryConstructor ()Z
+	public abstract fun isOverride ()Z
+	public abstract fun isStatic ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaParameterSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaAnnotatedSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public abstract fun getOwningCallableSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
+	public abstract fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaSamConstructorSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaTypeParameterOwnerSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaScriptSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaAnnotatedSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public final fun isActual ()Z
+	public final fun isExpect ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/KaSymbol : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public abstract fun getOrigin ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public abstract fun getPsi ()Lcom/intellij/psi/PsiElement;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolKt {
+	public static final fun getName (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;)Lorg/jetbrains/kotlin/name/Name;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation : java/lang/Enum {
+	public static final field CLASS Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public static final field LOCAL Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public static final field PROPERTY Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public static final field TOP_LEVEL Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocationKt {
+	public static final fun isLocal (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;)Z
+	public static final fun isTopLevel (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality : java/lang/Enum {
+	public static final field ABSTRACT Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public static final field FINAL Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public static final field OPEN Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public static final field SEALED Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin : java/lang/Enum {
+	public static final field DELEGATED Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field INTERSECTION_OVERRIDE Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field JAVA_LIBRARY Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field JAVA_SOURCE Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field JAVA_SYNTHETIC_PROPERTY Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field JS_DYNAMIC Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field LIBRARY Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field NATIVE_FORWARD_DECLARATION Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field PLUGIN Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field PROPERTY_BACKING_FIELD Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field SAM_CONSTRUCTOR Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field SOURCE Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field SOURCE_MEMBER_GENERATED Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static final field SUBSTITUTION_OVERRIDE Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolProvider {
+	public abstract fun findClass (Lorg/jetbrains/kotlin/name/ClassId;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public abstract fun findPackage (Lorg/jetbrains/kotlin/name/FqName;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaPackageSymbol;
+	public abstract fun findTopLevelCallables (Lorg/jetbrains/kotlin/name/FqName;Lorg/jetbrains/kotlin/name/Name;)Lkotlin/sequences/Sequence;
+	public abstract fun findTypeAlias (Lorg/jetbrains/kotlin/name/ClassId;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeAliasSymbol;
+	public fun getAnonymousFunctionSymbol (Lorg/jetbrains/kotlin/psi/KtFunctionLiteral;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousFunctionSymbol;
+	public fun getAnonymousFunctionSymbol (Lorg/jetbrains/kotlin/psi/KtNamedFunction;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousFunctionSymbol;
+	public fun getAnonymousObjectSymbol (Lorg/jetbrains/kotlin/psi/KtObjectLiteralExpression;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousObjectSymbol;
+	public abstract fun getAnonymousSymbol (Lorg/jetbrains/kotlin/psi/KtNamedFunction;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousFunctionSymbol;
+	public fun getClassOrObjectSymbol (Lorg/jetbrains/kotlin/psi/KtClassOrObject;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public fun getClassOrObjectSymbolByClassId (Lorg/jetbrains/kotlin/name/ClassId;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public abstract fun getClassSymbol (Lorg/jetbrains/kotlin/psi/KtClassOrObject;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public fun getConstructorSymbol (Lorg/jetbrains/kotlin/psi/KtConstructor;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaConstructorSymbol;
+	public fun getDestructuringDeclarationEntrySymbol (Lorg/jetbrains/kotlin/psi/KtDestructuringDeclarationEntry;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;
+	public fun getEnumEntrySymbol (Lorg/jetbrains/kotlin/psi/KtEnumEntry;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaEnumEntrySymbol;
+	public fun getFileSymbol (Lorg/jetbrains/kotlin/psi/KtFile;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaFileSymbol;
+	public fun getFunctionLikeSymbol (Lorg/jetbrains/kotlin/psi/KtNamedFunction;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol;
+	public fun getNamedClassOrObjectSymbol (Lorg/jetbrains/kotlin/psi/KtClassOrObject;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;
+	public abstract fun getNamedClassSymbol (Lorg/jetbrains/kotlin/psi/KtClassOrObject;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;
+	public fun getPackageSymbolIfPackageExists (Lorg/jetbrains/kotlin/name/FqName;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaPackageSymbol;
+	public fun getParameterSymbol (Lorg/jetbrains/kotlin/psi/KtParameter;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;
+	public fun getPropertyAccessorSymbol (Lorg/jetbrains/kotlin/psi/KtPropertyAccessor;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertyAccessorSymbol;
+	public fun getROOT_PACKAGE_SYMBOL ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaPackageSymbol;
+	public abstract fun getRootPackageSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaPackageSymbol;
+	public fun getScriptSymbol (Lorg/jetbrains/kotlin/psi/KtScript;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaScriptSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtClassInitializer;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassInitializerSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtConstructor;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaConstructorSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtDeclaration;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtDestructuringDeclaration;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaDestructuringDeclarationSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtDestructuringDeclarationEntry;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtEnumEntry;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaEnumEntrySymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtFile;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaFileSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtFunctionLiteral;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousFunctionSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtNamedFunction;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtObjectDeclaration;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtObjectLiteralExpression;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaAnonymousObjectSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtParameter;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtProperty;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtPropertyAccessor;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertyAccessorSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtScript;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaScriptSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtTypeAlias;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeAliasSymbol;
+	public abstract fun getSymbol (Lorg/jetbrains/kotlin/psi/KtTypeParameter;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;
+	public fun getTopLevelCallableSymbols (Lorg/jetbrains/kotlin/name/FqName;Lorg/jetbrains/kotlin/name/Name;)Lkotlin/sequences/Sequence;
+	public fun getTypeAliasByClassId (Lorg/jetbrains/kotlin/name/ClassId;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeAliasSymbol;
+	public fun getTypeAliasSymbol (Lorg/jetbrains/kotlin/psi/KtTypeAlias;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeAliasSymbol;
+	public fun getTypeParameterSymbol (Lorg/jetbrains/kotlin/psi/KtTypeParameter;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;
+	public fun getVariableSymbol (Lorg/jetbrains/kotlin/psi/KtProperty;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility : java/lang/Enum {
+	public static final field INTERNAL Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static final field LOCAL Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static final field PACKAGE_PRIVATE Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static final field PACKAGE_PROTECTED Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static final field PRIVATE Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static final field PROTECTED Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static final field PUBLIC Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static final field UNKNOWN Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibilityKt {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaSyntheticJavaPropertySymbol : org/jetbrains/kotlin/analysis/api/symbols/KaPropertySymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getGetter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaPropertyGetterSymbol;
+	public final fun getHasBackingField ()Z
+	public final fun getHasGetter ()Z
+	public abstract fun getJavaGetterSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedFunctionSymbol;
+	public abstract fun getJavaSetterSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedFunctionSymbol;
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public final fun isDelegatedProperty ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaTypeAliasSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaTypeParameterOwnerSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun getExpandedType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaClassifierSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
+	public abstract fun getUpperBounds ()Ljava/util/List;
+	public abstract fun getVariance ()Lorg/jetbrains/kotlin/types/Variance;
+	public final fun isActual ()Z
+	public final fun isExpect ()Z
+	public abstract fun isReified ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaValueParameterSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol, org/jetbrains/kotlin/analysis/api/symbols/KaParameterSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaAnnotatedSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public fun <init> ()V
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public final fun getCallableId ()Lorg/jetbrains/kotlin/name/CallableId;
+	public fun getGeneratedPrimaryConstructorProperty ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaKotlinPropertySymbol;
+	public abstract fun getHasDefaultValue ()Z
+	public final fun getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
+	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
+	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
+	public abstract fun isCrossinline ()Z
+	public final fun isExtension ()Z
+	public abstract fun isImplicitLambdaParameter ()Z
+	public abstract fun isNoinline ()Z
+	public final fun isVal ()Z
+	public abstract fun isVararg ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind {
+	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public abstract fun isVal ()Z
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/markers/KaAnnotatedSymbol : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotated, org/jetbrains/kotlin/analysis/api/symbols/KaSymbol {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaSymbol {
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol : org/jetbrains/kotlin/analysis/api/symbols/markers/KaPossiblyNamedSymbol {
+	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/markers/KaPossiblyNamedSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaSymbol {
+	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind : java/lang/Enum {
+	public static final field ACCESSOR Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+	public static final field CLASS_MEMBER Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+	public static final field LOCAL Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+	public static final field SAM_CONSTRUCTOR Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+	public static final field TOP_LEVEL Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithKind : org/jetbrains/kotlin/analysis/api/symbols/KaSymbol {
+	public fun getSymbolKind ()Lorg/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolKind;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/markers/KaSymbolWithVisibilityKt {
+	public static final fun isPrivateOrPrivateToThis (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolVisibility;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/pointers/KaPsiBasedSymbolPointer$Companion {
+	public final fun createForSymbolFromPsi (Lorg/jetbrains/kotlin/psi/KtElement;Lkotlin/reflect/KClass;)Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaPsiBasedSymbolPointer;
+	public final fun createForSymbolFromSource (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbol;Lkotlin/reflect/KClass;)Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaPsiBasedSymbolPointer;
+	public final fun withDisabledPsiBasedPointers (ZLkotlin/jvm/functions/Function0;)Ljava/lang/Object;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/pointers/KaPsiBasedSymbolPointerKt {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer {
+	public fun <init> ()V
+	public fun pointsToTheSameSymbolAs (Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;)Z
+	public fun toString ()Ljava/lang/String;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointerKt {
+	public static final fun symbolPointer (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+	public static final fun symbolPointerDelegator (Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaCapturedType : org/jetbrains/kotlin/analysis/api/types/KaType {
+	public fun <init> ()V
+	public abstract fun getProjection ()Lorg/jetbrains/kotlin/analysis/api/types/KaTypeProjection;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaClassErrorType : org/jetbrains/kotlin/analysis/api/types/KaErrorType {
+	public fun <init> ()V
+	public final fun getCandidateClassSymbols ()Ljava/util/Collection;
+	public abstract fun getCandidateSymbols ()Ljava/util/Collection;
+	public abstract fun getQualifiers ()Ljava/util/List;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaClassType : org/jetbrains/kotlin/analysis/api/types/KaType {
+	public abstract fun getClassId ()Lorg/jetbrains/kotlin/name/ClassId;
+	public final fun getClassSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;
+	public final fun getOwnTypeArguments ()Ljava/util/List;
+	public abstract fun getQualifiers ()Ljava/util/List;
+	public abstract fun getSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;
+	public abstract fun getTypeArguments ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaClassTypeQualifier : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
+	public abstract fun getTypeArguments ()Ljava/util/List;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaDefinitelyNotNullType : org/jetbrains/kotlin/analysis/api/types/KaType {
+	public fun <init> ()V
+	public final fun getNullability ()Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+	public abstract fun getOriginal ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaDynamicType : org/jetbrains/kotlin/analysis/api/types/KaType {
+	public fun <init> ()V
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaErrorType : org/jetbrains/kotlin/analysis/api/types/KaType {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaFlexibleType : org/jetbrains/kotlin/analysis/api/types/KaType {
+	public fun <init> ()V
+	public abstract fun getLowerBound ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getUpperBound ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaFunctionType : org/jetbrains/kotlin/analysis/api/types/KaClassType, org/jetbrains/kotlin/analysis/api/base/KaContextReceiversOwner {
+	public fun <init> ()V
+	public abstract fun getArity ()I
+	public abstract fun getHasReceiver ()Z
+	public abstract fun getParameterTypes ()Ljava/util/List;
+	public abstract fun getReceiverType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getReturnType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun isReflectType ()Z
+	public abstract fun isSuspend ()Z
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaIntersectionType : org/jetbrains/kotlin/analysis/api/types/KaType {
+	public fun <init> ()V
+	public abstract fun getConjuncts ()Ljava/util/List;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaResolvedClassTypeQualifier : org/jetbrains/kotlin/analysis/api/types/KaClassTypeQualifier {
+	public abstract fun getSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassifierSymbol;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaStarTypeProjection : org/jetbrains/kotlin/analysis/api/types/KaTypeProjection {
+	public fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaType : org/jetbrains/kotlin/analysis/api/annotations/KaAnnotated, org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public fun asStringForDebugging ()Ljava/lang/String;
+	public fun getAbbreviatedType ()Lorg/jetbrains/kotlin/analysis/api/types/KaUsualClassType;
+	public abstract fun getAbbreviation ()Lorg/jetbrains/kotlin/analysis/api/types/KaUsualClassType;
+	public abstract fun getNullability ()Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaTypeArgumentWithVariance : org/jetbrains/kotlin/analysis/api/types/KaTypeProjection {
+	public abstract fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public abstract fun getVariance ()Lorg/jetbrains/kotlin/types/Variance;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode : java/lang/Enum {
+	public static final field DEFAULT Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static final field DEFAULT_UAST Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static final field GENERIC_ARGUMENT Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static final field RETURN_TYPE Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static final field RETURN_TYPE_BOXED Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static final field SUPER_TYPE Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static final field SUPER_TYPE_KOTLIN_COLLECTIONS_AS_IS Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static final field VALUE_PARAMETER Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/types/KaTypeMappingMode;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/types/KaTypeNullability : java/lang/Enum {
+	public static final field Companion Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability$Companion;
+	public static final field NON_NULLABLE Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+	public static final field NULLABLE Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+	public static final field UNKNOWN Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public final fun isNullable ()Z
+	public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+	public static fun values ()[Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/types/KaTypeNullability$Companion {
+	public final fun create (Z)Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaTypeParameterType : org/jetbrains/kotlin/analysis/api/types/KaType {
+	public fun <init> ()V
+	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
+	public abstract fun getSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaTypeParameterSymbol;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaTypeProjection : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
+	public abstract fun getType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+}
+
+public abstract interface class org/jetbrains/kotlin/analysis/api/types/KaUnresolvedClassTypeQualifier : org/jetbrains/kotlin/analysis/api/types/KaClassTypeQualifier {
+}
+
+public abstract class org/jetbrains/kotlin/analysis/api/types/KaUsualClassType : org/jetbrains/kotlin/analysis/api/types/KaClassType {
+	public fun <init> ()V
+}
+
+public final class org/jetbrains/kotlin/analysis/api/types/TypeUtilsKt {
+	public static final fun getAbbreviatedTypeOrSelf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public static final fun getAbbreviationOrSelf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
+	public static final fun getClassSymbol (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;
+	public static final fun getSymbol (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;
+}
+
+public final class org/jetbrains/kotlin/analysis/api/utils/ApiUtilsKt {
+}
+
+public final class org/jetbrains/kotlin/analysis/api/utils/errors/ExceptionAttachmentBuilderHelpersKt {
+}
+
+public final class org/jetbrains/kotlin/analysis/project/structure/DanglingFilesKt {
+	public static final fun getDanglingFileResolutionMode (Lorg/jetbrains/kotlin/psi/KtFile;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaDanglingFileResolutionMode;
+	public static final fun isDangling (Lorg/jetbrains/kotlin/psi/KtFile;)Z
+}
+
+public final class org/jetbrains/kotlin/analysis/project/structure/DependenciesKt {
+	public static final fun allDirectDependencies (Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Lkotlin/sequences/Sequence;
+}
+
+public abstract class org/jetbrains/kotlin/analysis/project/structure/ProjectStructureProvider {
+	public static final field Companion Lorg/jetbrains/kotlin/analysis/project/structure/ProjectStructureProvider$Companion;
+	public fun <init> ()V
+	public abstract fun getModule (Lcom/intellij/psi/PsiElement;Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;
+}
+
+public final class org/jetbrains/kotlin/analysis/project/structure/ProjectStructureProvider$Companion {
+	public final fun getInstance (Lcom/intellij/openapi/project/Project;)Lorg/jetbrains/kotlin/analysis/project/structure/ProjectStructureProvider;
+	public final fun getModule (Lcom/intellij/openapi/project/Project;Lcom/intellij/psi/PsiElement;Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;)Lorg/jetbrains/kotlin/analysis/api/projectStructure/KaModule;
+}
+
diff --git a/analysis/analysis-api/build.gradle.kts b/analysis/analysis-api/build.gradle.kts
index b936e32..1f944b6 100644
--- a/analysis/analysis-api/build.gradle.kts
+++ b/analysis/analysis-api/build.gradle.kts
@@ -3,6 +3,7 @@
 plugins {
     kotlin("jvm")
     id("jps-compatible")
+    id("org.jetbrains.kotlinx.binary-compatibility-validator")
 }
 
 kotlin {
@@ -34,6 +35,16 @@
     "test" { projectDefault() }
 }
 
+apiValidation {
+    nonPublicMarkers += listOf(
+        "org.jetbrains.kotlin.analysis.api.KaImplementationDetail",
+        "org.jetbrains.kotlin.analysis.api.KaNonPublicApi",
+        "org.jetbrains.kotlin.analysis.api.KaIdeApi",
+        "org.jetbrains.kotlin.analysis.api.KaExperimentalApi",
+        "org.jetbrains.kotlin.analysis.api.KaPlatformInterface" // Platform interface is not stable yet
+    )
+}
+
 tasks.withType<KotlinJvmCompile>().configureEach {
     compilerOptions.freeCompilerArgs.add("-Xcontext-receivers")
 }
