// Discord plugin module implements runtime api.monitor behavior.
export {
  allowListMatches,
  buildDiscordMediaPayload,
  createDiscordMessageHandler,
  createDiscordNativeCommand,
  isDiscordGroupAllowedByPolicy,
  monitorDiscordProvider,
  normalizeDiscordAllowList,
  normalizeDiscordSlug,
  registerDiscordListener,
  resolveDiscordChannelConfig,
  resolveDiscordChannelConfigWithFallback,
  resolveDiscordCommandAuthorized,
  resolveDiscordGuildEntry,
  resolveDiscordReplyTarget,
  resolveDiscordShouldRequireMention,
  resolveGroupDmAllow,
  sanitizeDiscordThreadName,
  shouldEmitDiscordReactionNotification,
  type DiscordAllowList,
  type DiscordChannelConfigResolved,
  type DiscordGuildEntryResolved,
  type DiscordMessageEvent,
  type DiscordMessageHandler,
  type MonitorDiscordOpts,
} from "./src/monitor.js";
export {
  createDiscordGatewayPlugin,
  resolveDiscordGatewayIntents,
  waitForDiscordGatewayPluginRegistration,
} from "./src/monitor/gateway-plugin.js";
export {
  clearGateways,
  getGateway,
  registerGateway,
  unregisterGateway,
} from "./src/monitor/gateway-registry.js";
export {
  clearPresences,
  getPresence,
  presenceCacheSize,
  setPresence,
} from "./src/monitor/presence-cache.js";
export {
  DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS,
  DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS,
  DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS,
  DISCORD_DEFAULT_LISTENER_TIMEOUT_MS,
  isAbortError,
  mergeAbortSignals,
  normalizeDiscordInboundWorkerTimeoutMs,
  normalizeDiscordListenerTimeoutMs,
  runDiscordTaskWithTimeout,
} from "./src/monitor/timeouts.js";
