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/KaContextParameterApi : java/lang/annotation/Annotation {
}

public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaExperimentalApi : java/lang/annotation/Annotation {
}

public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaIdeApi : java/lang/annotation/Annotation {
}

public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaImplementationDetail : java/lang/annotation/Annotation {
}

public abstract interface annotation class org/jetbrains/kotlin/analysis/api/KaK1Unsupported : 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/KaJavaInteroperabilityComponent, org/jetbrains/kotlin/analysis/api/components/KaKDocProvider, 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/KaTypeCreatorProvider, 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 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 fun getReturnType (Lorg/jetbrains/kotlin/psi/KtDeclaration;)Lorg/jetbrains/kotlin/analysis/api/types/KaType;
	public abstract fun getReturnType (Lorg/jetbrains/kotlin/psi/KtDeclarationWithReturnType;)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;
}

