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;
}

