from typing import Any, ClassVar

class ExclusionList(FilterMatcherBase):
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def AddPattern(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def SetExclusionPatterns(cls, RDKit, boost) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class FilterCatalog:
    __instance_size__: ClassVar[int] = ...
    __safe_for_unpickling__: ClassVar[bool] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def AddEntry(cls, RDKit) -> Any: ...
    @classmethod
    def GetEntry(cls, RDKit, unsignedint) -> Any: ...
    @classmethod
    def GetEntryWithIdx(cls, RDKit, unsignedint) -> Any: ...
    @classmethod
    def GetFilterMatches(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetFirstMatch(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetMatches(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetNumEntries(cls, RDKit) -> Any: ...
    @classmethod
    def HasMatch(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def RemoveEntry(cls, RDKit, boost) -> Any: ...
    @classmethod
    def Serialize(cls, RDKit) -> Any: ...
    @classmethod
    def __getinitargs__(cls, RDKit) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class FilterCatalogEntry:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def ClearProp(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetDescription(cls, RDKit) -> Any: ...
    @classmethod
    def GetFilterMatches(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetProp(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetPropList(cls, RDKit) -> Any: ...
    @classmethod
    def HasFilterMatch(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def IsValid(cls, RDKit) -> Any: ...
    @classmethod
    def Serialize(cls, RDKit) -> Any: ...
    @classmethod
    def SetDescription(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def SetProp(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class FilterCatalogEntryList:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def append(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def extend(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __contains__(cls, other) -> Any: ...
    @classmethod
    def __delitem__(cls, other) -> Any: ...
    @classmethod
    def __getitem__(cls, index) -> Any: ...
    @classmethod
    def __iter__(cls, boost, std) -> Any: ...
    @classmethod
    def __len__(cls) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...
    @classmethod
    def __setitem__(cls, index, object) -> Any: ...

class FilterCatalogListOfEntryList:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def append(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def extend(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __contains__(cls, other) -> Any: ...
    @classmethod
    def __delitem__(cls, other) -> Any: ...
    @classmethod
    def __getitem__(cls, index) -> Any: ...
    @classmethod
    def __iter__(cls) -> Any: ...
    @classmethod
    def __len__(cls) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...
    @classmethod
    def __setitem__(cls, index, object) -> Any: ...

class FilterCatalogParams:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def AddCatalog(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class FilterHierarchyMatcher(FilterMatcherBase):
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def AddChild(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def SetPattern(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class FilterMatch:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def __reduce__(cls) -> Any: ...
    @property
    def atomPairs(self) -> Any: ...
    @property
    def filterMatch(self) -> Any: ...

class FilterMatcherBase:
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def GetMatches(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def GetName(cls, RDKit) -> Any: ...
    @classmethod
    def HasMatch(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def IsValid(cls, RDKit) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class IntPair:
    __instance_size__: ClassVar[int] = ...
    query: Any
    target: Any
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def __getitem__(cls, index) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class MatchTypeVect:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def append(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def extend(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __contains__(cls, other) -> Any: ...
    @classmethod
    def __delitem__(cls, other) -> Any: ...
    @classmethod
    def __getitem__(cls, index) -> Any: ...
    @classmethod
    def __iter__(cls) -> Any: ...
    @classmethod
    def __len__(cls) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...
    @classmethod
    def __setitem__(cls, index, object) -> Any: ...

class MolList:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def append(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def extend(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __contains__(cls, other) -> Any: ...
    @classmethod
    def __delitem__(cls, other) -> Any: ...
    @classmethod
    def __getitem__(cls, index) -> Any: ...
    @classmethod
    def __iter__(cls, boost, std) -> Any: ...
    @classmethod
    def __len__(cls) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...
    @classmethod
    def __setitem__(cls, index, object) -> Any: ...

class PythonFilterMatcher(FilterMatcherBase):
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class SmartsMatcher(FilterMatcherBase):
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def GetMaxCount(cls, RDKit) -> Any: ...
    @classmethod
    def GetMinCount(cls, RDKit) -> Any: ...
    @classmethod
    def GetPattern(cls, RDKit) -> Any: ...
    @classmethod
    def IsValid(cls, RDKit) -> Any: ...
    @classmethod
    def SetMaxCount(cls, RDKit, unsignedint) -> Any: ...
    @classmethod
    def SetMinCount(cls, RDKit, unsignedint) -> Any: ...
    @classmethod
    def SetPattern(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...

class VectFilterMatch:
    __instance_size__: ClassVar[int] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    @classmethod
    def append(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def extend(cls, *args, **kwargs) -> Any: ...
    @classmethod
    def __contains__(cls, other) -> Any: ...
    @classmethod
    def __delitem__(cls, other) -> Any: ...
    @classmethod
    def __getitem__(cls, index) -> Any: ...
    @classmethod
    def __iter__(cls, boost, std) -> Any: ...
    @classmethod
    def __len__(cls) -> Any: ...
    @classmethod
    def __reduce__(cls) -> Any: ...
    @classmethod
    def __setitem__(cls, index, object) -> Any: ...

def FilterCatalogCanSerialize(*args, **kwargs) -> Any: ...
def GetFlattenedFunctionalGroupHierarchy(*args, **kwargs) -> Any: ...
def GetFunctionalGroupHierarchy() -> Any: ...
def RunFilterCatalog(*args, **kwargs) -> Any: ...
