"""Provider adapter boundary for Strava; never a canonical Activity dependency."""

from .client import StravaClient
from .ingestion import LocalRawRecordStore, PersistentStravaIngestionService, StravaIngestionService
from .initial_backfill import (
    INCREMENTAL_CONTINUATION_VERSION,
    INITIAL_BACKFILL_COVERAGE_VERSION,
    INITIAL_BACKFILL_PER_PAGE,
    INITIAL_BACKFILL_PLAN_VERSION,
    INITIAL_BACKFILL_RESUME_VERSION,
    InitialBackfillResult,
    StravaInitialBackfillAdapter,
    create_initial_backfill_run,
    diagnostics_for_initial_backfill,
    initial_backfill_resume_available,
    new_initial_backfill_plan,
    new_initial_backfill_resume,
    run_initial_backfill,
    validate_initial_backfill_plan,
)
from .normalizer import normalize_activity, normalize_telemetry, strava_activity_type
from .oauth import (
    LocalTokenStore,
    OAuthClientCredentials,
    StravaOAuth,
    StravaToken,
    complete_local_callback,
)
from .smoke import (
    DEFAULT_SMOKE_ACTIVITY_COUNT,
    MAX_SMOKE_ACTIVITY_COUNT,
    MAX_SMOKE_PROVIDER_REQUESTS,
    PersistentStravaSmokeResult,
    diagnostics_for_smoke,
    prepare_smoke_database,
    run_bounded_strava_smoke,
    validate_smoke_count,
)
from .sync import StravaPageAdapter

__all__ = [
    "DEFAULT_SMOKE_ACTIVITY_COUNT",
    "INITIAL_BACKFILL_COVERAGE_VERSION",
    "INITIAL_BACKFILL_PER_PAGE",
    "INITIAL_BACKFILL_PLAN_VERSION",
    "INITIAL_BACKFILL_RESUME_VERSION",
    "INCREMENTAL_CONTINUATION_VERSION",
    "InitialBackfillResult",
    "LocalRawRecordStore",
    "LocalTokenStore",
    "MAX_SMOKE_ACTIVITY_COUNT",
    "MAX_SMOKE_PROVIDER_REQUESTS",
    "OAuthClientCredentials",
    "PersistentStravaIngestionService",
    "PersistentStravaSmokeResult",
    "StravaClient",
    "StravaIngestionService",
    "StravaInitialBackfillAdapter",
    "StravaOAuth",
    "StravaPageAdapter",
    "StravaToken",
    "complete_local_callback",
    "create_initial_backfill_run",
    "diagnostics_for_initial_backfill",
    "initial_backfill_resume_available",
    "diagnostics_for_smoke",
    "new_initial_backfill_plan",
    "new_initial_backfill_resume",
    "normalize_activity",
    "normalize_telemetry",
    "prepare_smoke_database",
    "run_bounded_strava_smoke",
    "run_initial_backfill",
    "strava_activity_type",
    "validate_initial_backfill_plan",
    "validate_smoke_count",
]
