// ============================================================================
// Central re-export barrel for all API types
// ============================================================================

// API-level types
export { ApiError } from "./api";
export type { ErrorResponse, MessageResponse, PaginatedResponse } from "./api";

// Auth
export type {
  LoginRequest,
  RegisterRequest,
  VerifyEmailRequest,
  ForgotPasswordRequest,
  VerifyResetCodeRequest,
  ResetPasswordRequest,
  UpdateProfileRequest,
  ResendVerificationRequest,
  AppleSignInRequest,
  GoogleSignInRequest,
  UserResponse,
  UserProfileResponse,
  LoginResponse,
  RegisterResponse,
  CurrentUserResponse,
  VerifyEmailResponse,
  ForgotPasswordResponse,
  VerifyResetCodeResponse,
  ResetPasswordResponse,
  AppleSignInResponse,
  GoogleSignInResponse,
  UserSummary,
  UserProfileSummary,
} from "./auth";

// Residence
export type {
  CreateResidenceRequest,
  UpdateResidenceRequest,
  JoinWithCodeRequest,
  GenerateShareCodeRequest,
  ResidenceTypeResponse,
  ResidenceUserResponse,
  ResidenceResponse,
  TotalSummary,
  MyResidencesResponse,
  ResidenceWithSummaryResponse,
  ResidenceDeleteWithSummaryResponse,
  ShareCodeResponse,
  JoinResidenceResponse,
  GenerateShareCodeResponse,
  SharePackageResponse,
} from "./residence";

// Task
export type {
  CreateTaskRequest,
  UpdateTaskRequest,
  CreateTaskCompletionRequest,
  UpdateTaskCompletionRequest,
  CompletionImageInput,
  TaskCategoryResponse,
  TaskPriorityResponse,
  TaskFrequencyResponse,
  TaskUserResponse,
  TaskCompletionImageResponse,
  TaskCompletionResponse,
  TaskResponse,
  KanbanColumnResponse,
  KanbanBoardResponse,
  TaskWithSummaryResponse,
  TaskCompletionWithSummaryResponse,
  DeleteWithSummaryResponse,
} from "./task";

// Contractor
export type {
  CreateContractorRequest,
  UpdateContractorRequest,
  ContractorSpecialtyResponse,
  ContractorUserResponse,
  ContractorResponse,
  ToggleFavoriteResponse,
} from "./contractor";

// Document
export type { DocumentType } from "./document";
export type {
  CreateDocumentRequest,
  UpdateDocumentRequest,
  DocumentUserResponse,
  DocumentImageResponse,
  DocumentResponse,
} from "./document";

// Task Template
export type {
  TaskTemplateResponse,
  TaskTemplateCategoryGroup,
  TaskTemplatesGroupedResponse,
} from "./task-template";

// Lookups
export type { StaticDataResponse } from "./lookups";

// Subscription
export type { SubscriptionTier } from "./subscription";
export type {
  ProcessPurchaseRequest,
  SubscriptionResponse,
  TierLimitsResponse,
  UsageResponse,
  TierLimitsClientResponse,
  SubscriptionStatusResponse,
  UpgradeTriggerResponse,
  UpgradeTriggerDataResponse,
  FeatureBenefitResponse,
  PromotionResponse,
  PurchaseResponse,
} from "./subscription";

// Notification
export type { NotificationType } from "./notification";
export type {
  UpdatePreferencesRequest,
  RegisterDeviceRequest,
  UnregisterDeviceRequest,
  NotificationResponse,
  NotificationPreferencesResponse,
  DeviceResponse,
  UnreadCountResponse,
  NotificationListResponse,
} from "./notification";
