from _typeshed import Incomplete
from typing import Any, ClassVar, List, Tuple

from typing import overload
import rdkit.rdBase
from rdkit.Chem import Mol

_BCUT2D_version: str
_CalcAUTOCORR2D_version: str
_CalcAUTOCORR3D_version: str
_CalcAsphericity_version: str
_CalcChi0n_version: str
_CalcChi0v_version: str
_CalcChi1n_version: str
_CalcChi1v_version: str
_CalcChi2n_version: str
_CalcChi2v_version: str
_CalcChi3n_version: str
_CalcChi3v_version: str
_CalcChi4n_version: str
_CalcChi4v_version: str
_CalcChiNn_version: str
_CalcChiNv_version: str
_CalcCoulombMat_version: str
_CalcCrippenDescriptors_version: str
_CalcEMMcharges_version: str
_CalcEccentricity_version: str
_CalcExactMolWt_version: str
_CalcFractionCSP3_version: str
_CalcGETAWAY_version: str
_CalcHallKierAlpha_version: str
_CalcInertialShapeFactor_version: str
_CalcKappa1_version: str
_CalcKappa2_version: str
_CalcKappa3_version: str
_CalcLabuteASA_version: str
_CalcMORSE_version: str
_CalcMolFormula_version: str
_CalcMolWt_version: str
_CalcNPR1_version: str
_CalcNPR2_version: str
_CalcNumAliphaticCarbocycles_version: str
_CalcNumAliphaticHeterocycles_version: str
_CalcNumAliphaticRings_version: str
_CalcNumAmideBonds_version: str
_CalcNumAromaticCarbocycles_version: str
_CalcNumAromaticHeterocycles_version: str
_CalcNumAromaticRings_version: str
_CalcNumAtomStereoCenters_version: str
_CalcNumAtoms_version: str
_CalcNumBridgeheadAtoms_version: str
_CalcNumHBA_version: str
_CalcNumHBD_version: str
_CalcNumHeavyAtoms_version: str
_CalcNumHeteroatoms_version: str
_CalcNumHeterocycles_version: str
_CalcNumLipinskiHBA_version: str
_CalcNumLipinskiHBD_version: str
_CalcNumRings_version: str
_CalcNumRotatableBonds_version: str
_CalcNumSaturatedCarbocycles_version: str
_CalcNumSaturatedHeterocycles_version: str
_CalcNumSaturatedRings_version: str
_CalcNumSpiroAtoms_version: str
_CalcNumUnspecifiedAtomStereoCenters_version: str
_CalcPBF_version: str
_CalcPMI1_version: str
_CalcPMI2_version: str
_CalcPMI3_version: str
_CalcPhi_version: str
_CalcRDF_version: str
_CalcRadiusOfGyration_version: str
_CalcSpherocityIndex_version: str
_CalcTPSA_version: str
_CalcWHIM_version: str
_ConnectivityInvariants_version: str
_FeatureInvariants_version: str
_GetAtomFeatures_version: str
_MorganFingerprint_version: str

class AtomPairsParameters:
    atomTypes: ClassVar[rdkit.rdBase._vectj] = ...
    codeSize: ClassVar[int] = ...
    numAtomPairFingerprintBits: ClassVar[int] = ...
    numBranchBits: ClassVar[int] = ...
    numChiralBits: ClassVar[int] = ...
    numPathBits: ClassVar[int] = ...
    numPiBits: ClassVar[int] = ...
    numTypeBits: ClassVar[int] = ...
    version: ClassVar[str] = ...
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class NumRotatableBondsOptions:
    Default: ClassVar[NumRotatableBondsOptions] = ...
    NonStrict: ClassVar[NumRotatableBondsOptions] = ...
    Strict: ClassVar[NumRotatableBondsOptions] = ...
    StrictLinkages: ClassVar[NumRotatableBondsOptions] = ...
    names: ClassVar[dict] = ...
    values: ClassVar[dict] = ...
    __slots__: ClassVar[tuple] = ...

