/**
 * Billing Domain
 * 
 * Exports all billing-related contracts, schemas, and provider mappers.
 * 
 * Types are derived from Zod schemas (Schema-First Approach)
 */

// Constants
export { INVOICE_STATUS } from "./contract";
export * from "./constants";

// Schemas (includes derived types)
export * from "./schema";

// Re-export types for convenience
export type {
  InvoiceStatus,
  InvoiceItem,
  Invoice,
  InvoicePagination,
  InvoiceList,
  InvoiceSsoLink,
  PaymentInvoiceRequest,
  BillingSummary,
  InvoiceQueryParams,
  InvoiceListQuery,
} from './schema';

// Provider adapters
export * as Providers from "./providers/index";

// Re-export provider raw types (request and response)
export type {
  // Request params
  WhmcsGetInvoicesParams,
  WhmcsCreateInvoiceParams,
  WhmcsUpdateInvoiceParams,
  WhmcsCapturePaymentParams,
  // Response types
  WhmcsInvoiceListResponse,
  WhmcsInvoiceResponse,
  WhmcsCreateInvoiceResponse,
  WhmcsUpdateInvoiceResponse,
  WhmcsCapturePaymentResponse,
  WhmcsCurrency,
  WhmcsCurrenciesResponse,
} from "./providers/whmcs/raw.types";
