"""
This module contains components for representing and manipulating ProForma annotations. As well as thier serialization and parsing.
"""

from .comps import (
    GLOBAL_CHARGE_TYPE,
    MODIFICATION_AMBIGUOUS_TYPE,
    MODIFICATION_TAG_TYPE,
    MODIFICATION_TYPE,
    SEQUENCE_TYPE,
    ChargedFormula,
    FixedModification,
    FormulaElement,
    GlobalChargeCarrier,
    GlycanComponent,
    GlycanTag,
    IsotopeReplacement,
    MassPropertyMixin,
    ModificationAmbiguousPrimary,
    ModificationAmbiguousSecondary,
    ModificationCrossLinker,
    ModificationTags,
    PositionRule,
    SequenceElement,
    SequenceRegion,
    TagAccession,
    TagCustom,
    TagInfo,
    TagMass,
    TagName,
)

__all__ = [
    "FormulaElement",
    "ChargedFormula",
    "PositionRule",
    "TagAccession",
    "TagMass",
    "TagName",
    "TagInfo",
    "TagCustom",
    "GlycanComponent",
    "IsotopeReplacement",
    "GlobalChargeCarrier",
    "ModificationAmbiguousPrimary",
    "ModificationAmbiguousSecondary",
    "ModificationCrossLinker",
    "FixedModification",
    "SequenceElement",
    "SequenceRegion",
    "SEQUENCE_TYPE",
    "GLOBAL_CHARGE_TYPE",
    "MODIFICATION_TAG_TYPE",
    "MODIFICATION_AMBIGUOUS_TYPE",
    "MODIFICATION_TYPE",
    "GlycanTag",
    "ModificationTags",
    "MassPropertyMixin",
]
