package kotlin.reflect.jvm.internal.impl.descriptors;

import defpackage.kp6;
import defpackage.pq6;
import java.util.Collection;
import java.util.List;
import kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.CallableMemberDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.annotations.Annotations;
import kotlin.reflect.jvm.internal.impl.name.Name;
import kotlin.reflect.jvm.internal.impl.types.KotlinType;
import kotlin.reflect.jvm.internal.impl.types.TypeSubstitution;
import kotlin.reflect.jvm.internal.impl.types.TypeSubstitutor;

/* JADX INFO: loaded from: classes3.dex */
public interface FunctionDescriptor extends CallableMemberDescriptor {

    public interface CopyBuilder<D extends FunctionDescriptor> {
        @pq6
        D build();

        @kp6
        <V> CopyBuilder<D> putUserData(@kp6 CallableDescriptor.UserDataKey<V> userDataKey, V v);

        @kp6
        CopyBuilder<D> setAdditionalAnnotations(@kp6 Annotations annotations);

        @kp6
        CopyBuilder<D> setCopyOverrides(boolean z);

        @kp6
        CopyBuilder<D> setDispatchReceiverParameter(@pq6 ReceiverParameterDescriptor receiverParameterDescriptor);

        @kp6
        CopyBuilder<D> setDropOriginalInContainingParts();

        @kp6
        CopyBuilder<D> setExtensionReceiverParameter(@pq6 ReceiverParameterDescriptor receiverParameterDescriptor);

        @kp6
        CopyBuilder<D> setHiddenForResolutionEverywhereBesideSupercalls();

        @kp6
        CopyBuilder<D> setHiddenToOvercomeSignatureClash();

        @kp6
        CopyBuilder<D> setKind(@kp6 CallableMemberDescriptor.Kind kind);

        @kp6
        CopyBuilder<D> setModality(@kp6 Modality modality);

        @kp6
        CopyBuilder<D> setName(@kp6 Name name);

        @kp6
        CopyBuilder<D> setOriginal(@pq6 CallableMemberDescriptor callableMemberDescriptor);

        @kp6
        CopyBuilder<D> setOwner(@kp6 DeclarationDescriptor declarationDescriptor);

        @kp6
        CopyBuilder<D> setPreserveSourceElement();

        @kp6
        CopyBuilder<D> setReturnType(@kp6 KotlinType kotlinType);

        @kp6
        CopyBuilder<D> setSignatureChange();

        @kp6
        CopyBuilder<D> setSubstitution(@kp6 TypeSubstitution typeSubstitution);

        @kp6
        CopyBuilder<D> setTypeParameters(@kp6 List<TypeParameterDescriptor> list);

        @kp6
        CopyBuilder<D> setValueParameters(@kp6 List<ValueParameterDescriptor> list);

        @kp6
        CopyBuilder<D> setVisibility(@kp6 DescriptorVisibility descriptorVisibility);
    }

    @Override // kotlin.reflect.jvm.internal.impl.descriptors.DeclarationDescriptorNonRoot, kotlin.reflect.jvm.internal.impl.descriptors.DeclarationDescriptor
    @kp6
    DeclarationDescriptor getContainingDeclaration();

    @pq6
    FunctionDescriptor getInitialSignatureDescriptor();

    @Override // kotlin.reflect.jvm.internal.impl.descriptors.CallableMemberDescriptor, kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor, kotlin.reflect.jvm.internal.impl.descriptors.DeclarationDescriptor
    @kp6
    FunctionDescriptor getOriginal();

    @Override // kotlin.reflect.jvm.internal.impl.descriptors.CallableMemberDescriptor, kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor
    @kp6
    Collection<? extends FunctionDescriptor> getOverriddenDescriptors();

    boolean isHiddenForResolutionEverywhereBesideSupercalls();

    boolean isHiddenToOvercomeSignatureClash();

    boolean isInfix();

    boolean isInline();

    boolean isOperator();

    boolean isSuspend();

    boolean isTailrec();

    @kp6
    CopyBuilder<? extends FunctionDescriptor> newCopyBuilder();

    @pq6
    FunctionDescriptor substitute(@kp6 TypeSubstitutor typeSubstitutor);
}
