"""Shared math utilities for volatility fitting."""

from .vol_model import VolModel, VolMethod, SLICE_METHODS, SURFACE_METHODS  # noqa: F401
from .svi import (  # noqa: F401
    DEFAULT_SVI_OPTIONS,
    JWParams,
    RawSVI,
    SVIParameters,
    calibrate_svi_parameters,
    check_butterfly,
    from_total_variance,
    log_moneyness,
    merge_svi_options,
    raw_to_jw,
    svi_options,
    svi_total_variance,
    to_total_variance,
)
from .svi_types import (  # noqa: F401
    SVICalibrationDiagnostics,
    SVICalibrationOptions,
    SVITrialRecord,
)
from .ssvi import (  # noqa: F401
    RHO_BOUND,
    SSVISurfaceParams,
    compute_ssvi_margins,
    phi_eta_gamma,
    ssvi_calendar_margin,
    ssvi_total_variance,
    theta_phi,
    theta_phi_derivative,
    theta_phi_squared,
)

__all__ = [
    "VolModel",
    "VolMethod",
    "SLICE_METHODS",
    "SURFACE_METHODS",
    "DEFAULT_SVI_OPTIONS",
    "JWParams",
    "RawSVI",
    "SVIParameters",
    "calibrate_svi_parameters",
    "check_butterfly",
    "from_total_variance",
    "log_moneyness",
    "merge_svi_options",
    "raw_to_jw",
    "svi_options",
    "svi_total_variance",
    "to_total_variance",
    "SVICalibrationDiagnostics",
    "SVICalibrationOptions",
    "SVITrialRecord",
    "RHO_BOUND",
    "SSVISurfaceParams",
    "compute_ssvi_margins",
    "phi_eta_gamma",
    "ssvi_calendar_margin",
    "ssvi_total_variance",
    "theta_phi",
    "theta_phi_derivative",
    "theta_phi_squared",
]
