import type { APIEmbed } from 'discord.js' export type Config = { owners: string[] guilds: string[] moderation?: { roles: string[] cure?: { defaultName: string } log?: { channel: string thread?: string } } rolePresets?: { checkExpiredEvery: number guilds: Record> } messageScan?: { allowedAttachmentMimeTypes: string[] filter: { roles?: string[] users?: string[] channels?: string[] whitelist: boolean } humanCorrections: { falsePositiveLabel: string allow?: { users?: string[] members?: { permissions?: bigint roles?: string[] } } } responses: ConfigMessageScanResponse[] } logLevel: 'none' | 'error' | 'warn' | 'info' | 'log' | 'trace' | 'debug' api: { url: string disconnectLimit?: number } } export type RolePresetConfig = { give: string[] take: string[] } export type ConfigMessageScanResponse = { triggers: { text?: Array image?: Array } filterOverride?: NonNullable['filter'] response: ConfigMessageScanResponseMessage | null } export type ConfigMessageScanResponseLabelConfig = { /** * Label name */ label: string /** * Confidence threshold */ threshold: number } export type ConfigMessageScanResponseMessage = APIEmbed