from _typeshed import Incomplete
from rdkit.Chem.Pharm2D import Utils as Utils
from rdkit.DataStructs.cDataStructs import (
    IntSparseIntVect as IntSparseIntVect,
    LongSparseIntVect as LongSparseIntVect,
    SparseBitVect as SparseBitVect,
)

_verbose: bool

class SigFactory:
    featFactory: Incomplete
    useCounts: Incomplete
    minPointCount: Incomplete
    maxPointCount: Incomplete
    shortestPathsOnly: Incomplete
    includeBondOrder: Incomplete
    trianglePruneBins: Incomplete
    skipFeats: Incomplete
    _bins: Incomplete
    sigKlass: Incomplete
    def __init__(
        self,
        featFactory,
        useCounts: bool = ...,
        minPointCount: int = ...,
        maxPointCount: int = ...,
        shortestPathsOnly: bool = ...,
        includeBondOrder: bool = ...,
        skipFeats: Incomplete | None = ...,
        trianglePruneBins: bool = ...,
    ) -> None: ...
    def SetBins(self, bins) -> None: ...
    def GetBins(self): ...
    def GetNumBins(self): ...
    def GetSignature(self): ...
    def _GetBitSummaryData(self, bitIdx): ...
    def GetBitDescriptionAsText(
        self, bitIdx, includeBins: int = ..., fullPage: int = ...
    ) -> None: ...
    def GetBitDescription(self, bitIdx): ...
    def _findBinIdx(self, dists, bins, scaffolds): ...
    def GetFeatFamilies(self): ...
    def GetMolFeats(self, mol): ...
    def GetBitIdx(self, featIndices, dists, sortIndices: bool = ...): ...
    def GetBitInfo(self, idx): ...
    _scaffolds: Incomplete
    _starts: Incomplete
    _nFeats: Incomplete
    _sigSize: Incomplete
    def Init(self) -> None: ...
    def GetSigSize(self): ...
