"""Non-destructive signal processing transforms."""

from impakt.transform.align import XAlign, YAlign, x_align, y_align
from impakt.transform.base import Transform, TransformChain, _registry
from impakt.transform.cfc import CFCFilter, cfc_filter
from impakt.transform.math_expr import MathExpr, math_expr
from impakt.transform.resample import Resample, Trim, resample, trim
from impakt.transform.resultant import ResultantTransform, resultant, resultant_from_channels

# Register transforms for deserialization
_registry.register("cfc_filter", CFCFilter)
_registry.register("x_align", XAlign)
_registry.register("y_align", YAlign)
_registry.register("trim", Trim)
_registry.register("resample", Resample)
_registry.register("math_expr", MathExpr)
_registry.register("resultant", ResultantTransform)

__all__ = [
    "CFCFilter",
    "MathExpr",
    "Resample",
    "ResultantTransform",
    "Transform",
    "TransformChain",
    "Trim",
    "XAlign",
    "YAlign",
    "cfc_filter",
    "math_expr",
    "resample",
    "resultant",
    "resultant_from_channels",
    "trim",
    "x_align",
    "y_align",
]
