// approval
export {
  defineModule as defineApprovalModule,
  permissions as approvalPermissions,
} from "./modules/approval";
// account-payable
export {
  defineModule as defineAccountPayableModule,
  permissions as accountPayablePermissions,
} from "./modules/account-payable";
// accounting-event
export {
  defineModule as defineAccountingEventModule,
  permissions as accountingEventPermissions,
} from "./modules/accounting-event";
// audit
export {
  defineModule as defineAuditModule,
  permissions as auditPermissions,
} from "./modules/audit";
// business-partner
export {
  defineModule as defineBusinessPartnerModule,
  permissions as businessPartnerPermissions,
} from "./modules/business-partner";
// coa-management
export {
  defineModule as defineCoaManagementModule,
  permissions as coaManagementPermissions,
} from "./modules/coa-management";
// financial-accounting
export {
  defineModule as defineFinancialAccountingModule,
  permissions as financialAccountingPermissions,
} from "./modules/financial-accounting";
// inventory
export {
  defineModule as defineInventoryModule,
  permissions as inventoryPermissions,
} from "./modules/inventory";
// item-management
export {
  defineModule as defineItemManagementModule,
  permissions as itemManagementPermissions,
} from "./modules/item-management";
// manufacturing
export {
  defineModule as defineManufacturingModule,
  permissions as manufacturingPermissions,
} from "./modules/manufacturing";
// notification (Slack destination is bundled, gated by the `slack` option)
export {
  defineModule as defineNotificationModule,
  permissions as notificationPermissions,
  NOTIFICATION_DELIVERY_STATUSES,
  NOTIFICATION_ENGAGEMENT_STATUSES,
  NOTIFICATION_EVENT_STATUSES,
  NOTIFICATION_REASONS,
  SLACK_WORKSPACE_INTEGRATION_STATUSES,
  createSlackDestinationAdapter,
  type DestinationAdapter as NotificationDestinationAdapter,
  type DispatchAdapters as NotificationDispatchAdapters,
  type EmailAdapter as NotificationEmailAdapter,
  type InAppAdapter as NotificationInAppAdapter,
  type NotificationEventPayload,
  type NotificationReason,
  type NotificationRecipientHint,
  type RecipientProfile as NotificationRecipientProfile,
  type ResolveRecipientFn as NotificationResolveRecipientFn,
  type SlackOptions as NotificationSlackOptions,
  type CreateSlackDestinationAdapterDeps,
  type SlackWorkspaceForAdapter,
} from "./modules/notification";
// organization
export {
  defineModule as defineOrganizationModule,
  permissions as organizationPermissions,
} from "./modules/organization";
// pipeline-management
export {
  defineModule as definePipelineManagementModule,
  permissions as pipelineManagementPermissions,
  type PipelineManagementModule,
} from "./modules/pipeline-management";
// primitives
export {
  defineModule as definePrimitivesModule,
  permissions as primitivesPermissions,
} from "./modules/primitives";
// product-management
export {
  defineModule as defineProductManagementModule,
  permissions as productManagementPermissions,
} from "./modules/product-management";
// purchase
export {
  defineModule as definePurchaseModule,
  permissions as purchasePermissions,
} from "./modules/purchase";
// sales
export {
  defineModule as defineSalesModule,
  permissions as salesPermissions,
} from "./modules/sales";
// user-management
export {
  defineModule as defineUserManagementModule,
  permissions as userManagementPermissions,
} from "./modules/user-management";
