"""Location reference data model."""

from .basetypes import (
    Alphabet,
    BaseType,
    Enumeration,
    LayerElement,
    LocClassLayer,
    LocClassSeparator,
    MatchResult,
    calculate_base_alphabet,
    prefix_match_for_radix_numbers,
    prefix_match_for_roman_numbers,
)
from .classes import (
    CrossrefLocationClass,
    LayeredLocationClass,
    LocationClass,
    LocationMatchError,
    StandardLocationClass,
    VarLocationClass,
    checked_make_standard_location_class,
    checked_make_var_location_class,
    perform_match,
)
from .references import (
    CategoryAttribute,
    CrossrefLocationReference,
    LayeredLocationReference,
    LocationReference,
    build_location_reference,
    create_cross_reference,
    locref_class_eq,
    locref_class_lt,
    locref_ordnum_eq,
    locref_ordnum_lt,
    make_category_attribute,
)


__all__ = [
    "Alphabet",
    "BaseType",
    "CategoryAttribute",
    "CrossrefLocationClass",
    "CrossrefLocationReference",
    "Enumeration",
    "LayerElement",
    "LayeredLocationClass",
    "LayeredLocationReference",
    "LocClassLayer",
    "LocClassSeparator",
    "LocationClass",
    "LocationMatchError",
    "LocationReference",
    "MatchResult",
    "StandardLocationClass",
    "VarLocationClass",
    "build_location_reference",
    "calculate_base_alphabet",
    "checked_make_standard_location_class",
    "checked_make_var_location_class",
    "create_cross_reference",
    "locref_class_eq",
    "locref_class_lt",
    "locref_ordnum_eq",
    "locref_ordnum_lt",
    "make_category_attribute",
    "perform_match",
    "prefix_match_for_radix_numbers",
    "prefix_match_for_roman_numbers",
]
