Hierarchy (View Summary, Expand)

Implements

Constructors

Properties

application: Application
client: BaseClient
config: GuildConfigContainer = ...
configPath: string = ...
configSchemaInfo: string = "https://raw.githubusercontent.com/onesoft-sudo/sudobot/main/config/schema/config.json"
configSchemaPath: string = ...
extensionMetaSchemaPath: string = ...
guildConfigContainerSchema: ZodRecord<
    ZodString,
    ZodUnion<
        [
            ZodOptional<
                ZodObject<
                    {
                        ai_automod: ZodOptional<
                            ZodObject<
                                {
                                    actions: ZodDefault<ZodArray<(...), (...)>>;
                                    automatic_actions: ZodOptional<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    evaluate_after_attempts: ZodDefault<ZodNumber>;
                                    evaluation_cache_expires_in: ZodDefault<ZodNumber>;
                                    exception_regex_patterns: ZodDefault<ZodArray<(...), (...)>>;
                                    max_individual_scores: ZodOptional<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    max_single_score: ZodDefault<ZodNumber>;
                                    max_total_score: ZodDefault<ZodNumber>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    actions: (
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                    )[];
                                    automatic_actions?: { enabled: ...; stops: ... };
                                    enabled: boolean;
                                    evaluate_after_attempts: number;
                                    evaluation_cache_expires_in: number;
                                    exception_regex_patterns: ((...) | (...))[];
                                    max_individual_scores?: {
                                        flirtation: ...;
                                        identity_attack: ...;
                                        incoherent: ...;
                                        insult: ...;
                                        obscene: ...;
                                        profanity: ...;
                                        severe_toxicity: ...;
                                        sexually_explicit: ...;
                                        spam: ...;
                                        threat: ...;
                                        toxicity: ...;
                                        unsubstantial: ...;
                                    };
                                    max_single_score: number;
                                    max_total_score: number;
                                },
                                {
                                    actions?: (...)[];
                                    automatic_actions?: { enabled?: ...; stops?: ... };
                                    enabled?: boolean;
                                    evaluate_after_attempts?: number;
                                    evaluation_cache_expires_in?: number;
                                    exception_regex_patterns?: (...)[];
                                    max_individual_scores?: {
                                        flirtation?: ...;
                                        identity_attack?: ...;
                                        incoherent?: ...;
                                        insult?: ...;
                                        obscene?: ...;
                                        profanity?: ...;
                                        severe_toxicity?: ...;
                                        sexually_explicit?: ...;
                                        spam?: ...;
                                        threat?: ...;
                                        toxicity?: ...;
                                        unsubstantial?: ...;
                                    };
                                    max_single_score?: number;
                                    max_total_score?: number;
                                },
                            >,
                        >;
                        anti_member_join: ZodOptional<
                            ZodObject<
                                {
                                    ban_duration: ZodOptional<ZodNumber>;
                                    behavior: ZodDefault<ZodEnum<(...)>>;
                                    custom_reason: ZodOptional<ZodString>;
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    ignore_bots: ZodDefault<ZodOptional<(...)>>;
                                },
                                "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<(...)>, "many">;
                                    channels: ZodDefault<ZodObject<(...), (...), (...), (...), (...)>>;
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    limit: ZodNumber;
                                    timeframe: ZodNumber;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    actions: (
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                    )[];
                                    channels: { list: (...)[]; mode: (...) | (...) };
                                    enabled: boolean;
                                    limit: number;
                                    timeframe: number;
                                },
                                {
                                    actions: (
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                    )[];
                                    channels?: { list?: ...; mode?: ... };
                                    enabled?: boolean;
                                    limit: number;
                                    timeframe: number;
                                },
                            >,
                        >;
                        auto_role: ZodOptional<
                            ZodObject<
                                {
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    ignore_bots: ZodDefault<ZodOptional<(...)>>;
                                    roles: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                { enabled: boolean; ignore_bots: boolean; roles: string[] },
                                { enabled?: boolean; ignore_bots?: boolean; roles?: (...)[] },
                            >,
                        >;
                        auto_triggers: ZodOptional<
                            ZodObject<
                                {
                                    enabled: ZodDefault<ZodBoolean>;
                                    global_disabled_channels: ZodDefault<ZodArray<(...), (...)>>;
                                    triggers: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    enabled: boolean;
                                    global_disabled_channels: string[];
                                    triggers: ((...) | (...))[];
                                },
                                {
                                    enabled?: boolean;
                                    global_disabled_channels?: (...)[];
                                    triggers?: (...)[];
                                },
                            >,
                        >;
                        bump_reminder: ZodOptional<
                            ZodObject<
                                {
                                    disabled_channels: ZodDefault<ZodArray<(...), (...)>>;
                                    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?: (...)[];
                                    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<(...)>>;
                                    ignored_channels: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    archive_category: string;
                                    enabled: boolean;
                                    ignored_channels: string[];
                                },
                                {
                                    archive_category: string;
                                    enabled?: boolean;
                                    ignored_channels?: (...)[];
                                },
                            >,
                        >;
                        commands: ZodDefault<
                            ZodObject<
                                {
                                    channels: ZodDefault<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    disabled_commands: ZodDefault<ZodArray<(...), (...)>>;
                                    mention_prefix: ZodDefault<ZodBoolean>;
                                    moderation_command_behavior: ZodDefault<ZodEnum<(...)>>;
                                    ratelimiting: ZodOptional<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    rerun_on_edit: ZodDefault<ZodBoolean>;
                                    respond_on_precondition_fail: ZodDefault<ZodBoolean>;
                                    troll_command_immune_users: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    channels: { list: (...)[]; mode: (...) | (...) };
                                    disabled_commands: string[];
                                    mention_prefix: boolean;
                                    moderation_command_behavior: "delete" | "default";
                                    ratelimiting?: {
                                        block_duration: ...;
                                        enabled: ...;
                                        max_attempts: ...;
                                        overrides: ...;
                                        timeframe: ...;
                                    };
                                    rerun_on_edit: boolean;
                                    respond_on_precondition_fail: boolean;
                                    troll_command_immune_users: string[];
                                },
                                {
                                    channels?: { list?: ...; mode?: ... };
                                    disabled_commands?: (...)[];
                                    mention_prefix?: boolean;
                                    moderation_command_behavior?: "delete" | "default";
                                    ratelimiting?: {
                                        block_duration?: ...;
                                        enabled?: ...;
                                        max_attempts?: ...;
                                        overrides?: ...;
                                        timeframe?: ...;
                                    };
                                    rerun_on_edit?: boolean;
                                    respond_on_precondition_fail?: boolean;
                                    troll_command_immune_users?: (...)[];
                                },
                            >,
                        >;
                        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<(...), (...)>>;
                                    enabled: ZodOptional<ZodBoolean>;
                                    installed_extensions: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    disabled_extensions: string[];
                                    enabled?: boolean;
                                    installed_extensions: string[];
                                },
                                {
                                    disabled_extensions?: (...)[];
                                    enabled?: boolean;
                                    installed_extensions?: (...)[];
                                },
                            >,
                        >;
                        infractions: ZodDefault<
                            ZodObject<
                                {
                                    dm_fallback: ZodDefault<ZodEnum<(...)>>;
                                    dm_fallback_channel_expires_in: ZodDefault<ZodOptional<(...)>>;
                                    dm_fallback_parent_channel: ZodOptional<
                                        ZodType<(...), (...), (...)>,
                                    >;
                                    points: ZodDefault<ZodObject<(...), (...), (...), (...), (...)>>;
                                    reason_template_placeholder_wrapper: ZodDefault<ZodString>;
                                    reason_templates: ZodDefault<ZodRecord<(...), (...)>>;
                                    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?: ...;
                                        clear?: ...;
                                        kick?: ...;
                                        massban?: ...;
                                        masskick?: ...;
                                        mod_message?: ...;
                                        mute?: ...;
                                        note?: ...;
                                        reaction_clear?: ...;
                                        role?: ...;
                                        softban?: ...;
                                        tempban?: ...;
                                        timeout?: ...;
                                        unban?: ...;
                                        warning?: ...;
                                    };
                                    reason_template_placeholder_wrapper?: string;
                                    reason_templates?: Record<(...), (...)>;
                                    send_ids_to_user?: boolean;
                                },
                            >,
                        >;
                        logging: ZodOptional<
                            ZodObject<
                                {
                                    bulk_delete_send_json: ZodDefault<ZodBoolean>;
                                    default_enabled: ZodDefault<ZodBoolean>;
                                    enabled: ZodDefault<ZodBoolean>;
                                    exclusions: ZodDefault<ZodArray<(...), (...)>>;
                                    global_ignored_channels: ZodDefault<ZodArray<(...), (...)>>;
                                    hooks: ZodDefault<ZodRecord<(...), (...)>>;
                                    overrides: ZodDefault<ZodArray<(...), (...)>>;
                                    primary_channel: ZodOptional<ZodType<(...), (...), (...)>>;
                                    unsubscribed_events: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    bulk_delete_send_json: boolean;
                                    default_enabled: boolean;
                                    enabled: boolean;
                                    exclusions: { events?: ...; mode: ...; snowflakes: ...; type: ... }[];
                                    global_ignored_channels: string[];
                                    hooks: Record<string, string>;
                                    overrides: ((...) | (...))[];
                                    primary_channel?: string;
                                    unsubscribed_events: LogEventType[];
                                },
                                {
                                    bulk_delete_send_json?: boolean;
                                    default_enabled?: boolean;
                                    enabled?: boolean;
                                    exclusions?: (...)[];
                                    global_ignored_channels?: (...)[];
                                    hooks?: Record<(...), (...)>;
                                    overrides?: (...)[];
                                    primary_channel?: string;
                                    unsubscribed_events?: (...)[];
                                },
                            >,
                        >;
                        member_verification: ZodOptional<
                            ZodObject<
                                {
                                    alt_detection: ZodOptional<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    channel: ZodOptional<ZodType<(...), (...), (...)>>;
                                    conditions: ZodObject<
                                        { age_less_than: ...; always: ...; no_avatar: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { age_less_than?: ...; always: ...; no_avatar?: ... },
                                        { age_less_than?: ...; always?: ...; no_avatar?: ... },
                                    >;
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    expired_actions: ZodDefault<ZodArray<(...), (...)>>;
                                    max_duration: ZodOptional<ZodNumber>;
                                    message_id_internal: ZodOptional<ZodType<(...), (...), (...)>>;
                                    method: ZodDefault<ZodEnum<(...)>>;
                                    success_message: ZodOptional<ZodString>;
                                    unverified_roles: ZodDefault<ZodArray<(...), (...)>>;
                                    verification_message: ZodOptional<ZodString>;
                                    verified_roles: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    alt_detection?: { actions?: ...; enabled: ... };
                                    channel?: string;
                                    conditions: {
                                        age_less_than?: (...) | (...);
                                        always: boolean;
                                        no_avatar?: (...) | (...) | (...);
                                    };
                                    enabled: boolean;
                                    expired_actions: (
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                    )[];
                                    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?: ...; enabled?: ... };
                                    channel?: string;
                                    conditions: {
                                        age_less_than?: (...) | (...);
                                        always?: (...) | (...) | (...);
                                        no_avatar?: (...) | (...) | (...);
                                    };
                                    enabled?: boolean;
                                    expired_actions?: (...)[];
                                    max_duration?: number;
                                    message_id_internal?: string;
                                    method?:
                                        | "channel_interaction"
                                        | "dm_interaction"
                                        | "channel_static_interaction";
                                    success_message?: string;
                                    unverified_roles?: (...)[];
                                    verification_message?: string;
                                    verified_roles?: (...)[];
                                },
                            >,
                        >;
                        message_reporting: ZodOptional<
                            ZodObject<
                                {
                                    action_required_permissions: ZodDefault<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    enabled: ZodDefault<ZodBoolean>;
                                    logging_channel: ZodOptional<ZodType<(...), (...), (...)>>;
                                    permission_level: ZodOptional<ZodDefault<(...)>>;
                                    permissions: ZodDefault<ZodArray<(...), (...)>>;
                                    roles: ZodDefault<ZodArray<(...), (...)>>;
                                    users: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    action_required_permissions: {
                                        ban: (...)[];
                                        ignore: (...)[];
                                        kick: (...)[];
                                        mute: (...)[];
                                        warn: (...)[];
                                    };
                                    enabled: boolean;
                                    logging_channel?: string;
                                    permission_level?: number;
                                    permissions: string[];
                                    roles: string[];
                                    users: string[];
                                },
                                {
                                    action_required_permissions?: {
                                        ban?: ...;
                                        ignore?: ...;
                                        kick?: ...;
                                        mute?: ...;
                                        warn?: ...;
                                    };
                                    enabled?: boolean;
                                    logging_channel?: string;
                                    permission_level?: number;
                                    permissions?: (...)[];
                                    roles?: (...)[];
                                    users?: (...)[];
                                },
                            >,
                        >;
                        muting: ZodOptional<
                            ZodObject<
                                { role: ZodOptional<ZodType<(...), (...), (...)>> },
                                "strip",
                                ZodTypeAny,
                                { role?: string },
                                { role?: string },
                            >,
                        >;
                        permissions: ZodDefault<
                            ZodOptional<
                                ZodObject<
                                    {
                                        check_discord_permissions: ZodDefault<(...)>;
                                        command_permission_mode: ZodOptional<(...)>;
                                        invincible: ZodOptional<(...)>;
                                        mode: ZodOptional<(...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        check_discord_permissions: (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        command_permission_mode?: (...) | (...) | (...) | (...);
                                        invincible?: (...) | (...);
                                        mode?: (...) | (...) | (...) | (...);
                                    },
                                    {
                                        check_discord_permissions?: | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        command_permission_mode?: (...) | (...) | (...) | (...);
                                        invincible?: (...) | (...);
                                        mode?: (...) | (...) | (...) | (...);
                                    },
                                >,
                            >,
                        >;
                        prefix: ZodDefault<ZodString>;
                        quick_mute: ZodOptional<
                            ZodObject<
                                {
                                    default_duration: ZodOptional<ZodDefault<(...)>>;
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    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<(...)>>;
                                    channel_mode: ZodDefault<ZodEnum<(...)>>;
                                    channels: ZodDefault<ZodArray<(...), (...)>>;
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    member_actions: ZodDefault<ZodArray<(...), (...)>>;
                                    send_log: ZodDefault<ZodOptional<(...)>>;
                                    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: (
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                    )[];
                                    send_log: boolean;
                                    threshold: number;
                                    timeframe: number;
                                },
                                {
                                    action?: | "none"
                                    | "lock"
                                    | "lock_and_antijoin"
                                    | "antijoin"
                                    | "auto";
                                    channel_mode?: "exclude"
                                    | "include";
                                    channels?: (...)[];
                                    enabled?: boolean;
                                    member_actions?: (...)[];
                                    send_log?: boolean;
                                    threshold?: number;
                                    timeframe?: number;
                                },
                            >,
                        >;
                        reaction_roles: ZodOptional<
                            ZodObject<
                                {
                                    enabled: ZodDefault<ZodOptional<(...)>>;
                                    ignore_bots: ZodDefault<ZodOptional<(...)>>;
                                    ratelimiting: ZodOptional<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    enabled: boolean;
                                    ignore_bots: boolean;
                                    ratelimiting?: {
                                        block_duration: ...;
                                        enabled: ...;
                                        max_attempts: ...;
                                        timeframe: ...;
                                    };
                                },
                                {
                                    enabled?: boolean;
                                    ignore_bots?: boolean;
                                    ratelimiting?: {
                                        block_duration?: ...;
                                        enabled?: ...;
                                        max_attempts?: ...;
                                        timeframe?: ...;
                                    };
                                },
                            >,
                        >;
                        rule_moderation: ZodOptional<
                            ZodObject<
                                {
                                    enabled: ZodDefault<ZodBoolean>;
                                    global_disabled_channels: ZodDefault<ZodArray<(...), (...)>>;
                                    rules: ZodDefault<ZodArray<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    enabled: boolean;
                                    global_disabled_channels: string[];
                                    rules: (
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                    )[];
                                },
                                {
                                    enabled?: boolean;
                                    global_disabled_channels?: (...)[];
                                    rules?: (...)[];
                                },
                            >,
                        >;
                        survey_system: ZodOptional<
                            ZodObject<
                                {
                                    default_log_channel: ZodOptional<ZodType<(...), (...), (...)>>;
                                    enabled: ZodDefault<ZodBoolean>;
                                    surveys: ZodDefault<ZodRecord<(...), (...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    default_log_channel?: string;
                                    enabled: boolean;
                                    surveys: Record<
                                        string,
                                        {
                                            description?: ...;
                                            end_message?: ...;
                                            log_channel?: ...;
                                            name: ...;
                                            questions: ...;
                                            required_channels: ...;
                                            required_permissions: ...;
                                            required_roles: ...;
                                            required_users: ...;
                                        },
                                    >;
                                },
                                {
                                    default_log_channel?: string;
                                    enabled?: boolean;
                                    surveys?: Record<(...), (...)>;
                                },
                            >,
                        >;
                        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<(...)>>;
                                    randomize: ZodDefault<ZodOptional<(...)>>;
                                    say_hi_button: ZodOptional<
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                },
                                "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: ...;
                                        enabled: ...;
                                        expire_after: ...;
                                        label: ...;
                                        reply: ...;
                                    };
                                },
                                {
                                    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?: ...;
                                        enabled?: ...;
                                        expire_after?: ...;
                                        label?: ...;
                                        reply?: ...;
                                    };
                                },
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        ai_automod?: {
                            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: ... }
                            )[];
                            automatic_actions?: { enabled: boolean; stops: Record<(...), (...)> };
                            enabled: boolean;
                            evaluate_after_attempts: number;
                            evaluation_cache_expires_in: number;
                            exception_regex_patterns: (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?: ...;
                                    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: ... }
                            )[];
                            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: ...;
                                    enabled_channels: ...;
                                    ignore_roles: ...;
                                    ignore_users: ...;
                                    message: ...;
                                    type: ...;
                                }
                                | {
                                    action: ...;
                                    enabled_channels: ...;
                                    ignore_roles: ...;
                                    ignore_users: ...;
                                    must_contain: ...;
                                    must_not_contain: ...;
                                    roles: ...;
                                    type: ...;
                                }
                            )[];
                        };
                        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: ...;
                                        enabled: ...;
                                        max_attempts: ...;
                                        timeframe: ...;
                                    },
                                >;
                                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?: (...)
                                | (...);
                                mode: (...) | (...);
                                snowflakes: (...)[];
                                type: (...) | (...) | (...);
                            }[];
                            global_ignored_channels: string[];
                            hooks: Record<string, string>;
                            overrides: (
                                | { channel: ...; enabled: ...; events: ... }
                                | { enabled: ...; events: ... }
                            )[];
                            primary_channel?: string;
                            unsubscribed_events: LogEventType[];
                        };
                        member_verification?: {
                            alt_detection?: { actions?: (...)
                            | (...); enabled: boolean };
                            channel?: string;
                            conditions: {
                                age_less_than?: number;
                                always: boolean;
                                no_avatar?: boolean;
                            };
                            enabled: boolean;
                            expired_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: ... }
                            )[];
                            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?: ...;
                                    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: ... }
                            )[];
                            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: ...;
                                    bypasses: ...;
                                    domains: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    scan_links_only: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    data: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    data: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    allow_internal_invites: ...;
                                    allowed_invite_codes: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    patterns: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    max_repeated_chars: ...;
                                    max_repeated_words: ...;
                                    mode: ...;
                                    name: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    max_mentions: ...;
                                    max_role_mentions: ...;
                                    max_user_mentions: ...;
                                    mode: ...;
                                    name: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    inherit_from_word_filter: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    scan_embeds: ...;
                                    tokens: ...;
                                    type: ...;
                                    words: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    inherit_from_word_filter: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    tokens: ...;
                                    type: ...;
                                    words: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    excluded_domains_regex: ...;
                                    excluded_link_regex: ...;
                                    excluded_links: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    tokens: ...;
                                    type: ...;
                                    words: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    score_thresholds: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    normalize: ...;
                                    tokens: ...;
                                    type: ...;
                                    words: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    check_mime_types: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    hashes: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    flirtation_threshold: ...;
                                    for?: ...;
                                    identity_attack_threshold: ...;
                                    insult_threshold: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    profanity_threshold: ...;
                                    severe_toxicity_threshold: ...;
                                    sexual_explicit_threshold: ...;
                                    threat_threshold: ...;
                                    toxicity_threshold: ...;
                                    type: ...;
                                }
                                | {
                                    actions: ...;
                                    bail: ...;
                                    bypasses: ...;
                                    enabled: ...;
                                    exceptions?: ...;
                                    for?: ...;
                                    is_bypasser: ...;
                                    mode: ...;
                                    name: ...;
                                    normalize: ...;
                                    regex_patterns: ...;
                                    tokens: ...;
                                    type: ...;
                                    words: ...;
                                }
                            )[];
                        };
                        survey_system?: {
                            default_log_channel?: string;
                            enabled: boolean;
                            surveys: Record<
                                string,
                                {
                                    description?: (...)
                                    | (...);
                                    end_message?: (...) | (...);
                                    log_channel?: (...) | (...);
                                    name: string;
                                    questions: [(...), ...(...)[]];
                                    required_channels: (...)[];
                                    required_permissions: (...)[];
                                    required_roles: (...)[];
                                    required_users: (...)[];
                                },
                            >;
                        };
                        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: (...)
                                | (...);
                                label: string;
                                reply: string;
                            };
                        };
                    },
                    {
                        ai_automod?: {
                            actions?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                            automatic_actions?: {
                                enabled?: (...) | (...) | (...);
                                stops?: (...) | (...);
                            };
                            enabled?: boolean;
                            evaluate_after_attempts?: number;
                            evaluation_cache_expires_in?: number;
                            exception_regex_patterns?: ((...) | (...))[];
                            max_individual_scores?: {
                                flirtation?: (...) | (...);
                                identity_attack?: (...) | (...);
                                incoherent?: (...) | (...);
                                insult?: (...) | (...);
                                obscene?: (...) | (...);
                                profanity?: (...) | (...);
                                severe_toxicity?: (...) | (...);
                                sexually_explicit?: (...) | (...);
                                spam?: (...) | (...);
                                threat?: (...) | (...);
                                toxicity?: (...) | (...);
                                unsubstantial?: (...) | (...);
                            };
                            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?: ...;
                                    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: ... }
                            )[];
                            channels?: { list?: (...) | (...); mode?: (...) | (...) | (...) };
                            enabled?: boolean;
                            limit: number;
                            timeframe: number;
                        };
                        auto_role?: {
                            enabled?: boolean;
                            ignore_bots?: boolean;
                            roles?: string[];
                        };
                        auto_triggers?: {
                            enabled?: boolean;
                            global_disabled_channels?: string[];
                            triggers?: ((...) | (...))[];
                        };
                        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?: (...)
                            | (...); mode?: (...) | (...) | (...) };
                            disabled_commands?: string[];
                            mention_prefix?: boolean;
                            moderation_command_behavior?: "delete" | "default";
                            ratelimiting?: {
                                block_duration?: (...) | (...);
                                enabled?: (...) | (...) | (...);
                                max_attempts?: (...) | (...);
                                overrides?: (...) | (...);
                                timeframe?: (...) | (...);
                            };
                            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?: (...) | (...);
                                clear?: (...) | (...);
                                kick?: (...) | (...);
                                massban?: (...) | (...);
                                masskick?: (...) | (...);
                                mod_message?: (...) | (...);
                                mute?: (...) | (...);
                                note?: (...) | (...);
                                reaction_clear?: (...) | (...);
                                role?: (...) | (...);
                                softban?: (...) | (...);
                                tempban?: (...) | (...);
                                timeout?: (...) | (...);
                                unban?: (...) | (...);
                                warning?: (...) | (...);
                            };
                            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?: ...; mode?: ...; snowflakes: ...; type: ... }[];
                            global_ignored_channels?: string[];
                            hooks?: Record<string, string>;
                            overrides?: ((...) | (...))[];
                            primary_channel?: string;
                            unsubscribed_events?: LogEventType[];
                        };
                        member_verification?: {
                            alt_detection?: {
                                actions?: (...)
                                | (...);
                                enabled?: (...) | (...) | (...);
                            };
                            channel?: string;
                            conditions: {
                                age_less_than?: number;
                                always?: boolean;
                                no_avatar?: boolean;
                            };
                            enabled?: boolean;
                            expired_actions?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                            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?: (...)
                                | (...);
                                ignore?: (...) | (...);
                                kick?: (...) | (...);
                                mute?: (...) | (...);
                                warn?: (...) | (...);
                            };
                            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?: (...) | (...); users?: (...) | (...) };
                            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?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                            send_log?: boolean;
                            threshold?: number;
                            timeframe?: number;
                        };
                        reaction_roles?: {
                            enabled?: boolean;
                            ignore_bots?: boolean;
                            ratelimiting?: {
                                block_duration?: (...)
                                | (...);
                                enabled?: (...) | (...) | (...);
                                max_attempts?: (...) | (...);
                                timeframe?: (...) | (...);
                            };
                        };
                        rule_moderation?: {
                            enabled?: boolean;
                            global_disabled_channels?: string[];
                            rules?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                        };
                        survey_system?: {
                            default_log_channel?: string;
                            enabled?: boolean;
                            surveys?: Record<
                                string,
                                {
                                    description?: ...;
                                    end_message?: ...;
                                    log_channel?: ...;
                                    name: ...;
                                    questions: ...;
                                    required_channels?: ...;
                                    required_permissions?: ...;
                                    required_roles?: ...;
                                    required_users?: ...;
                                },
                            >;
                        };
                        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?: (...)
                                | (...);
                                enabled?: (...) | (...) | (...);
                                expire_after?: (...) | (...) | (...);
                                label?: (...) | (...);
                                reply?: (...) | (...);
                            };
                        };
                    },
                >,
            >,
            ZodUndefined,
        ],
    >,
