from typing import Any, ClassVar

AtomPairFP: FPType
MorganFP: FPType
RDKitFP: FPType
TopologicalTorsionFP: FPType

class AdditionalOutput:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def AllocateAtomCounts(cls, RDKit) -> Any: ...
    @classmethod
    def AllocateAtomToBits(cls, RDKit) -> Any: ...
    @classmethod
    def AllocateBitInfoMap(cls, RDKit) -> Any: ...
    @classmethod
    def AllocateBitPaths(cls, RDKit) -> Any: ...
    @classmethod
    def GetAtomCounts(cls, RDKit) -> Any: ...
    @classmethod
    def GetAtomToBits(cls, RDKit) -> Any: ...
    @classmethod
    def GetBitInfoMap(cls, RDKit) -> Any: ...
    @classmethod
    def GetBitPaths(cls, RDKit) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

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

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

class FPType:
    AtomPairFP: ClassVar[FPType] = ...
    MorganFP: ClassVar[FPType] = ...
    RDKitFP: ClassVar[FPType] = ...
    TopologicalTorsionFP: ClassVar[FPType] = ...
    names: ClassVar[dict] = ...
    values: ClassVar[dict] = ...
    __slots__: ClassVar[tuple] = ...

class FingerprintGenerator32:
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def GetCountFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetCountFingerprintAsNumPy(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetFingerprintAsNumPy(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetInfoString(cls, RDKit) -> Any: ...
    @classmethod
    def GetSparseCountFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetSparseFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class FingerprintGenerator64:
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def GetCountFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetCountFingerprintAsNumPy(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetFingerprintAsNumPy(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetInfoString(cls, RDKit) -> Any: ...
    @classmethod
    def GetSparseCountFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetSparseFingerprint(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

def GetAtomPairAtomInvGen(*args, **kwargs) -> Any: ...
def GetAtomPairGenerator(*args, **kwargs) -> Any: ...
def GetCountFPs(*args, **kwargs) -> Any: ...
def GetFPs(*args, **kwargs) -> Any: ...
def GetMorganAtomInvGen(*args, **kwargs) -> Any: ...
def GetMorganBondInvGen(*args, **kwargs) -> Any: ...
def GetMorganFeatureAtomInvGen(*args, **kwargs) -> Any: ...
def GetMorganGenerator(*args, **kwargs) -> Any: ...
def GetRDKitAtomInvGen() -> Any: ...
def GetRDKitFPGenerator(*args, **kwargs) -> Any: ...
def GetSparseCountFPs(*args, **kwargs) -> Any: ...
def GetSparseFPs(*args, **kwargs) -> Any: ...
def GetTopologicalTorsionGenerator(*args, **kwargs) -> Any: ...
