"""
tokencalc — Genesys AI token cost & business case calculator core.

Pure-Python, UI-agnostic. The notebooks (served interactively with
Mercury) are thin presentation layers over these functions.
"""

from .benefit_model import calculate_total_benefit
from .business_case import build_business_case, npv, payback_years
from .cost_model import (
    calculate_consumption_ai_cost,
    calculate_per_user_ai_cost,
    calculate_platform_license_cost,
    calculate_total_cost,
)
from .defaults import (
    CONTRACTED_NAMED_USERS,
    CTM_DEFAULT_FEATURE_SCOPES,
    CTM_DEFAULT_ROLLOUT,
    CTM_DEFAULT_SITES,
    CTM_DEFAULT_TAKEOUTS,
    DEFAULT_METERS,
    DEFAULT_PRICING,
    PLATFORM_RATE_PER_USER_MONTHLY,
)
from .rollout import NO_ROLLOUT, RolloutPlan
from .exports import (
    export_csv,
    export_excel,
    meters_dataframe,
    scenario_state_from_json,
    scenario_state_to_json,
    sites_dataframe,
)
from .inputs import CostTakeout, FeatureScope, SiteInput
from .meters import Confidence, MeterType, TokenMeter, TokenPricing
from .scenarios import BENEFIT_PARAMS, SCENARIOS, Scenario, get_scenario

__version__ = "0.1.0"

__all__ = [
    "BENEFIT_PARAMS",
    "CONTRACTED_NAMED_USERS",
    "CTM_DEFAULT_FEATURE_SCOPES",
    "CTM_DEFAULT_ROLLOUT",
    "CTM_DEFAULT_SITES",
    "CTM_DEFAULT_TAKEOUTS",
    "Confidence",
    "CostTakeout",
    "DEFAULT_METERS",
    "DEFAULT_PRICING",
    "FeatureScope",
    "MeterType",
    "NO_ROLLOUT",
    "PLATFORM_RATE_PER_USER_MONTHLY",
    "RolloutPlan",
    "SCENARIOS",
    "Scenario",
    "SiteInput",
    "TokenMeter",
    "TokenPricing",
    "build_business_case",
    "calculate_consumption_ai_cost",
    "calculate_per_user_ai_cost",
    "calculate_platform_license_cost",
    "calculate_total_benefit",
    "calculate_total_cost",
    "export_csv",
    "export_excel",
    "get_scenario",
    "meters_dataframe",
    "npv",
    "payback_years",
    "scenario_state_from_json",
    "scenario_state_to_json",
    "sites_dataframe",
]
