/**
 * @alqove/api-client
 *
 * Typed API client for the Alqove marketplace.
 * Both web and mobile import this — neither writes raw fetch calls.
 */

export * from './endpoints/scheduling';
export { AlqoveClient } from './client';
export type { ClientConfig } from './client';

export { createAuthEndpoints } from './endpoints/auth';
export { createUserEndpoints } from './endpoints/users';
export { createStoreEndpoints } from './endpoints/stores';
export { createStorefrontEndpoints } from './endpoints/storefront';
export type {
  StorefrontShell,
  StorefrontPage,
  StorefrontPageResponse,
  StorefrontResolution,
  StorefrontNavLink,
  StoreSite,
  StoreSitePage,
  StoreSiteBlock,
  StoreSiteBlockType,
  StoreSiteTheme,
  StoreSiteHoursEntry,
  StoreSiteSocialLink,
  StoreDomain,
  UpdateStoreSitePayload,
  CreateStoreSitePagePayload,
  UpdateStoreSitePagePayload,
} from './endpoints/storefront';
export { createItemEndpoints } from './endpoints/items';
export { createCategoryEndpoints } from './endpoints/categories';
export { createCartEndpoints } from './endpoints/cart';
export { createCheckoutEndpoints } from './endpoints/checkout';
export { createPurchaseEndpoints } from './endpoints/purchases';
export { createOrderEndpoints } from './endpoints/orders';
export { createStripeEndpoints } from './endpoints/stripe';
export { createNotificationEndpoints } from './endpoints/notifications';
export { createMessageEndpoints } from './endpoints/messages';
export type {
  Message,
  MessageAttachment,
  MessageAttachmentUpload,
  MessageList,
  MessageResponse,
  AttachmentUploadResponse,
  PostMessageBody,
} from './endpoints/messages';
export { createMeEndpoints } from './endpoints/me';
export type { MessageThreadSummary, MyThreadsResponse } from './endpoints/me';
export { createSellerEndpoints } from './endpoints/seller';
export type { SellerDashboardMetrics } from './endpoints/seller';
export { createAdminEndpoints } from './endpoints/admin';
export type {
  AdminDashboardMetrics,
  AdminStoreSummary,
  AdminOrderSummary,
  AdminStoresQueryInput,
  AdminOrdersQueryInput,
  AdminDisputeSummary,
  AdminDisputeDetail,
  AdjudicateInput,
  AdminDisputesQueryInput,
  AdminOrderDetail,
  AdminStoreDetail,
  AdminActivityEntry,
  AdminActivityQueryInput,
  BulkHideReviewsInput,
  BulkHideReviewsSkipped,
  BulkHideReviewsResult,
} from './endpoints/admin';
export type {
  NotificationInboxItem,
  NotificationInboxMeta,
  NotificationInboxList,
  NotificationUnreadCount,
  NotificationPreference,
  NotificationPreferencesUpdate,
} from './endpoints/notifications';

export type { ItemSearchQueryInput, ItemBrowseResponse } from './endpoints/items';
export type { StorePublic } from './endpoints/stores';
export type { CategoryTree } from './endpoints/categories';
export type { CartData, CartStoreGroup, CartItemData } from './endpoints/cart';
export type { CheckoutData, CheckoutConflict, ShippingAddress, CheckoutStoreGroup } from './endpoints/checkout';
export type { PurchaseSummary, PurchaseDetail, OrderDetail, OrderItemData } from './endpoints/purchases';
export type { LabelRateOption } from './endpoints/purchases';
export type { SellerCancelBody } from './endpoints/orders';
export type { ParcelPreset } from './endpoints/stores';
export type { StripeStatus } from './endpoints/stripe';
export { createReturnEndpoints, createAdminReturnEndpoints } from './endpoints/returns';
export { createBalanceEndpoints } from './endpoints/balance';
export type { SellerBalance, SellerBalanceResponse } from './endpoints/balance';
export { createPayoutEndpoints } from './endpoints/payouts';
export type {
  Payout,
  PayoutState,
  PayoutLedgerEntry,
  PayoutLedgerEntryType,
  PayoutLedgerDirection,
  PayoutDetail,
  PaginatedPayoutsResponse,
  PayoutDetailResponse,
  ListPayoutsInput,
} from './endpoints/payouts';
export { createAdminFinancialsEndpoints } from './endpoints/admin-financials';
export type {
  LedgerEntry,
  AdjustmentType,
  ManualAdjustment,
  ManualAdjustmentAdmin,
  AdminPayout,
  AdminPayoutVoidedBy,
  FinancialsBalance,
  FinancialsBalanceStoreRow,
  PostAdjustmentInput,
  RetryPayoutInput,
  VoidPayoutInput,
  ListAdminPayoutsInput,
  ListLedgerInput,
  PaginatedLedgerResponse,
  PaginatedAdminPayoutsResponse,
  FinancialsBalanceResponse,
  ManualAdjustmentResponse,
  AdminPayoutResponse,
} from './endpoints/admin-financials';
export { createStatementsEndpoints } from './endpoints/statements';
export type { ExportCsvInput, LedgerEntryRow } from './endpoints/statements';
export { createReviewEndpoints } from './endpoints/reviews';
export type {
  Review,
  ReviewSummary,
  ReviewPhoto,
  RatingSummary,
  ReviewAttachmentUploadResponse,
  NewReviewInput,
  EditReviewInput,
  PaginatedReviewsResponse,
  PaginatedReviewSummariesResponse,
  SellerReview,
  SellerReviewReportStatus,
  PaginatedSellerReviewsResponse,
} from './endpoints/reviews';
export { createCheckinEndpoints } from './endpoints/checkin';
export type {
  CheckinBranding,
  CheckinBrandingData,
  CheckinSubmitPayload,
  CheckinSubmitOptions,
  CheckinAccepted,
  CheckinAcceptedData,
  CheckinStatus,
  CheckinStatusData,
  CheckinStatusVisibility,
} from './endpoints/checkin';
export { createReviewReportEndpoints } from './endpoints/review-reports';
export type {
  ReportReason,
  ReviewReportState,
  ReviewAdminAction,
  ReviewReportNestedReview,
  ReviewReport,
  CreateReviewReportInput,
  ResolveReviewReportInput,
  HideReviewInput,
  RestoreReviewInput,
  PaginatedReviewReportsResponse,
} from './endpoints/review-reports';
export type {
  OrderReturn,
  OrderReturnSummary,
  ReturnItem,
  ReturnState,
  ReturnReason,
  ReturnShippingPayer,
  ReturnInitiatedBy,
  CreateReturnInput,
  OrderReturnResponse,
  OrderReturnSummaryListResponse,
  ReturnEscalation,
  ReturnAdminAction,
  ProactiveRefundMode,
  ProactiveRefundInput,
  AdminResolveReturnInput,
  AdminResolveReturnResponse,
  AdminReturnsListInput,
  PaginationMeta,
  PaginationLinks,
  PaginatedAdminReturnsResponse,
} from './endpoints/returns';
export * from './endpoints/timekeeping';
export { createTeamEndpoints, STORE_ROLE_RANK, STORE_ROLE_LABEL } from './endpoints/team';
export type {
  Membership,
  StoreMember,
  MembershipUpdateInput,
  PayRate,
  PayRateInput,
  Position,
  PositionInput,
  PositionUpdateInput,
  Invitation,
  InvitationInput,
  StoreRole,
  StoreCapability,
} from './endpoints/team';
