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/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/KaCompilerPluginGeneratedDeclarationsProvider, 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/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 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 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 abstract fun getPsi ()Lorg/jetbrains/kotlin/psi/KtCallElement;
	public abstract fun getUseSiteTarget ()Lorg/jetbrains/kotlin/descriptors/annotations/AnnotationUseSiteTarget;
}

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 abstract fun contains (Lorg/jetbrains/kotlin/name/ClassId;)Z
	public abstract fun get (Lorg/jetbrains/kotlin/name/ClassId;)Ljava/util/List;
	public abstract fun getClassIds ()Ljava/util/Collection;
}

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 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 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 getSourcePsi ()Lorg/jetbrains/kotlin/psi/KtElement;
	public abstract fun getValue ()Ljava/lang/Object;
	public abstract fun render ()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$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/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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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 abstract fun getAnnotationType ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getAny ()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 abstract fun getChar ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getDouble ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getFloat ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getInt ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getLong ()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 abstract fun getShort ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getString ()Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getThrowable ()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 isMarkedNullable ()Z
	public abstract fun setMarkedNullable (Z)V
	public abstract fun setNullability (Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;)V
}

public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaDataFlowProvider : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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_EXPERIMENTAL_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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun collectDiagnostics (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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun isUsedAsExpression (Lorg/jetbrains/kotlin/psi/KtExpression;)Z
}