class Properties:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def AnnotateProperties(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def ComputeProperties(cls, *args, **kwargs) -> Any: ...
    def GetAvailableProperties(self, *args, **kwargs) -> Any: ...
    def GetProperty(self, *args, **kwargs) -> Any: ...
    @classmethod
    def GetPropertyNames(cls, RDKit) -> Any: ...
    def RegisterProperty(self, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class PropertyFunctor:
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def GetName(cls, RDKit) -> Any: ...
    @classmethod
    def GetVersion(cls, RDKit) -> Any: ...
    def __call__(self, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class PropertyRangeQuery:
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def Match(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class PythonPropertyFunctor(PropertyFunctor):
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    def __call__(self, RDKit) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

@overload
def BCUT2D(mol: Mol, atom_props: List[Incomplete]) -> Any: ...
@overload
def BCUT2D(mol: Mol, atom_props: Tuple[Incomplete, ...]) -> Any: ...
@overload
def BCUT2D(mol: Mol, atom_propname: str) -> Any: ...
def CalcAUTOCORR2D(RDKit) -> Any: ...
def CalcAUTOCORR3D(RDKit) -> Any: ...
def CalcAsphericity(RDKit) -> Any: ...
def CalcChi0n(RDKit) -> Any: ...
def CalcChi0v(RDKit) -> Any: ...
def CalcChi1n(RDKit) -> Any: ...
def CalcChi1v(RDKit) -> Any: ...
def CalcChi2n(RDKit) -> Any: ...
def CalcChi2v(RDKit) -> Any: ...
def CalcChi3n(RDKit) -> Any: ...
def CalcChi3v(RDKit) -> Any: ...
def CalcChi4n(RDKit) -> Any: ...
def CalcChi4v(RDKit) -> Any: ...
def CalcChiNn(*args, **kwargs) -> Any: ...
def CalcChiNv(*args, **kwargs) -> Any: ...
def CalcCoulombMat(RDKit) -> Any: ...
def CalcCrippenDescriptors(RDKit) -> Any: ...
def CalcEEMcharges(RDKit) -> Any: ...
def CalcEccentricity(RDKit) -> Any: ...
def CalcExactMolWt(RDKit) -> Any: ...
def CalcFractionCSP3(RDKit) -> Any: ...
def CalcGETAWAY(RDKit) -> Any: ...
def CalcHallKierAlpha(RDKit) -> Any: ...
def CalcInertialShapeFactor(RDKit) -> Any: ...
def CalcKappa1(RDKit) -> Any: ...
def CalcKappa2(RDKit) -> Any: ...
def CalcKappa3(RDKit) -> Any: ...
def CalcLabuteASA(RDKit) -> Any: ...
def CalcMORSE(RDKit) -> Any: ...
def CalcMolFormula(RDKit) -> Any: ...
def CalcNPR1(RDKit) -> Any: ...
def CalcNPR2(RDKit) -> Any: ...
def CalcNumAliphaticCarbocycles(RDKit) -> Any: ...
def CalcNumAliphaticHeterocycles(RDKit) -> Any: ...
def CalcNumAliphaticRings(RDKit) -> Any: ...
def CalcNumAmideBonds(RDKit) -> Any: ...
def CalcNumAromaticCarbocycles(RDKit) -> Any: ...
def CalcNumAromaticHeterocycles(RDKit) -> Any: ...
def CalcNumAromaticRings(RDKit) -> Any: ...
def CalcNumAtomStereoCenters(RDKit) -> Any: ...
def CalcNumAtoms(RDKit) -> Any: ...
def CalcNumBridgeheadAtoms(RDKit) -> Any: ...
def CalcNumHBA(RDKit) -> Any: ...
def CalcNumHBD(RDKit) -> Any: ...
def CalcNumHeavyAtoms(RDKit) -> Any: ...
def CalcNumHeteroatoms(RDKit) -> Any: ...
def CalcNumHeterocycles(RDKit) -> Any: ...
def CalcNumLipinskiHBA(RDKit) -> Any: ...
def CalcNumLipinskiHBD(RDKit) -> Any: ...
def CalcNumRings(RDKit) -> Any: ...
@overload
def CalcNumRotatableBonds(RDKit, bool) -> Any: ...
@overload
def CalcNumRotatableBonds(RDKit) -> Any: ...
def CalcNumSaturatedCarbocycles(RDKit) -> Any: ...
def CalcNumSaturatedHeterocycles(RDKit) -> Any: ...
def CalcNumSaturatedRings(RDKit) -> Any: ...
def CalcNumSpiroAtoms(RDKit) -> Any: ...
def CalcNumUnspecifiedAtomStereoCenters(RDKit) -> Any: ...
def CalcPBF(RDKit) -> Any: ...
def CalcPMI1(RDKit) -> Any: ...
def CalcPMI2(RDKit) -> Any: ...
def CalcPMI3(RDKit) -> Any: ...
def CalcPhi(RDKit) -> Any: ...
def CalcRDF(RDKit) -> Any: ...
def CalcRadiusOfGyration(RDKit) -> Any: ...
def CalcSpherocityIndex(RDKit) -> Any: ...
def CalcTPSA(RDKit) -> Any: ...
def CalcWHIM(RDKit) -> Any: ...
def CustomProp_VSA_(*args, **kwargs) -> Any: ...
def GetAtomFeatures(*args, **kwargs) -> Any: ...
def GetAtomPairAtomCode(RDKit) -> Any: ...
def GetAtomPairCode(*args, **kwargs) -> Any: ...
def GetAtomPairFingerprint(RDKit) -> Any: ...
def GetConnectivityInvariants(RDKit) -> Any: ...
def GetFeatureInvariants(RDKit) -> Any: ...
def GetHashedAtomPairFingerprint(RDKit) -> Any: ...
def GetHashedAtomPairFingerprintAsBitVect(RDKit) -> Any: ...
def GetHashedMorganFingerprint(*args, **kwargs) -> Any: ...
def GetHashedTopologicalTorsionFingerprint(RDKit) -> Any: ...
def GetHashedTopologicalTorsionFingerprintAsBitVect(RDKit) -> Any: ...
def GetMACCSKeysFingerprint(RDKit) -> Any: ...
def GetMorganFingerprint(*args, **kwargs) -> Any: ...
def GetMorganFingerprintAsBitVect(*args, **kwargs) -> Any: ...
def GetTopologicalTorsionFingerprint(RDKit) -> Any: ...
def GetUSR(RDKit) -> Any: ...
def GetUSRCAT(RDKit) -> Any: ...
def GetUSRDistributions(boost) -> Any: ...
def GetUSRDistributionsFromPoints(*args, **kwargs) -> Any: ...
def GetUSRFromDistributions(boost) -> Any: ...
def GetUSRScore(*args, **kwargs) -> Any: ...
def MQNs_(RDKit) -> Any: ...
def MakePropertyRangeQuery(*args, **kwargs) -> Any: ...
def PEOE_VSA_(RDKit) -> Any: ...
def SMR_VSA_(RDKit) -> Any: ...
def SlogP_VSA_(RDKit) -> Any: ...
def _CalcCrippenContribs(RDKit) -> Any: ...
def _CalcLabuteASAContribs(RDKit) -> Any: ...
def _CalcMolWt(RDKit) -> Any: ...
def _CalcTPSAContribs(RDKit) -> Any: ...
