Variable GuildConfigSchemaConst
GuildConfigSchema: ZodObject< { ai_automod: ZodOptional< ZodObject< { actions: ZodDefault< ZodArray< ZodUnion< [ ZodObject< { delete_timeframe: ...
; duration: ...
; notify: ...
; reason: ...
; type: ...
; }, "strip", ZodTypeAny, { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; }, { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; }, >, ZodObject< { notify: ...
; reason: ...
; type: ...
}, "strip", ZodTypeAny, { notify?: ...
; reason?: ...
; type: ...
}, { notify?: ...
; reason?: ...
; type: ...
}, >, ZodObject< { duration: ...
; notify: ...
; reason: ...
; type: ...
}, "strip", ZodTypeAny, { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
}, { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
}, >, ], >, "many", >, >; automatic_actions: ZodOptional< ZodObject< { enabled: ZodDefault<ZodBoolean>; stops: ZodDefault< ZodRecord<ZodUnion<(...)
>, ZodArray<(...)
, (...)
>>, >; }, "strip", ZodTypeAny, { enabled: boolean; stops: Record< string, (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[], >; }, { enabled?: boolean; stops?: Record<string, (...)
[]> }, >, >; enabled: ZodDefault<ZodOptional<ZodBoolean>>; evaluate_after_attempts: ZodDefault<ZodNumber>; evaluation_cache_expires_in: ZodDefault<ZodNumber>; exception_regex_patterns: ZodDefault< ZodArray< ZodUnion<[ZodString, ZodTuple<[(...)
, (...)
], null>]>, "many", >, >; max_individual_scores: ZodOptional< ZodObject< { flirtation: ZodDefault<ZodNumber>; identity_attack: ZodDefault<ZodNumber>; incoherent: ZodDefault<ZodNumber>; insult: ZodDefault<ZodNumber>; obscene: ZodDefault<ZodNumber>; profanity: ZodDefault<ZodNumber>; severe_toxicity: ZodDefault<ZodNumber>; sexually_explicit: ZodDefault<ZodNumber>; spam: ZodDefault<ZodNumber>; threat: ZodDefault<ZodNumber>; toxicity: ZodDefault<ZodNumber>; unsubstantial: ZodDefault<ZodNumber>; }, "strip", ZodTypeAny, { flirtation: number; identity_attack: number; incoherent: number; insult: number; obscene: number; profanity: number; severe_toxicity: number; sexually_explicit: number; spam: number; threat: number; toxicity: number; unsubstantial: number; }, { flirtation?: number; identity_attack?: number; incoherent?: number; insult?: number; obscene?: number; profanity?: number; severe_toxicity?: number; sexually_explicit?: number; spam?: number; threat?: number; toxicity?: number; unsubstantial?: number; }, >, >; max_single_score: ZodDefault<ZodNumber>; max_total_score: ZodDefault<ZodNumber>; }, "strip", ZodTypeAny, { actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; automatic_actions?: { enabled: boolean; stops: Record< string, (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[], >; }; enabled: boolean; evaluate_after_attempts: number; evaluation_cache_expires_in: number; exception_regex_patterns: (
string | [string, string])
[]; max_individual_scores?: { flirtation: number; identity_attack: number; incoherent: number; insult: number; obscene: number; profanity: number; severe_toxicity: number; sexually_explicit: number; spam: number; threat: number; toxicity: number; unsubstantial: number; }; max_single_score: number; max_total_score: number; }, { actions?: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; automatic_actions?: { enabled?: boolean; stops?: Record< string, (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[], >; }; enabled?: boolean; evaluate_after_attempts?: number; evaluation_cache_expires_in?: number; exception_regex_patterns?: (
string | [string, string])
[]; max_individual_scores?: { flirtation?: number; identity_attack?: number; incoherent?: number; insult?: number; obscene?: number; profanity?: number; severe_toxicity?: number; sexually_explicit?: number; spam?: number; threat?: number; toxicity?: number; unsubstantial?: number; }; max_single_score?: number; max_total_score?: number; }, >, >; anti_member_join: ZodOptional< ZodObject< { ban_duration: ZodOptional<ZodNumber>; behavior: ZodDefault<ZodEnum<["kick", "ban"]>>; custom_reason: ZodOptional<ZodString>; enabled: ZodDefault<ZodOptional<ZodBoolean>>; ignore_bots: ZodDefault<ZodOptional<ZodBoolean>>; }, "strip", ZodTypeAny, { ban_duration?: number; behavior: "ban" | "kick"; custom_reason?: string; enabled: boolean; ignore_bots: boolean; }, { ban_duration?: number; behavior?: "ban" | "kick"; custom_reason?: string; enabled?: boolean; ignore_bots?: boolean; }, >, >; antispam: ZodOptional< ZodObject< { actions: ZodArray< ZodUnion< [ ZodObject< { delete_timeframe: ZodOptional<(...)
>; duration: ZodOptional<(...)
>; notify: ZodOptional<(...)
>; reason: ZodOptional<(...)
>; type: ZodLiteral<(...)
>; }, "strip", ZodTypeAny, { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; }, { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; }, >, ZodObject< { notify: ZodOptional<(...)
>; reason: ZodOptional<(...)
>; type: ZodLiteral<(...)
>; }, "strip", ZodTypeAny, { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; }, { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; }, >, ZodObject< { duration: ZodOptional<(...)
>; notify: ZodOptional<(...)
>; reason: ZodOptional<(...)
>; type: ZodLiteral<(...)
>; }, "strip", ZodTypeAny, { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; }, { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; }, >, ], >, "many", >; channels: ZodDefault< ZodObject< { list: ZodDefault<ZodArray<ZodType<(...)
, (...)
, (...)
>, "many">>; mode: ZodDefault<ZodEnum<[(...)
, (...)
]>>; }, "strip", ZodTypeAny, { list: string[]; mode: "exclude" | "include" }, { list?: string[]; mode?: "exclude" | "include" }, >, >; enabled: ZodDefault<ZodOptional<ZodBoolean>>; limit: ZodNumber; timeframe: ZodNumber; }, "strip", ZodTypeAny, { actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; channels: { list: string[]; mode: "exclude" | "include" }; enabled: boolean; limit: number; timeframe: number; }, { actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; channels?: { list?: string[]; mode?: "exclude" | "include" }; enabled?: boolean; limit: number; timeframe: number; }, >, >; auto_role: ZodOptional< ZodObject< { enabled: ZodDefault<ZodOptional<ZodBoolean>>; ignore_bots: ZodDefault<ZodOptional<ZodBoolean>>; roles: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; }, "strip", ZodTypeAny, { enabled: boolean; ignore_bots: boolean; roles: string[] }, { enabled?: boolean; ignore_bots?: boolean; roles?: string[] }, >, >; auto_triggers: ZodOptional< ZodObject< { enabled: ZodDefault<ZodBoolean>; global_disabled_channels: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; triggers: ZodDefault< ZodArray< ZodUnion< [ ZodObject< { buttons: ...
; enabled_channels: ...
; ignore_roles: ...
; ignore_users: ...
; message: ...
; type: ...
; }, "strip", ZodTypeAny, { buttons: ...
; enabled_channels: ...
; ignore_roles: ...
; ignore_users: ...
; message: ...
; type: ...
; }, { buttons?: ...
; enabled_channels?: ...
; ignore_roles?: ...
; ignore_users?: ...
; message: ...
; type: ...
; }, >, ZodObject< { action: ...
; enabled_channels: ...
; ignore_roles: ...
; ignore_users: ...
; must_contain: ...
; must_not_contain: ...
; roles: ...
; type: ...
; }, "strip", ZodTypeAny, { action: ...
; enabled_channels: ...
; ignore_roles: ...
; ignore_users: ...
; must_contain: ...
; must_not_contain: ...
; roles: ...
; type: ...
; }, { action: ...
; enabled_channels?: ...
; ignore_roles?: ...
; ignore_users?: ...
; must_contain?: ...
; must_not_contain?: ...
; roles?: ...
; type: ...
; }, >, ], >, "many", >, >; }, "strip", ZodTypeAny, { enabled: boolean; global_disabled_channels: string[]; triggers: (
| { buttons: { label: string; url: string }[]; enabled_channels: string[] | "all"; ignore_roles: string[]; ignore_users: string[]; message: string; type: "sticky_message"; } | { action: "assign_role" | "take_away_role"; enabled_channels: string[] | "all"; ignore_roles: string[]; ignore_users: string[]; must_contain: string[]; must_not_contain: string[]; roles: string[]; type: "member_status_update"; } )
[]; }, { enabled?: boolean; global_disabled_channels?: string[]; triggers?: (
| { buttons?: (...)
[]; enabled_channels?: (...)
[] | "all"; ignore_roles?: (...)
[]; ignore_users?: (...)
[]; message: string; type: "sticky_message"; } | { action: "assign_role" | "take_away_role"; enabled_channels?: (...)
[] | "all"; ignore_roles?: (...)
[]; ignore_users?: (...)
[]; must_contain?: (...)
[]; must_not_contain?: (...)
[]; roles?: (...)
[]; type: "member_status_update"; } )
[]; }, >, >; bump_reminder: ZodOptional< ZodObject< { disabled_channels: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; enabled: ZodOptional<ZodBoolean>; on_bump_content: ZodOptional<ZodString>; remind_after: ZodDefault<ZodNumber>; reminder_content: ZodOptional<ZodString>; }, "strip", ZodTypeAny, { disabled_channels: string[]; enabled?: boolean; on_bump_content?: string; remind_after: number; reminder_content?: string; }, { disabled_channels?: string[]; enabled?: boolean; on_bump_content?: string; remind_after?: number; reminder_content?: string; }, >, >; channel_archives: ZodOptional< ZodObject< { archive_category: ZodType<string, ZodTypeDef, string>; enabled: ZodDefault<ZodOptional<ZodBoolean>>; ignored_channels: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; }, "strip", ZodTypeAny, { archive_category: string; enabled: boolean; ignored_channels: string[]; }, { archive_category: string; enabled?: boolean; ignored_channels?: string[]; }, >, >; commands: ZodDefault< ZodObject< { channels: ZodDefault< ZodObject< { list: ZodDefault<ZodArray<ZodType<(...)
, (...)
, (...)
>, "many">>; mode: ZodDefault<ZodEnum<[(...)
, (...)
]>>; }, "strip", ZodTypeAny, { list: string[]; mode: "exclude" | "include" }, { list?: string[]; mode?: "exclude" | "include" }, >, >; disabled_commands: ZodDefault<ZodArray<ZodString, "many">>; mention_prefix: ZodDefault<ZodBoolean>; moderation_command_behavior: ZodDefault<ZodEnum<["delete", "default"]>>; ratelimiting: ZodOptional< ZodObject< { block_duration: ZodDefault<ZodNumber>; enabled: ZodDefault<ZodBoolean>; max_attempts: ZodDefault<ZodNumber>; overrides: ZodDefault< ZodRecord< ZodString, ZodObject<(...)
, (...)
, (...)
, (...)
, (...)
>, >, >; timeframe: ZodDefault<ZodNumber>; }, "strip", ZodTypeAny, { block_duration: number; enabled: boolean; max_attempts: number; overrides: Record< string, { block_duration: number; enabled: boolean; max_attempts: number; timeframe: number; }, >; timeframe: number; }, { block_duration?: number; enabled?: boolean; max_attempts?: number; overrides?: Record< string, { block_duration?: ...
; enabled?: ...
; max_attempts?: ...
; timeframe?: ...
; }, >; timeframe?: number; }, >, >; rerun_on_edit: ZodDefault<ZodBoolean>; respond_on_precondition_fail: ZodDefault<ZodBoolean>; troll_command_immune_users: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; }, "strip", ZodTypeAny, { channels: { list: string[]; mode: "exclude" | "include" }; disabled_commands: string[]; mention_prefix: boolean; moderation_command_behavior: "delete" | "default"; ratelimiting?: { block_duration: number; enabled: boolean; max_attempts: number; overrides: Record< string, { block_duration: number; enabled: boolean; max_attempts: number; timeframe: number; }, >; timeframe: number; }; rerun_on_edit: boolean; respond_on_precondition_fail: boolean; troll_command_immune_users: string[]; }, { channels?: { list?: string[]; mode?: "exclude" | "include" }; disabled_commands?: string[]; mention_prefix?: boolean; moderation_command_behavior?: "delete" | "default"; ratelimiting?: { block_duration?: number; enabled?: boolean; max_attempts?: number; overrides?: Record< string, { block_duration?: (...)
| (...)
; enabled?: (...)
| (...)
| (...)
; max_attempts?: (...)
| (...)
; timeframe?: (...)
| (...)
; }, >; timeframe?: number; }; rerun_on_edit?: boolean; respond_on_precondition_fail?: boolean; troll_command_immune_users?: string[]; }, >, >; debug_mode: ZodDefault<ZodBoolean>; echoing: ZodOptional< ZodObject< { allow_mentions: ZodDefault<ZodBoolean> }, "strip", ZodTypeAny, { allow_mentions: boolean }, { allow_mentions?: boolean }, >, >; extensions: ZodOptional< ZodObject< { disabled_extensions: ZodDefault<ZodArray<ZodString, "many">>; enabled: ZodOptional<ZodBoolean>; installed_extensions: ZodDefault<ZodArray<ZodString, "many">>; }, "strip", ZodTypeAny, { disabled_extensions: string[]; enabled?: boolean; installed_extensions: string[]; }, { disabled_extensions?: string[]; enabled?: boolean; installed_extensions?: string[]; }, >, >; infractions: ZodDefault< ZodObject< { dm_fallback: ZodDefault< ZodEnum<["none", "create_channel", "create_thread"]>, >; dm_fallback_channel_expires_in: ZodDefault<ZodOptional<ZodNumber>>; dm_fallback_parent_channel: ZodOptional< ZodType<string, ZodTypeDef, string>, >; points: ZodDefault< ZodObject< { ban: ZodDefault<ZodNumber>; clear: ZodDefault<ZodNumber>; kick: ZodDefault<ZodNumber>; massban: ZodDefault<ZodNumber>; masskick: ZodDefault<ZodNumber>; mod_message: ZodDefault<ZodNumber>; mute: ZodDefault<ZodNumber>; note: ZodDefault<ZodNumber>; reaction_clear: ZodDefault<ZodNumber>; role: ZodDefault<ZodNumber>; softban: ZodDefault<ZodNumber>; tempban: ZodDefault<ZodNumber>; timeout: ZodDefault<ZodNumber>; unban: ZodDefault<ZodNumber>; warning: ZodDefault<ZodNumber>; }, "strip", ZodTypeAny, { ban: number; clear: number; kick: number; massban: number; masskick: number; mod_message: number; mute: number; note: number; reaction_clear: number; role: number; softban: number; tempban: number; timeout: number; unban: number; warning: number; }, { ban?: number; clear?: number; kick?: number; massban?: number; masskick?: number; mod_message?: number; mute?: number; note?: number; reaction_clear?: number; role?: number; softban?: number; tempban?: number; timeout?: number; unban?: number; warning?: number; }, >, >; reason_template_placeholder_wrapper: ZodDefault<ZodString>; reason_templates: ZodDefault<ZodRecord<ZodString, ZodString>>; send_ids_to_user: ZodDefault<ZodBoolean>; }, "strip", ZodTypeAny, { dm_fallback: "none" | "create_channel" | "create_thread"; dm_fallback_channel_expires_in: number; dm_fallback_parent_channel?: string; points: { ban: number; clear: number; kick: number; massban: number; masskick: number; mod_message: number; mute: number; note: number; reaction_clear: number; role: number; softban: number; tempban: number; timeout: number; unban: number; warning: number; }; reason_template_placeholder_wrapper: string; reason_templates: Record<string, string>; send_ids_to_user: boolean; }, { dm_fallback?: "none" | "create_channel" | "create_thread"; dm_fallback_channel_expires_in?: number; dm_fallback_parent_channel?: string; points?: { ban?: number; clear?: number; kick?: number; massban?: number; masskick?: number; mod_message?: number; mute?: number; note?: number; reaction_clear?: number; role?: number; softban?: number; tempban?: number; timeout?: number; unban?: number; warning?: number; }; reason_template_placeholder_wrapper?: string; reason_templates?: Record<string, string>; send_ids_to_user?: boolean; }, >, >; logging: ZodOptional< ZodObject< { bulk_delete_send_json: ZodDefault<ZodBoolean>; default_enabled: ZodDefault<ZodBoolean>; enabled: ZodDefault<ZodBoolean>; exclusions: ZodDefault< ZodArray< ZodObject< { events: ZodOptional<ZodArray<(...)
, (...)
>>; mode: ZodDefault<ZodEnum<(...)
>>; snowflakes: ZodArray<ZodType<(...)
, (...)
, (...)
>, "many">; type: ZodEnum<[(...)
, (...)
, (...)
]>; }, "strip", ZodTypeAny, { events?: (...)
[]; mode: "exclude" | "include"; snowflakes: string[]; type: "channel" | "user" | "category_channel"; }, { events?: (...)
[]; mode?: "exclude" | "include"; snowflakes: string[]; type: "channel" | "user" | "category_channel"; }, >, "many", >, >; global_ignored_channels: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; hooks: ZodDefault< ZodRecord< ZodType<string, ZodTypeDef, string>, ZodType<string, ZodTypeDef, string>, >, >; overrides: ZodDefault< ZodArray< ZodUnion< [ ZodObject< { channel: ...
; enabled: ...
; events: ...
}, "strip", ZodTypeAny, { channel: ...
; enabled: ...
; events: ...
}, { channel: ...
; enabled: ...
; events: ...
}, >, ZodObject< { enabled: ...
; events: ...
}, "strip", ZodTypeAny, { enabled: ...
; events: ...
}, { enabled: ...
; events: ...
}, >, ], >, "many", >, >; primary_channel: ZodOptional<ZodType<string, ZodTypeDef, string>>; unsubscribed_events: ZodDefault< ZodArray<ZodEnum<[LogEventType, ...LogEventType[]]>, "many">, >; }, "strip", ZodTypeAny, { bulk_delete_send_json: boolean; default_enabled: boolean; enabled: boolean; exclusions: { events?: LogEventType[]; mode: "exclude" | "include"; snowflakes: string[]; type: "channel" | "user" | "category_channel"; }[]; global_ignored_channels: string[]; hooks: Record<string, string>; overrides: (
| { channel: string; enabled: true; events: [LogEventType, ...LogEventType[]]; } | { enabled: false; events: [LogEventType, ...LogEventType[]] } )
[]; primary_channel?: string; unsubscribed_events: LogEventType[]; }, { bulk_delete_send_json?: boolean; default_enabled?: boolean; enabled?: boolean; exclusions?: { events?: LogEventType[]; mode?: "exclude" | "include"; snowflakes: string[]; type: "channel" | "user" | "category_channel"; }[]; global_ignored_channels?: string[]; hooks?: Record<string, string>; overrides?: (
| { channel: string; enabled: true; events: [LogEventType, ...LogEventType[]]; } | { enabled: false; events: [LogEventType, ...LogEventType[]] } )
[]; primary_channel?: string; unsubscribed_events?: LogEventType[]; }, >, >; member_verification: ZodOptional< ZodObject< { alt_detection: ZodOptional< ZodObject< { actions: ZodOptional< ZodObject< { failVerification: ...
; moderationActions: ...
}, "strip", ZodTypeAny, { failVerification: ...
; moderationActions: ...
}, { failVerification?: ...
; moderationActions?: ...
}, >, >; enabled: ZodDefault<ZodOptional<ZodBoolean>>; }, "strip", ZodTypeAny, { actions?: { failVerification: boolean; moderationActions: (...)
[]; }; enabled: boolean; }, { actions?: { failVerification?: (...)
| (...)
| (...)
; moderationActions?: (...)
| (...)
; }; enabled?: boolean; }, >, >; channel: ZodOptional<ZodType<string, ZodTypeDef, string>>; conditions: ZodObject< { age_less_than: ZodOptional<ZodNumber>; always: ZodDefault<ZodBoolean>; no_avatar: ZodOptional<ZodBoolean>; }, "strip", ZodTypeAny, { age_less_than?: number; always: boolean; no_avatar?: boolean }, { age_less_than?: number; always?: boolean; no_avatar?: boolean }, >; enabled: ZodDefault<ZodOptional<ZodBoolean>>; expired_actions: ZodDefault< ZodArray< ZodUnion< [ ZodObject< { delete_timeframe: ...
; duration: ...
; notify: ...
; reason: ...
; type: ...
; }, "strip", ZodTypeAny, { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; }, { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; }, >, ZodObject< { notify: ...
; reason: ...
; type: ...
}, "strip", ZodTypeAny, { notify?: ...
; reason?: ...
; type: ...
}, { notify?: ...
; reason?: ...
; type: ...
}, >, ZodObject< { duration: ...
; notify: ...
; reason: ...
; type: ...
}, "strip", ZodTypeAny, { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
}, { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
}, >, ], >, "many", >, >; max_duration: ZodOptional<ZodNumber>; message_id_internal: ZodOptional<ZodType<string, ZodTypeDef, string>>; method: ZodDefault< ZodEnum< [ "channel_interaction", "dm_interaction", "channel_static_interaction", ], >, >; success_message: ZodOptional<ZodString>; unverified_roles: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; verification_message: ZodOptional<ZodString>; verified_roles: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; }, "strip", ZodTypeAny, { alt_detection?: { actions?: { failVerification: boolean; moderationActions: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; }; enabled: boolean; }; channel?: string; conditions: { age_less_than?: number; always: boolean; no_avatar?: boolean; }; enabled: boolean; expired_actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; max_duration?: number; message_id_internal?: string; method: | "channel_interaction" | "dm_interaction" | "channel_static_interaction"; success_message?: string; unverified_roles: string[]; verification_message?: string; verified_roles: string[]; }, { alt_detection?: { actions?: { failVerification?: boolean; moderationActions?: (...)
[]; }; enabled?: boolean; }; channel?: string; conditions: { age_less_than?: number; always?: boolean; no_avatar?: boolean; }; enabled?: boolean; expired_actions?: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; max_duration?: number; message_id_internal?: string; method?: | "channel_interaction" | "dm_interaction" | "channel_static_interaction"; success_message?: string; unverified_roles?: string[]; verification_message?: string; verified_roles?: string[]; }, >, >; message_reporting: ZodOptional< ZodObject< { action_required_permissions: ZodDefault< ZodObject< { ban: ZodDefault<ZodArray<ZodString, "many">>; ignore: ZodDefault<ZodArray<ZodString, "many">>; kick: ZodDefault<ZodArray<ZodString, "many">>; mute: ZodDefault<ZodArray<ZodString, "many">>; warn: ZodDefault<ZodArray<ZodString, "many">>; }, "strip", ZodTypeAny, { ban: string[]; ignore: string[]; kick: string[]; mute: string[]; warn: string[]; }, { ban?: string[]; ignore?: string[]; kick?: string[]; mute?: string[]; warn?: string[]; }, >, >; enabled: ZodDefault<ZodBoolean>; logging_channel: ZodOptional<ZodType<string, ZodTypeDef, string>>; permission_level: ZodOptional<ZodDefault<ZodNumber>>; permissions: ZodDefault<ZodArray<ZodString, "many">>; roles: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; users: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; }, "strip", ZodTypeAny, { action_required_permissions: { ban: string[]; ignore: string[]; kick: string[]; mute: string[]; warn: string[]; }; enabled: boolean; logging_channel?: string; permission_level?: number; permissions: string[]; roles: string[]; users: string[]; }, { action_required_permissions?: { ban?: string[]; ignore?: string[]; kick?: string[]; mute?: string[]; warn?: string[]; }; enabled?: boolean; logging_channel?: string; permission_level?: number; permissions?: string[]; roles?: string[]; users?: string[]; }, >, >; muting: ZodOptional< ZodObject< { role: ZodOptional<ZodType<string, ZodTypeDef, string>> }, "strip", ZodTypeAny, { role?: string }, { role?: string }, >, >; permissions: ZodDefault< ZodOptional< ZodObject< { check_discord_permissions: ZodDefault< ZodEnum< ["always", "during_automod", "during_manual_actions", "never"], >, >; command_permission_mode: ZodOptional< ZodEnum<["ignore", "overwrite", "check"]>, >; invincible: ZodOptional< ZodObject< { roles: ZodDefault<ZodArray<(...)
, (...)
>>; users: ZodDefault<ZodArray<(...)
, (...)
>>; }, "strip", ZodTypeAny, { roles: string[]; users: string[] }, { roles?: (...)
[]; users?: (...)
[] }, >, >; mode: ZodOptional< ZodDefault< ZodUnion< [ZodLiteral<(...)
>, ZodLiteral<(...)
>, ZodLiteral<(...)
>], >, >, >; }, "strip", ZodTypeAny, { check_discord_permissions: | "never" | "always" | "during_automod" | "during_manual_actions"; command_permission_mode?: "ignore" | "overwrite" | "check"; invincible?: { roles: string[]; users: string[] }; mode?: "discord" | "levels" | "layered"; }, { check_discord_permissions?: | "never" | "always" | "during_automod" | "during_manual_actions"; command_permission_mode?: "ignore" | "overwrite" | "check"; invincible?: { roles?: string[]; users?: string[] }; mode?: "discord" | "levels" | "layered"; }, >, >, >; prefix: ZodDefault<ZodString>; quick_mute: ZodOptional< ZodObject< { default_duration: ZodOptional<ZodDefault<ZodNumber>>; enabled: ZodDefault<ZodOptional<ZodBoolean>>; mute_clear_emoji: ZodOptional<ZodString>; mute_emoji: ZodOptional<ZodString>; reason: ZodOptional<ZodString>; }, "strip", ZodTypeAny, { default_duration?: number; enabled: boolean; mute_clear_emoji?: string; mute_emoji?: string; reason?: string; }, { default_duration?: number; enabled?: boolean; mute_clear_emoji?: string; mute_emoji?: string; reason?: string; }, >, >; raid_protection: ZodOptional< ZodObject< { action: ZodDefault< ZodEnum<["auto", "lock", "antijoin", "lock_and_antijoin", "none"]>, >; channel_mode: ZodDefault<ZodEnum<["exclude", "include"]>>; channels: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; enabled: ZodDefault<ZodOptional<ZodBoolean>>; member_actions: ZodDefault< ZodArray< ZodUnion< [ ZodObject< { delete_timeframe: ...
; duration: ...
; notify: ...
; reason: ...
; type: ...
; }, "strip", ZodTypeAny, { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; }, { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; }, >, ZodObject< { notify: ...
; reason: ...
; type: ...
}, "strip", ZodTypeAny, { notify?: ...
; reason?: ...
; type: ...
}, { notify?: ...
; reason?: ...
; type: ...
}, >, ZodObject< { duration: ...
; notify: ...
; reason: ...
; type: ...
}, "strip", ZodTypeAny, { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
}, { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
}, >, ], >, "many", >, >; send_log: ZodDefault<ZodOptional<ZodBoolean>>; threshold: ZodDefault<ZodNumber>; timeframe: ZodDefault<ZodNumber>; }, "strip", ZodTypeAny, { action: "none" | "lock" | "lock_and_antijoin" | "antijoin" | "auto"; channel_mode: "exclude" | "include"; channels: string[]; enabled: boolean; member_actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; send_log: boolean; threshold: number; timeframe: number; }, { action?: "none" | "lock" | "lock_and_antijoin" | "antijoin" | "auto"; channel_mode?: "exclude" | "include"; channels?: string[]; enabled?: boolean; member_actions?: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute"; } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; send_log?: boolean; threshold?: number; timeframe?: number; }, >, >; reaction_roles: ZodOptional< ZodObject< { enabled: ZodDefault<ZodOptional<ZodBoolean>>; ignore_bots: ZodDefault<ZodOptional<ZodBoolean>>; ratelimiting: ZodOptional< ZodObject< { block_duration: ZodDefault<ZodNumber>; enabled: ZodDefault<ZodOptional<ZodBoolean>>; max_attempts: ZodDefault<ZodNumber>; timeframe: ZodDefault<ZodNumber>; }, "strip", ZodTypeAny, { block_duration: number; enabled: boolean; max_attempts: number; timeframe: number; }, { block_duration?: number; enabled?: boolean; max_attempts?: number; timeframe?: number; }, >, >; }, "strip", ZodTypeAny, { enabled: boolean; ignore_bots: boolean; ratelimiting?: { block_duration: number; enabled: boolean; max_attempts: number; timeframe: number; }; }, { enabled?: boolean; ignore_bots?: boolean; ratelimiting?: { block_duration?: number; enabled?: boolean; max_attempts?: number; timeframe?: number; }; }, >, >; rule_moderation: ZodOptional< ZodObject< { enabled: ZodDefault<ZodBoolean>; global_disabled_channels: ZodDefault< ZodArray<ZodType<string, ZodTypeDef, string>, "many">, >; rules: ZodDefault< ZodArray< ZodUnion< [ ZodObject< { actions: ...
; bail: ...
; bypasses: ...
; domains: ...
; enabled: ...
; exceptions: ...
; for: ...
; is_bypasser: ...
; mode: ...
; name: ...
; scan_links_only: ...
; type: ...
; }, "strip", ZodTypeAny, { actions: ...
; bail: ...
; bypasses: ...
; domains: ...
; enabled: ...
; exceptions?: ...
; for?: ...
; is_bypasser: ...
; mode: ...
; name: ...
; scan_links_only: ...
; type: ...
; }, { actions?: ...
; bail?: ...
; bypasses?: ...
; domains?: ...
; enabled?: ...
; exceptions?: ...
; for?: ...
; is_bypasser?: ...
; mode?: ...
; name?: ...
; scan_links_only?: ...
; type: ...
; }, >, ZodObject< { actions: ...
; bail: ...
; bypasses: ...
; data: ...
; enabled: ...
; exceptions: ...
; for: ...
; is_bypasser: ...
; mode: ...
; name: ...
; type: ...
; }, "strip", ZodTypeAny, { actions: ...
; bail: ...
; bypasses: ...
; data: ...
; enabled: ...
; exceptions?: ...
; for?: ...
; is_bypasser: ...
; mode: ...
; name: ...
; type: ...
; }, { actions?: ...
; bail?: ...
; bypasses?: ...
; data?: ...
; enabled?: ...
; exceptions?: ...
; for?: ...
; is_bypasser?: ...
; mode?: ...
; name?: ...
; type: ...
; }, >, ZodObject< { actions: ...
; bail: ...
; bypasses: ...
; data: ...
; enabled: ...
; exceptions: ...
; for: ...
; is_bypasser: ...
; mode: ...
; name: ...
; type: ...
; }, "strip", ZodTypeAny, { actions: ...
; bail: ...
; bypasses: ...
; data: ...
; enabled: ...
; exceptions?: ...
; for?: ...
; is_bypasser: ...
; mode: ...
; name: ...
; type: ...
; }, { actions?: ...
; bail?: ...
; bypasses?: ...
; data?: ...
; enabled?: ...
; exceptions?: ...
; for?: ...
; is_bypasser?: ...
; mode?: ...
; name?: ...
; type: ...
; }, >, ], >, "many", >, >; }, "strip", ZodTypeAny, { enabled: boolean; global_disabled_channels: string[]; rules: (
| { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; domains: string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; scan_links_only: boolean; type: "domain_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; data: string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "mime_type_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; data: string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "file_extension_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; allow_internal_invites: boolean; allowed_invite_codes: string[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "anti_invite"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; patterns: (
string | [(...)
, (...)
])
[]; type: "regex_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; max_repeated_chars: number; max_repeated_words: number; mode: "normal" | "invert"; name: null | string; type: "repeated_text_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; max_mentions: number; max_role_mentions: number; max_user_mentions: number; mode: "normal" | "invert"; name: null | string; type: "mass_mention_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; inherit_from_word_filter: boolean; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; scan_embeds: boolean; tokens: string[]; type: "image_filter"; words: string[]; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; inherit_from_word_filter: boolean; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; tokens: string[]; type: "embed_filter"; words: string[]; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; excluded_domains_regex: string[]; excluded_link_regex: string[]; excluded_links: string[]; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; tokens: string[]; type: "EXPERIMENTAL_url_crawl"; words: string[]; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; score_thresholds: { hentai: number; porn: number; sexy: number }; type: "EXPERIMENTAL_nsfw_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; normalize: boolean; tokens: string[]; type: "word_filter"; words: string[]; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; check_mime_types: boolean; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; hashes: Record<string, null | string>; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "file_filter"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; flirtation_threshold: number; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; identity_attack_threshold: number; insult_threshold: number; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; profanity_threshold: number; severe_toxicity_threshold: number; sexual_explicit_threshold: number; threat_threshold: number; toxicity_threshold: number; type: "ai_scan"; } | { actions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; normalize: boolean; regex_patterns: string[]; tokens: string[]; type: "profile_filter"; words: string[]; } )
[]; }, { enabled?: boolean; global_disabled_channels?: string[]; rules?: (
| { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; domains?: (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; scan_links_only?: boolean; type: "domain_filter"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; data?: (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "mime_type_filter"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; data?: (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "file_extension_filter"; } | { actions?: (...)
[]; allow_internal_invites?: boolean; allowed_invite_codes?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "anti_invite"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; patterns?: (...)
[]; type: "regex_filter"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; max_repeated_chars?: number; max_repeated_words?: number; mode?: "normal" | "invert"; name?: null | string; type: "repeated_text_filter"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; max_mentions?: number; max_role_mentions?: number; max_user_mentions?: number; mode?: "normal" | "invert"; name?: null | string; type: "mass_mention_filter"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; inherit_from_word_filter?: boolean; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; scan_embeds?: boolean; tokens?: (...)
[]; type: "image_filter"; words?: (...)
[]; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; inherit_from_word_filter?: boolean; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; tokens?: (...)
[]; type: "embed_filter"; words?: (...)
[]; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; excluded_domains_regex?: (...)
[]; excluded_link_regex?: (...)
[]; excluded_links?: (...)
[]; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; tokens?: (...)
[]; type: "EXPERIMENTAL_url_crawl"; words?: (...)
[]; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; score_thresholds?: { hentai?: ...
; porn?: ...
; sexy?: ...
}; type: "EXPERIMENTAL_nsfw_filter"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; normalize?: boolean; tokens?: (...)
[]; type: "word_filter"; words?: (...)
[]; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; check_mime_types?: boolean; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; hashes?: Record<(...)
, (...)
>; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "file_filter"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; flirtation_threshold?: number; for?: { channels?: ...
; roles?: ...
; users?: ...
}; identity_attack_threshold?: number; insult_threshold?: number; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; profanity_threshold?: number; severe_toxicity_threshold?: number; sexual_explicit_threshold?: number; threat_threshold?: number; toxicity_threshold?: number; type: "ai_scan"; } | { actions?: (...)
[]; bail?: boolean; bypasses?: null | (...)
[]; enabled?: boolean; exceptions?: { channels?: ...
; roles?: ...
; users?: ...
}; for?: { channels?: ...
; roles?: ...
; users?: ...
}; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; normalize?: boolean; regex_patterns?: (...)
[]; tokens?: (...)
[]; type: "profile_filter"; words?: (...)
[]; } )
[]; }, >, >; survey_system: ZodOptional< ZodObject< { default_log_channel: ZodOptional< ZodType<string, ZodTypeDef, string>, >; enabled: ZodDefault<ZodBoolean>; surveys: ZodDefault< ZodRecord< ZodString, ZodObject< { description: ZodOptional<ZodString>; end_message: ZodOptional<ZodString>; log_channel: ZodOptional<ZodType<(...)
, (...)
, (...)
>>; name: ZodString; questions: ZodArray< ZodObject<(...)
, (...)
, (...)
, (...)
, (...)
>, "atleastone", >; required_channels: ZodDefault<ZodArray<(...)
, (...)
>>; required_permissions: ZodDefault<ZodArray<(...)
, (...)
>>; required_roles: ZodDefault<ZodArray<(...)
, (...)
>>; required_users: ZodDefault<ZodArray<(...)
, (...)
>>; }, "strip", ZodTypeAny, { description?: string; end_message?: string; log_channel?: string; name: string; questions: [ { default_value?: ...
; maxLength?: ...
; minLength?: ...
; placeholder?: ...
; question: ...
; required: ...
; type: ...
; }, ...{ default_value?: ...
; maxLength?: ...
; minLength?: ...
; placeholder?: ...
; question: ...
; required: ...
; type: ...
; }[], ]; required_channels: string[]; required_permissions: string[]; required_roles: string[]; required_users: string[]; }, { description?: string; end_message?: string; log_channel?: string; name: string; questions: [ { default_value?: ...
; maxLength?: ...
; minLength?: ...
; placeholder?: ...
; question: ...
; required?: ...
; type: ...
; }, ...{ default_value?: ...
; maxLength?: ...
; minLength?: ...
; placeholder?: ...
; question: ...
; required?: ...
; type: ...
; }[], ]; required_channels?: (...)
[]; required_permissions?: (...)
[]; required_roles?: (...)
[]; required_users?: (...)
[]; }, >, >, >; }, "strip", ZodTypeAny, { default_log_channel?: string; enabled: boolean; surveys: Record< string, { description?: string; end_message?: string; log_channel?: string; name: string; questions: [ { default_value?: string; maxLength?: number; minLength?: number; placeholder?: string; question: string; required: boolean; type: "paragraph" | "short"; }, ...{ default_value?: string; maxLength?: number; minLength?: number; placeholder?: string; question: string; required: boolean; type: "paragraph" | "short"; }[], ]; required_channels: string[]; required_permissions: string[]; required_roles: string[]; required_users: string[]; }, >; }, { default_log_channel?: string; enabled?: boolean; surveys?: Record< string, { description?: string; end_message?: string; log_channel?: string; name: string; questions: [ { default_value?: (...)
| (...)
; maxLength?: (...)
| (...)
; minLength?: (...)
| (...)
; placeholder?: (...)
| (...)
; question: string; required?: (...)
| (...)
| (...)
; type: (...)
| (...)
; }, ...{ default_value?: (...)
| (...)
; maxLength?: (...)
| (...)
; minLength?: (...)
| (...)
; placeholder?: (...)
| (...)
; question: string; required?: (...)
| (...)
| (...)
; type: (...)
| (...)
; }[], ]; required_channels?: string[]; required_permissions?: string[]; required_roles?: string[]; required_users?: string[]; }, >; }, >, >; welcomer: ZodOptional< ZodObject< { channel: ZodType<string, ZodTypeDef, string>; custom_message: ZodOptional<ZodString>; delete_after: ZodOptional<ZodNumber>; enabled: ZodDefault<ZodBoolean>; force_embeds: ZodDefault<ZodBoolean>; forced_embed_color: ZodOptional<ZodNumber>; mention: ZodDefault<ZodOptional<ZodBoolean>>; randomize: ZodDefault<ZodOptional<ZodBoolean>>; say_hi_button: ZodOptional< ZodObject< { emoji: ZodDefault<ZodOptional<ZodString>>; enabled: ZodDefault<ZodOptional<ZodBoolean>>; expire_after: ZodNullable<ZodDefault<ZodNumber>>; label: ZodDefault<ZodOptional<ZodString>>; reply: ZodDefault<ZodOptional<ZodString>>; }, "strip", ZodTypeAny, { emoji: string; enabled: boolean; expire_after: null | number; label: string; reply: string; }, { emoji?: string; enabled?: boolean; expire_after?: null | number; label?: string; reply?: string; }, >, >; }, "strip", ZodTypeAny, { channel: string; custom_message?: string; delete_after?: number; enabled: boolean; force_embeds: boolean; forced_embed_color?: number; mention: boolean; randomize: boolean; say_hi_button?: { emoji: string; enabled: boolean; expire_after: null | number; label: string; reply: string; }; }, { channel: string; custom_message?: string; delete_after?: number; enabled?: boolean; force_embeds?: boolean; forced_embed_color?: number; mention?: boolean; randomize?: boolean; say_hi_button?: { emoji?: string; enabled?: boolean; expire_after?: null | number; label?: string; reply?: string; }; }, >, >; }, "strip", ZodTypeAny, { ai_automod?: { actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; automatic_actions?: { enabled: boolean; stops: Record< string, (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[], >; }; enabled: boolean; evaluate_after_attempts: number; evaluation_cache_expires_in: number; exception_regex_patterns: (
string | [string, string])
[]; max_individual_scores?: { flirtation: number; identity_attack: number; incoherent: number; insult: number; obscene: number; profanity: number; severe_toxicity: number; sexually_explicit: number; spam: number; threat: number; toxicity: number; unsubstantial: number; }; max_single_score: number; max_total_score: number; }; anti_member_join?: { ban_duration?: number; behavior: "ban" | "kick"; custom_reason?: string; enabled: boolean; ignore_bots: boolean; }; antispam?: { actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; channels: { list: string[]; mode: "exclude" | "include" }; enabled: boolean; limit: number; timeframe: number; }; auto_role?: { enabled: boolean; ignore_bots: boolean; roles: string[] }; auto_triggers?: { enabled: boolean; global_disabled_channels: string[]; triggers: (
| { buttons: { label: string; url: string }[]; enabled_channels: string[] | "all"; ignore_roles: string[]; ignore_users: string[]; message: string; type: "sticky_message"; } | { action: "assign_role" | "take_away_role"; enabled_channels: string[] | "all"; ignore_roles: string[]; ignore_users: string[]; must_contain: string[]; must_not_contain: string[]; roles: string[]; type: "member_status_update"; } )
[]; }; bump_reminder?: { disabled_channels: string[]; enabled?: boolean; on_bump_content?: string; remind_after: number; reminder_content?: string; }; channel_archives?: { archive_category: string; enabled: boolean; ignored_channels: string[]; }; commands: { channels: { list: string[]; mode: "exclude" | "include" }; disabled_commands: string[]; mention_prefix: boolean; moderation_command_behavior: "delete" | "default"; ratelimiting?: { block_duration: number; enabled: boolean; max_attempts: number; overrides: Record< string, { block_duration: number; enabled: boolean; max_attempts: number; timeframe: number; }, >; timeframe: number; }; rerun_on_edit: boolean; respond_on_precondition_fail: boolean; troll_command_immune_users: string[]; }; debug_mode: boolean; echoing?: { allow_mentions: boolean }; extensions?: { disabled_extensions: string[]; enabled?: boolean; installed_extensions: string[]; }; infractions: { dm_fallback: "none" | "create_channel" | "create_thread"; dm_fallback_channel_expires_in: number; dm_fallback_parent_channel?: string; points: { ban: number; clear: number; kick: number; massban: number; masskick: number; mod_message: number; mute: number; note: number; reaction_clear: number; role: number; softban: number; tempban: number; timeout: number; unban: number; warning: number; }; reason_template_placeholder_wrapper: string; reason_templates: Record<string, string>; send_ids_to_user: boolean; }; logging?: { bulk_delete_send_json: boolean; default_enabled: boolean; enabled: boolean; exclusions: { events?: LogEventType[]; mode: "exclude" | "include"; snowflakes: string[]; type: "channel" | "user" | "category_channel"; }[]; global_ignored_channels: string[]; hooks: Record<string, string>; overrides: (
| { channel: string; enabled: true; events: [LogEventType, ...LogEventType[]]; } | { enabled: false; events: [LogEventType, ...LogEventType[]] } )
[]; primary_channel?: string; unsubscribed_events: LogEventType[]; }; member_verification?: { alt_detection?: { actions?: { failVerification: boolean; moderationActions: (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify: ...
; reason?: ...
; type: ...
} | { count: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[]; }; enabled: boolean; }; channel?: string; conditions: { age_less_than?: number; always: boolean; no_avatar?: boolean; }; enabled: boolean; expired_actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; max_duration?: number; message_id_internal?: string; method: | "channel_interaction" | "dm_interaction" | "channel_static_interaction"; success_message?: string; unverified_roles: string[]; verification_message?: string; verified_roles: string[]; }; message_reporting?: { action_required_permissions: { ban: string[]; ignore: string[]; kick: string[]; mute: string[]; warn: string[]; }; enabled: boolean; logging_channel?: string; permission_level?: number; permissions: string[]; roles: string[]; users: string[]; }; muting?: { role?: string }; permissions: { check_discord_permissions: | "never" | "always" | "during_automod" | "during_manual_actions"; command_permission_mode?: "ignore" | "overwrite" | "check"; invincible?: { roles: string[]; users: string[] }; mode?: "discord" | "levels" | "layered"; }; prefix: string; quick_mute?: { default_duration?: number; enabled: boolean; mute_clear_emoji?: string; mute_emoji?: string; reason?: string; }; raid_protection?: { action: "none" | "lock" | "lock_and_antijoin" | "antijoin" | "auto"; channel_mode: "exclude" | "include"; channels: string[]; enabled: boolean; member_actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify: true; reason?: string; type: "verbal_warn" } | { count: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; send_log: boolean; threshold: number; timeframe: number; }; reaction_roles?: { enabled: boolean; ignore_bots: boolean; ratelimiting?: { block_duration: number; enabled: boolean; max_attempts: number; timeframe: number; }; }; rule_moderation?: { enabled: boolean; global_disabled_channels: string[]; rules: (
| { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; domains: string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; scan_links_only: boolean; type: "domain_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; data: string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "mime_type_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; data: string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "file_extension_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; allow_internal_invites: boolean; allowed_invite_codes: string[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "anti_invite"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; patterns: (
string | [string, string])
[]; type: "regex_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; max_repeated_chars: number; max_repeated_words: number; mode: "normal" | "invert"; name: null | string; type: "repeated_text_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; max_mentions: number; max_role_mentions: number; max_user_mentions: number; mode: "normal" | "invert"; name: null | string; type: "mass_mention_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; inherit_from_word_filter: boolean; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; scan_embeds: boolean; tokens: string[]; type: "image_filter"; words: string[]; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; inherit_from_word_filter: boolean; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; tokens: string[]; type: "embed_filter"; words: string[]; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; excluded_domains_regex: string[]; excluded_link_regex: string[]; excluded_links: string[]; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; tokens: string[]; type: "EXPERIMENTAL_url_crawl"; words: string[]; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; score_thresholds: { hentai: number; porn: number; sexy: number }; type: "EXPERIMENTAL_nsfw_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; normalize: boolean; tokens: string[]; type: "word_filter"; words: string[]; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; check_mime_types: boolean; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; hashes: Record<string, null | string>; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; type: "file_filter"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; flirtation_threshold: number; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; identity_attack_threshold: number; insult_threshold: number; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; profanity_threshold: number; severe_toxicity_threshold: number; sexual_explicit_threshold: number; threat_threshold: number; toxicity_threshold: number; type: "ai_scan"; } | { actions: (
| { delete_timeframe?: (...)
| (...)
; duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "ban"; } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "kick"; } | { duration?: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "mute"; } | { duration?: (...)
| (...)
; mode: (...)
| (...)
; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; roles: (...)
[]; type: "role"; } | { type: "none" } | { notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "warn"; } | { notify: true; reason?: (...)
| (...)
; type: "verbal_warn" } | { count: number; notify?: (...)
| (...)
| (...)
; reason?: (...)
| (...)
; type: "clear"; } | { type: "delete_message" } )
[]; bail: boolean; bypasses: null | string[]; enabled: boolean; exceptions?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; for?: { channels?: (...)
[]; roles?: (...)
[]; users?: (...)
[] }; is_bypasser: boolean; mode: "normal" | "invert"; name: null | string; normalize: boolean; regex_patterns: string[]; tokens: string[]; type: "profile_filter"; words: string[]; } )
[]; }; survey_system?: { default_log_channel?: string; enabled: boolean; surveys: Record< string, { description?: string; end_message?: string; log_channel?: string; name: string; questions: [ { default_value?: string; maxLength?: number; minLength?: number; placeholder?: string; question: string; required: boolean; type: "paragraph" | "short"; }, ...{ default_value?: string; maxLength?: number; minLength?: number; placeholder?: string; question: string; required: boolean; type: "paragraph" | "short"; }[], ]; required_channels: string[]; required_permissions: string[]; required_roles: string[]; required_users: string[]; }, >; }; welcomer?: { channel: string; custom_message?: string; delete_after?: number; enabled: boolean; force_embeds: boolean; forced_embed_color?: number; mention: boolean; randomize: boolean; say_hi_button?: { emoji: string; enabled: boolean; expire_after: null | number; label: string; reply: string; }; }; }, { ai_automod?: { actions?: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; automatic_actions?: { enabled?: boolean; stops?: Record< string, (
| { delete_timeframe?: ...
; duration?: ...
; notify?: ...
; reason?: ...
; type: ...
; } | { notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { duration?: ...
; mode: ...
; notify?: ...
; reason?: ...
; roles: ...
; type: ...
; } | { type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { notify?: ...
; reason?: ...
; type: ...
} | { count?: ...
; notify?: ...
; reason?: ...
; type: ...
} | { type: ...
} )
[], >; }; enabled?: boolean; evaluate_after_attempts?: number; evaluation_cache_expires_in?: number; exception_regex_patterns?: (
string | [string, string])
[]; max_individual_scores?: { flirtation?: number; identity_attack?: number; incoherent?: number; insult?: number; obscene?: number; profanity?: number; severe_toxicity?: number; sexually_explicit?: number; spam?: number; threat?: number; toxicity?: number; unsubstantial?: number; }; max_single_score?: number; max_total_score?: number; }; anti_member_join?: { ban_duration?: number; behavior?: "ban" | "kick"; custom_reason?: string; enabled?: boolean; ignore_bots?: boolean; }; antispam?: { actions: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; channels?: { list?: string[]; mode?: "exclude" | "include" }; enabled?: boolean; limit: number; timeframe: number; }; auto_role?: { enabled?: boolean; ignore_bots?: boolean; roles?: string[] }; auto_triggers?: { enabled?: boolean; global_disabled_channels?: string[]; triggers?: (
| { buttons?: { label: ...
; url: ...
}[]; enabled_channels?: string[] | "all"; ignore_roles?: string[]; ignore_users?: string[]; message: string; type: "sticky_message"; } | { action: "assign_role" | "take_away_role"; enabled_channels?: string[] | "all"; ignore_roles?: string[]; ignore_users?: string[]; must_contain?: string[]; must_not_contain?: string[]; roles?: string[]; type: "member_status_update"; } )
[]; }; bump_reminder?: { disabled_channels?: string[]; enabled?: boolean; on_bump_content?: string; remind_after?: number; reminder_content?: string; }; channel_archives?: { archive_category: string; enabled?: boolean; ignored_channels?: string[]; }; commands?: { channels?: { list?: string[]; mode?: "exclude" | "include" }; disabled_commands?: string[]; mention_prefix?: boolean; moderation_command_behavior?: "delete" | "default"; ratelimiting?: { block_duration?: number; enabled?: boolean; max_attempts?: number; overrides?: Record< string, { block_duration?: number; enabled?: boolean; max_attempts?: number; timeframe?: number; }, >; timeframe?: number; }; rerun_on_edit?: boolean; respond_on_precondition_fail?: boolean; troll_command_immune_users?: string[]; }; debug_mode?: boolean; echoing?: { allow_mentions?: boolean }; extensions?: { disabled_extensions?: string[]; enabled?: boolean; installed_extensions?: string[]; }; infractions?: { dm_fallback?: "none" | "create_channel" | "create_thread"; dm_fallback_channel_expires_in?: number; dm_fallback_parent_channel?: string; points?: { ban?: number; clear?: number; kick?: number; massban?: number; masskick?: number; mod_message?: number; mute?: number; note?: number; reaction_clear?: number; role?: number; softban?: number; tempban?: number; timeout?: number; unban?: number; warning?: number; }; reason_template_placeholder_wrapper?: string; reason_templates?: Record<string, string>; send_ids_to_user?: boolean; }; logging?: { bulk_delete_send_json?: boolean; default_enabled?: boolean; enabled?: boolean; exclusions?: { events?: LogEventType[]; mode?: "exclude" | "include"; snowflakes: string[]; type: "channel" | "user" | "category_channel"; }[]; global_ignored_channels?: string[]; hooks?: Record<string, string>; overrides?: (
| { channel: string; enabled: true; events: [LogEventType, ...LogEventType[]]; } | { enabled: false; events: [LogEventType, ...LogEventType[]] } )
[]; primary_channel?: string; unsubscribed_events?: LogEventType[]; }; member_verification?: { alt_detection?: { actions?: { failVerification?: boolean; moderationActions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; }; enabled?: boolean; }; channel?: string; conditions: { age_less_than?: number; always?: boolean; no_avatar?: boolean; }; enabled?: boolean; expired_actions?: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; max_duration?: number; message_id_internal?: string; method?: | "channel_interaction" | "dm_interaction" | "channel_static_interaction"; success_message?: string; unverified_roles?: string[]; verification_message?: string; verified_roles?: string[]; }; message_reporting?: { action_required_permissions?: { ban?: string[]; ignore?: string[]; kick?: string[]; mute?: string[]; warn?: string[]; }; enabled?: boolean; logging_channel?: string; permission_level?: number; permissions?: string[]; roles?: string[]; users?: string[]; }; muting?: { role?: string }; permissions?: { check_discord_permissions?: | "never" | "always" | "during_automod" | "during_manual_actions"; command_permission_mode?: "ignore" | "overwrite" | "check"; invincible?: { roles?: string[]; users?: string[] }; mode?: "discord" | "levels" | "layered"; }; prefix?: string; quick_mute?: { default_duration?: number; enabled?: boolean; mute_clear_emoji?: string; mute_emoji?: string; reason?: string; }; raid_protection?: { action?: "none" | "lock" | "lock_and_antijoin" | "antijoin" | "auto"; channel_mode?: "exclude" | "include"; channels?: string[]; enabled?: boolean; member_actions?: (
| { delete_timeframe?: number; duration?: number; notify?: boolean; reason?: string; type: "ban"; } | { notify?: boolean; reason?: string; type: "kick" } | { duration?: number; notify?: boolean; reason?: string; type: "mute" } | { duration?: number; mode: "give" | "take"; notify?: boolean; reason?: string; roles: string[]; type: "role"; } | { type: "none" } | { notify?: boolean; reason?: string; type: "warn" } | { notify?: true; reason?: string; type: "verbal_warn" } | { count?: number; notify?: boolean; reason?: string; type: "clear" } | { type: "delete_message" } )
[]; send_log?: boolean; threshold?: number; timeframe?: number; }; reaction_roles?: { enabled?: boolean; ignore_bots?: boolean; ratelimiting?: { block_duration?: number; enabled?: boolean; max_attempts?: number; timeframe?: number; }; }; rule_moderation?: { enabled?: boolean; global_disabled_channels?: string[]; rules?: (
| { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; domains?: string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; scan_links_only?: boolean; type: "domain_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; data?: string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "mime_type_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; data?: string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "file_extension_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; allow_internal_invites?: boolean; allowed_invite_codes?: string[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "anti_invite"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; patterns?: ((...)
| (...))
[]; type: "regex_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; max_repeated_chars?: number; max_repeated_words?: number; mode?: "normal" | "invert"; name?: null | string; type: "repeated_text_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; max_mentions?: number; max_role_mentions?: number; max_user_mentions?: number; mode?: "normal" | "invert"; name?: null | string; type: "mass_mention_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; inherit_from_word_filter?: boolean; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; scan_embeds?: boolean; tokens?: string[]; type: "image_filter"; words?: string[]; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; inherit_from_word_filter?: boolean; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; tokens?: string[]; type: "embed_filter"; words?: string[]; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; excluded_domains_regex?: string[]; excluded_link_regex?: string[]; excluded_links?: string[]; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; tokens?: string[]; type: "EXPERIMENTAL_url_crawl"; words?: string[]; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; score_thresholds?: { hentai?: (...)
| (...)
; porn?: (...)
| (...)
; sexy?: (...)
| (...)
; }; type: "EXPERIMENTAL_nsfw_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; normalize?: boolean; tokens?: string[]; type: "word_filter"; words?: string[]; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; check_mime_types?: boolean; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; hashes?: Record<string, (...)
| (...)
>; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; type: "file_filter"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; flirtation_threshold?: number; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; identity_attack_threshold?: number; insult_threshold?: number; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; profanity_threshold?: number; severe_toxicity_threshold?: number; sexual_explicit_threshold?: number; threat_threshold?: number; toxicity_threshold?: number; type: "ai_scan"; } | { actions?: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; bail?: boolean; bypasses?: null | string[]; enabled?: boolean; exceptions?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; for?: { channels?: (...)
| (...)
; roles?: (...)
| (...)
; users?: (...)
| (...)
; }; is_bypasser?: boolean; mode?: "normal" | "invert"; name?: null | string; normalize?: boolean; regex_patterns?: string[]; tokens?: string[]; type: "profile_filter"; words?: string[]; } )
[]; }; survey_system?: { default_log_channel?: string; enabled?: boolean; surveys?: Record< string, { description?: string; end_message?: string; log_channel?: string; name: string; questions: [ { default_value?: string; maxLength?: number; minLength?: number; placeholder?: string; question: string; required?: boolean; type: "paragraph" | "short"; }, ...{ default_value?: string; maxLength?: number; minLength?: number; placeholder?: string; question: string; required?: boolean; type: "paragraph" | "short"; }[], ]; required_channels?: string[]; required_permissions?: string[]; required_roles?: string[]; required_users?: string[]; }, >; }; welcomer?: { channel: string; custom_message?: string; delete_after?: number; enabled?: boolean; force_embeds?: boolean; forced_embed_color?: number; mention?: boolean; randomize?: boolean; say_hi_button?: { emoji?: string; enabled?: boolean; expire_after?: null | number; label?: string; reply?: string; }; }; },> = ...
The configuration object schema. Times are in milliseconds.