export { defineModule } from "./module";
export type { DefineModuleParams, SlackOptions } from "./module";
export { permissions } from "./lib/permissions.generated";
// Optional Slack destination (gated by the `slack` defineModule option).
export { SLACK_WORKSPACE_INTEGRATION_STATUSES } from "./db/slackWorkspaceIntegration";
// Concrete Slack DestinationAdapter — the module auto-wires this when `slack` is
// enabled; exported for advanced/manual composition and tests.
export {
  createSlackDestinationAdapter,
  type CreateSlackDestinationAdapterDeps,
  type SlackWorkspaceForAdapter,
} from "./lib/slackDestinationAdapter";
// Channel-adapter ports the host app implements/composes and injects via
// defineModule({ adapters }).
export type {
  DestinationAdapter,
  DispatchAdapters,
  EmailAdapter,
  InAppAdapter,
  RecipientProfile,
  ResolveRecipientFn,
} from "./lib/dispatchAdapters";
export {
  NOTIFICATION_DELIVERY_STATUSES,
  NOTIFICATION_ENGAGEMENT_STATUSES,
} from "./db/notification";
export { NOTIFICATION_EVENT_STATUSES } from "./db/notificationEvent";
// Cross-module event-ingress contract (the stable seam for emitters via a
// host-app emitNotificationEvent helper). See lib/events.ts.
export {
  NOTIFICATION_REASONS,
  type NotificationEventPayload,
  type NotificationReason,
  type NotificationRecipientHint,
} from "./lib/events";
