/**
 * @ai-summary Public API for subscriptions feature capsule
 * @ai-context Export all public types, classes, and utilities
 */

// Domain types
export type {
  Subscription,
  SubscriptionEvent,
  Donation,
  TierVehicleSelection,
  SubscriptionTier,
  SubscriptionStatus,
  BillingCycle,
  DonationStatus,
  CreateSubscriptionRequest,
  SubscriptionResponse,
  DonationResponse,
  CreateDonationRequest,
  CreateSubscriptionEventRequest,
  CreateTierVehicleSelectionRequest,
  UpdateSubscriptionData,
  UpdateDonationData,
} from './domain/subscriptions.types';

// Stripe types
export type {
  StripeCustomer,
  StripeSubscription,
  StripePaymentMethod,
  StripePaymentIntent,
  StripeWebhookEvent,
  StripePrice,
  StripeError,
} from './external/stripe/stripe.types';

// Stripe client
export { StripeClient } from './external/stripe/stripe.client';

// Repository
export { SubscriptionsRepository } from './data/subscriptions.repository';

// Services
export { SubscriptionsService } from './domain/subscriptions.service';
export { DonationsService } from './domain/donations.service';

// Routes
export { webhooksRoutes } from './api/webhooks.routes';
export { subscriptionsRoutes } from './api/subscriptions.routes';
export { donationsRoutes } from './api/donations.routes';