> = ...
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;
            };
        };
    },
> = GuildConfigSchema
loaded: boolean = false
logger: Logger
schemaDirectory: string = ...
systemConfig: {
    $schema?: string;
    api: {
        enabled: boolean;
        server_status:
            | "error"
            | "operational"
            | "degraded"
            | "partial_outage"
            | "major_outage"
            | "maintenance";
        server_status_description?: string;
        server_status_started_at?: Date;
    };
    command_permission_mode: "ignore"
    | "overwrite"
    | "check";
    commands: {
        global_disabled: string[];
        groups: Record<string, string[]>;
        mention_prefix: boolean;
        register_application_commands_on_boot:
            | "guild"
            | "none"
            | "always_global"
            | "auto_global";
        system_banned_users: string[];
    };
    emoji_resolve_strategy: "both"
    | "home_guild"
    | "application";
    enable_file_filter: boolean;
    extensions: { default_mode: "enable_all" | "disable_all" };
    infractions?: { store_attachments: boolean };
    log_server?: { auto_start: boolean; enabled: boolean };
    logging?: { enabled: boolean; webhook_url: string };
    presence?: {
        name?: string;
        status?: "online" | "idle" | "dnd" | "invisible";
        type:
            | "Playing"
            | "Streaming"
            | "Listening"
            | "Watching"
            | "Custom"
            | "Competing";
        url?: string;
    };
    restart_exit_code: number;
    snippets?: { save_attachments?: boolean };
    statistics?: { enabled: boolean; sync_delay: number };
    sync_emojis: boolean;
    system_admins: string[];
    trust_proxies?: number;
} = ...
systemConfigPath: string = ...
systemConfigSchema: ZodObject<
    {
        $schema: ZodOptional<ZodString>;
        api: ZodDefault<
            ZodObject<
                {
                    enabled: ZodDefault<ZodBoolean>;
                    server_status: ZodDefault<
                        ZodEnum<
                            [
                                "operational",
                                "degraded",
                                "partial_outage",
                                "major_outage",
                                "maintenance",
                                "error",
                            ],
                        >,
                    >;
                    server_status_description: ZodOptional<ZodString>;
                    server_status_started_at: ZodOptional<
                        ZodUnion<[ZodPipeline<ZodString, ZodDate>, ZodDate]>,
                    >;
                },
                "strip",
                ZodTypeAny,
                {
                    enabled: boolean;
                    server_status: | "error"
                    | "operational"
                    | "degraded"
                    | "partial_outage"
                    | "major_outage"
                    | "maintenance";
                    server_status_description?: string;
                    server_status_started_at?: Date;
                },
                {
                    enabled?: boolean;
                    server_status?: | "error"
                    | "operational"
                    | "degraded"
                    | "partial_outage"
                    | "major_outage"
                    | "maintenance";
                    server_status_description?: string;
                    server_status_started_at?: string
                    | Date;
                },
            >,
        >;
        command_permission_mode: ZodDefault<
            ZodEnum<["ignore", "overwrite", "check"]>,
        >;
        commands: ZodDefault<
            ZodObject<
                {
                    global_disabled: ZodDefault<ZodArray<ZodString, "many">>;
                    groups: ZodDefault<ZodRecord<ZodString, ZodArray<ZodString, "many">>>;
                    mention_prefix: ZodDefault<ZodBoolean>;
                    register_application_commands_on_boot: ZodDefault<
                        ZodEnum<["always_global", "guild", "none", "auto_global"]>,
                    >;
                    system_banned_users: ZodDefault<ZodArray<ZodString, "many">>;
                },
                "strip",
                ZodTypeAny,
                {
                    global_disabled: string[];
                    groups: Record<string, string[]>;
                    mention_prefix: boolean;
                    register_application_commands_on_boot:
                        | "guild"
                        | "none"
                        | "always_global"
                        | "auto_global";
                    system_banned_users: string[];
                },
                {
                    global_disabled?: string[];
                    groups?: Record<string, string[]>;
                    mention_prefix?: boolean;
                    register_application_commands_on_boot?:
                        | "guild"
                        | "none"
                        | "always_global"
                        | "auto_global";
                    system_banned_users?: string[];
                },
            >,
        >;
        emoji_resolve_strategy: ZodDefault<
            ZodEnum<["both", "home_guild", "application"]>,
        >;
        enable_file_filter: ZodDefault<ZodBoolean>;
        extensions: ZodDefault<
            ZodObject<
                { default_mode: ZodDefault<ZodEnum<["enable_all", "disable_all"]>> },
                "strip",
                ZodTypeAny,
                { default_mode: "enable_all" | "disable_all" },
                { default_mode?: "enable_all" | "disable_all" },
            >,
        >;
        infractions: ZodOptional<
            ZodObject<
                { store_attachments: ZodDefault<ZodBoolean> },
                "strip",
                ZodTypeAny,
                { store_attachments: boolean },
                { store_attachments?: boolean },
            >,
        >;
        log_server: ZodOptional<
            ZodObject<
                {
                    auto_start: ZodDefault<ZodBoolean>;
                    enabled: ZodDefault<ZodBoolean>;
                },
                "strip",
                ZodTypeAny,
                { auto_start: boolean; enabled: boolean },
                { auto_start?: boolean; enabled?: boolean },
            >,
        >;
        logging: ZodOptional<
            ZodObject<
                { enabled: ZodDefault<ZodBoolean>; webhook_url: ZodString },
                "strip",
                ZodTypeAny,
                { enabled: boolean; webhook_url: string },
                { enabled?: boolean; webhook_url: string },
            >,
        >;
        presence: ZodOptional<
            ZodObject<
                {
                    name: ZodOptional<ZodString>;
                    status: ZodOptional<ZodEnum<["online", "idle", "dnd", "invisible"]>>;
                    type: ZodEnum<
                        [
                            "Competing",
                            "Listening",
                            "Playing",
                            "Streaming",
                            "Watching",
                            "Custom",
                        ],
                    >;
                    url: ZodOptional<ZodString>;
                },
                "strip",
                ZodTypeAny,
                {
                    name?: string;
                    status?: "online"
                    | "idle"
                    | "dnd"
                    | "invisible";
                    type:
                        | "Playing"
                        | "Streaming"
                        | "Listening"
                        | "Watching"
                        | "Custom"
                        | "Competing";
                    url?: string;
                },
                {
                    name?: string;
                    status?: "online"
                    | "idle"
                    | "dnd"
                    | "invisible";
                    type:
                        | "Playing"
                        | "Streaming"
                        | "Listening"
                        | "Watching"
                        | "Custom"
                        | "Competing";
                    url?: string;
                },
            >,
        >;
        restart_exit_code: ZodDefault<ZodNumber>;
        snippets: ZodOptional<
            ZodObject<
                { save_attachments: ZodOptional<ZodDefault<ZodBoolean>> },
                "strip",
                ZodTypeAny,
                { save_attachments?: boolean },
                { save_attachments?: boolean },
            >,
        >;
        statistics: ZodOptional<
            ZodObject<
                {
                    enabled: ZodDefault<ZodBoolean>;
                    sync_delay: ZodDefault<ZodNumber>;
                },
                "strip",
                ZodTypeAny,
                { enabled: boolean; sync_delay: number },
                { enabled?: boolean; sync_delay?: number },
            >,
        >;
        sync_emojis: ZodDefault<ZodBoolean>;
        system_admins: ZodDefault<ZodArray<ZodString, "many">>;
        trust_proxies: ZodOptional<ZodNumber>;
    },
    "strip",
    ZodTypeAny,
    {
        $schema?: string;
        api: {
            enabled: boolean;
            server_status: | "error"
            | "operational"
            | "degraded"
            | "partial_outage"
            | "major_outage"
            | "maintenance";
            server_status_description?: string;
            server_status_started_at?: Date;
        };
        command_permission_mode: "ignore"
        | "overwrite"
        | "check";
        commands: {
            global_disabled: string[];
            groups: Record<string, string[]>;
            mention_prefix: boolean;
            register_application_commands_on_boot:
                | "guild"
                | "none"
                | "always_global"
                | "auto_global";
            system_banned_users: string[];
        };
        emoji_resolve_strategy: "both"
        | "home_guild"
        | "application";
        enable_file_filter: boolean;
        extensions: { default_mode: "enable_all" | "disable_all" };
        infractions?: { store_attachments: boolean };
        log_server?: { auto_start: boolean; enabled: boolean };
        logging?: { enabled: boolean; webhook_url: string };
        presence?: {
            name?: string;
            status?: "online" | "idle" | "dnd" | "invisible";
            type:
                | "Playing"
                | "Streaming"
                | "Listening"
                | "Watching"
                | "Custom"
                | "Competing";
            url?: string;
        };
        restart_exit_code: number;
        snippets?: { save_attachments?: boolean };
        statistics?: { enabled: boolean; sync_delay: number };
        sync_emojis: boolean;
        system_admins: string[];
        trust_proxies?: number;
    },
    {
        $schema?: string;
        api?: {
            enabled?: boolean;
            server_status?: | "error"
            | "operational"
            | "degraded"
            | "partial_outage"
            | "major_outage"
            | "maintenance";
            server_status_description?: string;
            server_status_started_at?: string
            | Date;
        };
        command_permission_mode?: "ignore"
        | "overwrite"
        | "check";
        commands?: {
            global_disabled?: string[];
            groups?: Record<string, string[]>;
            mention_prefix?: boolean;
            register_application_commands_on_boot?:
                | "guild"
                | "none"
                | "always_global"
                | "auto_global";
            system_banned_users?: string[];
        };
        emoji_resolve_strategy?: "both"
        | "home_guild"
        | "application";
        enable_file_filter?: boolean;
        extensions?: { default_mode?: "enable_all" | "disable_all" };
        infractions?: { store_attachments?: boolean };
        log_server?: { auto_start?: boolean; enabled?: boolean };
        logging?: { enabled?: boolean; webhook_url: string };
        presence?: {
            name?: string;
            status?: "online" | "idle" | "dnd" | "invisible";
            type:
                | "Playing"
                | "Streaming"
                | "Listening"
                | "Watching"
                | "Custom"
                | "Competing";
            url?: string;
        };
        restart_exit_code?: number;
        snippets?: { save_attachments?: boolean };
        statistics?: { enabled?: boolean; sync_delay?: number };
        sync_emojis?: boolean;
        system_admins?: string[];
        trust_proxies?: number;
    },
