Type Alias GuildConfigContainer
GuildConfigContainer: { [key: string]: | undefined | { 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: 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: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)
[]; }; 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: ...
; } | { 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[]; } )
[]; }; 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; }; }; };} Type declaration
[key: string]:
| undefined
| {
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: 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: (
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
)[];
};
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: ...;
}
| { 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[];
}
)[];
};
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;
};
};
}