public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaExpressionTypeProvider : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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 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/components/KaScopeImplicitReceiverValue {
	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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun isImplicitReferenceToCompanion (Lorg/jetbrains/kotlin/idea/references/KtReference;)Z
	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 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 abstract interface class org/jetbrains/kotlin/analysis/api/components/KaScopeProvider : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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 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 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/KaSessionComponent : org/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeOwner {
}

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/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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun getAllOverriddenSymbols (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)Lkotlin/sequences/Sequence;
	public abstract fun getConstructedClass (Lorg/jetbrains/kotlin/analysis/api/symbols/KaSamConstructorSymbol;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;
	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 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 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 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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public fun getCanBeNull (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	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 abstract fun getHasFlexibleNullability (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 isBooleanType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isByteType (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 abstract fun isDenotable (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isDoubleType (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 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 isLongType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public abstract fun isMarkedNullable (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public abstract fun isNestedArray (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isNothingType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public abstract fun isNullable (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isPrimitive (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isShortType (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 isUByteType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isUIntType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isULongType (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Z
	public fun isUShortType (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 isMarkedNullable ()Z
	public abstract fun setMarkedNullable (Z)V
	public abstract fun setNullability (Lorg/jetbrains/kotlin/analysis/api/types/KaTypeNullability;)V
}

public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeProvider : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun allSupertypes (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Z)Lkotlin/sequences/Sequence;
	public abstract fun collectImplicitReceiverTypes (Lorg/jetbrains/kotlin/psi/KtElement;)Ljava/util/List;
	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;)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/KaClassifierSymbol;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public synthetic 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;)Lkotlin/sequences/Sequence;
	public abstract fun getDispatchReceiverType (Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;)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 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 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 fun withNullability (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Z)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
}

public abstract interface class org/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun isSubtypeOf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;)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 abstract fun isSubtypeOf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/name/ClassId;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/symbols/KaClassLikeSymbol;Lorg/jetbrains/kotlin/analysis/api/components/KaSubtypingErrorTypePolicy;ILjava/lang/Object;)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 static synthetic fun isSubtypeOf$default (Lorg/jetbrains/kotlin/analysis/api/components/KaTypeRelationChecker;Lorg/jetbrains/kotlin/analysis/api/types/KaType;Lorg/jetbrains/kotlin/name/ClassId;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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun isPublicApi (Lorg/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol;)Z
}

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 assertIsAccessible (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeToken;)V
	public static final fun assertIsValid (Lorg/jetbrains/kotlin/analysis/api/lifetime/KaLifetimeToken;)V
	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/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/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 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 abstract fun getName ()Ljava/lang/String;
}

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 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 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 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 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 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 getCallables ()Lkotlin/sequences/Sequence;
	public fun getClassifiers ()Lkotlin/sequences/Sequence;
	public abstract fun getConstructors ()Lkotlin/sequences/Sequence;
	public fun getDeclarations ()Lkotlin/sequences/Sequence;
}

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 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 abstract 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 abstract class org/jetbrains/kotlin/analysis/api/symbols/KaAnonymousFunctionSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol, org/jetbrains/kotlin/analysis/api/symbols/markers/KaContextParameterOwnerSymbol {
	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 getHasStableParameterNames ()Z
	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 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 getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
	public final fun getName ()Lorg/jetbrains/kotlin/name/Name;
	public final fun isActual ()Z
	public final fun isExpect ()Z
}

public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaBackingFieldSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol {
	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 getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
	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 isActual ()Z
	public final fun isExpect ()Z
	public final fun isExtension ()Z
}

public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol : org/jetbrains/kotlin/analysis/api/base/KaContextReceiversOwner, org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol {
	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
	public abstract fun getCallableId ()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 {
	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 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 {
	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
	public abstract fun getClassId ()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 {
	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
}

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 getLocation ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolLocation;
	public final fun getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
	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 createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
	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 abstract class org/jetbrains/kotlin/analysis/api/symbols/KaDestructuringDeclarationSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol {
	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 fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
}

public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaEnumEntrySymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol {
	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 getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
	public final fun isActual ()Z
	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 {
	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 {
	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 getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
	public final fun isActual ()Z
	public final fun isExpect ()Z
	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, org/jetbrains/kotlin/analysis/api/symbols/markers/KaContextParameterOwnerSymbol {
	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 {
	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 getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
	public final fun isActual ()Z
	public final fun isExpect ()Z
	public final fun isExtension ()Z
	public abstract fun isLateInit ()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/KaContextParameterOwnerSymbol, 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 class org/jetbrains/kotlin/analysis/api/symbols/KaParameterSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol {
	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 getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
	public final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
	public final fun isActual ()Z
	public final fun isExpect ()Z
	public final fun isExtension ()Z
	public final fun isVal ()Z
}

public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaPropertyAccessorSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaFunctionSymbol {
	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 final fun isActual ()Z
	public abstract fun isDefault ()Z
	public fun isExpect ()Z
	public fun isExtension ()Z
	public abstract fun isInline ()Z
	public abstract fun isNotDefault ()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 final fun getHasStableParameterNames ()Z
	public final fun getValueParameters ()Ljava/util/List;
}

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 final fun getValueParameters ()Ljava/util/List;
}

public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaPropertySymbol : org/jetbrains/kotlin/analysis/api/symbols/KaVariableSymbol, 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 isExternal ()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 {
	public fun <init> ()V
	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
	public final fun getName ()Lorg/jetbrains/kotlin/name/Name;
	public abstract fun getOwningCallableSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaCallableSymbol;
}

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 final fun getReceiverParameter ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaReceiverParameterSymbol;
}

public abstract class org/jetbrains/kotlin/analysis/api/symbols/KaScriptSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaDeclarationSymbol, 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 final field TYPEALIASED_CONSTRUCTOR 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 : org/jetbrains/kotlin/analysis/api/components/KaSessionComponent {
	public abstract fun findClass (Lorg/jetbrains/kotlin/name/ClassId;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
	public abstract fun findClassLike (Lorg/jetbrains/kotlin/name/ClassId;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;
	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 abstract fun getClassSymbol (Lorg/jetbrains/kotlin/psi/KtClassOrObject;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassSymbol;
	public abstract fun getNamedClassSymbol (Lorg/jetbrains/kotlin/psi/KtClassOrObject;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaNamedClassSymbol;
	public abstract fun getRootPackageSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaPackageSymbol;
	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 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 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 final fun getBackingFieldSymbol ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaBackingFieldSymbol;
	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 fun getOrigin ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolOrigin;
	public final fun isDelegatedProperty ()Z
	public final fun isFromPrimaryConstructor ()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 final fun getModality ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaSymbolModality;
}

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/KaParameterSymbol {
	public fun <init> ()V
	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
	public fun getGeneratedPrimaryConstructorProperty ()Lorg/jetbrains/kotlin/analysis/api/symbols/KaKotlinPropertySymbol;
	public abstract fun getHasDefaultValue ()Z
	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
	public abstract fun isCrossinline ()Z
	public abstract fun isImplicitLambdaParameter ()Z
	public abstract fun isNoinline ()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 {
	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 fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
}

public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/markers/KaDeclarationContainerSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaSymbol {
	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
}

public abstract interface class org/jetbrains/kotlin/analysis/api/symbols/markers/KaNamedSymbol : org/jetbrains/kotlin/analysis/api/symbols/KaSymbol {
	public abstract fun createPointer ()Lorg/jetbrains/kotlin/analysis/api/symbols/pointers/KaSymbolPointer;
	public abstract fun getName ()Lorg/jetbrains/kotlin/name/Name;
}

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 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 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 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 FUNCTION_RETURN_TYPE 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 final field VALUE_PARAMETER_BOXED 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 getAbbreviationOrSelf (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public static final fun getSymbol (Lorg/jetbrains/kotlin/analysis/api/types/KaType;)Lorg/jetbrains/kotlin/analysis/api/symbols/KaClassLikeSymbol;
}