> = SystemConfigSchema
systemConfigSchemaInfo: string = "https://raw.githubusercontent.com/onesoft-sudo/sudobot/main/config/schema/system.json"
systemConfigSchemaPath: string = ...
name: string

Returns the name of the function. Function names are read-only and can not be changed.

Methods

  • Type Parameters

    • T extends {
          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?: 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" }
                      )[],
                  >;
              };
              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: "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;
              };
              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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      domains: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      scan_links_only: boolean;
                      type: "domain_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "mime_type_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_extension_filter";
                  }
                  | {
                      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" }
                      )[];
                      allow_internal_invites: boolean;
                      allowed_invite_codes: string[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "anti_invite";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      patterns: (string | [string, string])[];
                      type: "regex_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      max_repeated_chars: number;
                      max_repeated_words: number;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "repeated_text_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      inherit_from_word_filter: boolean;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "embed_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      excluded_domains_regex: string[];
                      excluded_link_regex: string[];
                      excluded_links: string[];
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "EXPERIMENTAL_url_crawl";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      score_thresholds: { hentai: number; porn: number; sexy: number };
                      type: "EXPERIMENTAL_nsfw_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      normalize: boolean;
                      tokens: string[];
                      type: "word_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      check_mime_types: boolean;
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      hashes: Record<string, null | string>;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      flirtation_threshold: number;
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[],
                  >;
              };
              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: "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;
              };
              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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      domains: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      scan_links_only: boolean;
                      type: "domain_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "mime_type_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_extension_filter";
                  }
                  | {
                      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" }
                      )[];
                      allow_internal_invites: boolean;
                      allowed_invite_codes: string[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "anti_invite";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      patterns: (string | [string, string])[];
                      type: "regex_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      max_repeated_chars: number;
                      max_repeated_words: number;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "repeated_text_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      inherit_from_word_filter: boolean;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "embed_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      excluded_domains_regex: string[];
                      excluded_link_regex: string[];
                      excluded_links: string[];
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "EXPERIMENTAL_url_crawl";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      score_thresholds: { hentai: number; porn: number; sexy: number };
                      type: "EXPERIMENTAL_nsfw_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      normalize: boolean;
                      tokens: string[];
                      type: "word_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      check_mime_types: boolean;
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      hashes: Record<string, null | string>;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      flirtation_threshold: number;
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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;
              };
          };
      }

    Parameters

    • guildId: string

    Returns undefined | T

  • Type Parameters

    • T extends {
          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?: 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" }
                      )[],
                  >;
              };
              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: "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;
              };
              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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      domains: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      scan_links_only: boolean;
                      type: "domain_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "mime_type_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_extension_filter";
                  }
                  | {
                      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" }
                      )[];
                      allow_internal_invites: boolean;
                      allowed_invite_codes: string[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "anti_invite";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      patterns: (string | [string, string])[];
                      type: "regex_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      max_repeated_chars: number;
                      max_repeated_words: number;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "repeated_text_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      inherit_from_word_filter: boolean;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "embed_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      excluded_domains_regex: string[];
                      excluded_link_regex: string[];
                      excluded_links: string[];
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "EXPERIMENTAL_url_crawl";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      score_thresholds: { hentai: number; porn: number; sexy: number };
                      type: "EXPERIMENTAL_nsfw_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      normalize: boolean;
                      tokens: string[];
                      type: "word_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      check_mime_types: boolean;
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      hashes: Record<string, null | string>;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      flirtation_threshold: number;
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[],
                  >;
              };
              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: "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;
              };
              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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      domains: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      scan_links_only: boolean;
                      type: "domain_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "mime_type_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_extension_filter";
                  }
                  | {
                      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" }
                      )[];
                      allow_internal_invites: boolean;
                      allowed_invite_codes: string[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "anti_invite";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      patterns: (string | [string, string])[];
                      type: "regex_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      max_repeated_chars: number;
                      max_repeated_words: number;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "repeated_text_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      inherit_from_word_filter: boolean;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "embed_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      excluded_domains_regex: string[];
                      excluded_link_regex: string[];
                      excluded_links: string[];
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "EXPERIMENTAL_url_crawl";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      score_thresholds: { hentai: number; porn: number; sexy: number };
                      type: "EXPERIMENTAL_nsfw_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      normalize: boolean;
                      tokens: string[];
                      type: "word_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      check_mime_types: boolean;
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      hashes: Record<string, null | string>;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      flirtation_threshold: number;
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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;
              };
          };
      }

    Parameters

    • guildId: string

    Returns T

  • Parameters

    • guildId: string
    • value: {
          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?: 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" }
                      )[],
                  >;
              };
              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: "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;
              };
              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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      domains: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      scan_links_only: boolean;
                      type: "domain_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "mime_type_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      data: string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_extension_filter";
                  }
                  | {
                      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" }
                      )[];
                      allow_internal_invites: boolean;
                      allowed_invite_codes: string[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "anti_invite";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      patterns: (string | [string, string])[];
                      type: "regex_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      max_repeated_chars: number;
                      max_repeated_words: number;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "repeated_text_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      inherit_from_word_filter: boolean;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "embed_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      excluded_domains_regex: string[];
                      excluded_link_regex: string[];
                      excluded_links: string[];
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      tokens: string[];
                      type: "EXPERIMENTAL_url_crawl";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      score_thresholds: { hentai: number; porn: number; sexy: number };
                      type: "EXPERIMENTAL_nsfw_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      normalize: boolean;
                      tokens: string[];
                      type: "word_filter";
                      words: string[];
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      check_mime_types: boolean;
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      hashes: Record<string, null | string>;
                      is_bypasser: boolean;
                      mode: "normal" | "invert";
                      name: null | string;
                      type: "file_filter";
                  }
                  | {
                      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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      flirtation_threshold: number;
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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?: 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" }
                      )[];
                      bail: boolean;
                      bypasses: null | string[];
                      enabled: boolean;
                      exceptions?: { channels?: string[]; roles?: string[]; users?: string[] };
                      for?: { channels?: string[]; roles?: string[]; users?: string[] };
                      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;
              };
          };
      }

    Returns void

  • Returns
        | null
        | {
            error: ZodError<
                Record<
                    string,
                    | undefined
                    | {
                        ai_automod?: {
                            actions?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                            automatic_actions?: {
                                enabled?: (...) | (...) | (...);
                                stops?: (...) | (...);
                            };
                            enabled?: boolean;
                            evaluate_after_attempts?: number;
                            evaluation_cache_expires_in?: number;
                            exception_regex_patterns?: ((...) | (...))[];
                            max_individual_scores?: {
                                flirtation?: (...) | (...);
                                identity_attack?: (...) | (...);
                                incoherent?: (...) | (...);
                                insult?: (...) | (...);
                                obscene?: (...) | (...);
                                profanity?: (...) | (...);
                                severe_toxicity?: (...) | (...);
                                sexually_explicit?: (...) | (...);
                                spam?: (...) | (...);
                                threat?: (...) | (...);
                                toxicity?: (...) | (...);
                                unsubstantial?: (...) | (...);
                            };
                            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?: ...;
                                    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: ... }
                            )[];
                            channels?: { list?: (...) | (...); mode?: (...) | (...) | (...) };
                            enabled?: boolean;
                            limit: number;
                            timeframe: number;
                        };
                        auto_role?: {
                            enabled?: boolean;
                            ignore_bots?: boolean;
                            roles?: string[];
                        };
                        auto_triggers?: {
                            enabled?: boolean;
                            global_disabled_channels?: string[];
                            triggers?: ((...) | (...))[];
                        };
                        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?: (...)
                            | (...); mode?: (...) | (...) | (...) };
                            disabled_commands?: string[];
                            mention_prefix?: boolean;
                            moderation_command_behavior?: "delete" | "default";
                            ratelimiting?: {
                                block_duration?: (...) | (...);
                                enabled?: (...) | (...) | (...);
                                max_attempts?: (...) | (...);
                                overrides?: (...) | (...);
                                timeframe?: (...) | (...);
                            };
                            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?: (...) | (...);
                                clear?: (...) | (...);
                                kick?: (...) | (...);
                                massban?: (...) | (...);
                                masskick?: (...) | (...);
                                mod_message?: (...) | (...);
                                mute?: (...) | (...);
                                note?: (...) | (...);
                                reaction_clear?: (...) | (...);
                                role?: (...) | (...);
                                softban?: (...) | (...);
                                tempban?: (...) | (...);
                                timeout?: (...) | (...);
                                unban?: (...) | (...);
                                warning?: (...) | (...);
                            };
                            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?: ...; mode?: ...; snowflakes: ...; type: ... }[];
                            global_ignored_channels?: string[];
                            hooks?: Record<string, string>;
                            overrides?: ((...) | (...))[];
                            primary_channel?: string;
                            unsubscribed_events?: LogEventType[];
                        };
                        member_verification?: {
                            alt_detection?: {
                                actions?: (...)
                                | (...);
                                enabled?: (...) | (...) | (...);
                            };
                            channel?: string;
                            conditions: {
                                age_less_than?: number;
                                always?: boolean;
                                no_avatar?: boolean;
                            };
                            enabled?: boolean;
                            expired_actions?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                            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?: (...)
                                | (...);
                                ignore?: (...) | (...);
                                kick?: (...) | (...);
                                mute?: (...) | (...);
                                warn?: (...) | (...);
                            };
                            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?: (...) | (...); users?: (...) | (...) };
                            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?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                            send_log?: boolean;
                            threshold?: number;
                            timeframe?: number;
                        };
                        reaction_roles?: {
                            enabled?: boolean;
                            ignore_bots?: boolean;
                            ratelimiting?: {
                                block_duration?: (...)
                                | (...);
                                enabled?: (...) | (...) | (...);
                                max_attempts?: (...) | (...);
                                timeframe?: (...) | (...);
                            };
                        };
                        rule_moderation?: {
                            enabled?: boolean;
                            global_disabled_channels?: string[];
                            rules?: (
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                        };
                        survey_system?: {
                            default_log_channel?: string;
                            enabled?: boolean;
                            surveys?: Record<
                                string,
                                {
                                    description?: ...;
                                    end_message?: ...;
                                    log_channel?: ...;
                                    name: ...;
                                    questions: ...;
                                    required_channels?: ...;
                                    required_permissions?: ...;
                                    required_roles?: ...;
                                    required_users?: ...;
                                },
                            >;
                        };
                        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?: (...)
                                | (...);
                                enabled?: (...) | (...) | (...);
                                expire_after?: (...) | (...) | (...);
                                label?: (...) | (...);
                                reply?: (...) | (...);
                            };
                        };
                    },
                >,
            >;
            type: "guild";
        }
        | {
            error: ZodError<
                {
                    $schema?: string;
                    api?: {
                        enabled?: boolean;
                        server_status?: | "error"
                        | "operational"
                        | "degraded"
                        | "partial_outage"
                        | "major_outage"
                        | "maintenance";
                        server_status_description?: string;
                        server_status_started_at?: string
                        | Date;
                    };
                    command_permission_mode?: "ignore"
                    | "overwrite"
                    | "check";
                    commands?: {
                        global_disabled?: string[];
                        groups?: Record<string, string[]>;
                        mention_prefix?: boolean;
                        register_application_commands_on_boot?:
                            | "guild"
                            | "none"
                            | "always_global"
                            | "auto_global";
                        system_banned_users?: string[];
                    };
                    emoji_resolve_strategy?: "both"
                    | "home_guild"
                    | "application";
                    enable_file_filter?: boolean;
                    extensions?: { default_mode?: "enable_all" | "disable_all" };
                    infractions?: { store_attachments?: boolean };
                    log_server?: { auto_start?: boolean; enabled?: boolean };
                    logging?: { enabled?: boolean; webhook_url: string };
                    presence?: {
                        name?: string;
                        status?: "online" | "idle" | "dnd" | "invisible";
                        type:
                            | "Playing"
                            | "Streaming"
                            | "Listening"
                            | "Watching"
                            | "Custom"
                            | "Competing";
                        url?: string;
                    };
                    restart_exit_code?: number;
                    snippets?: { save_attachments?: boolean };
                    statistics?: { enabled?: boolean; sync_delay?: number };
                    sync_emojis?: boolean;
                    system_admins?: string[];
                    trust_proxies?: number;
                },
            >;
            type: "system";
        }

MMNEPVFCICPMFPCPTTAAATR