MessageRuleSchema: ZodUnion<
    [
        ZodObject<
            {
                actions: ZodDefault<
                    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",
                    >,
                >;
                bail: ZodDefault<ZodBoolean>;
                bypasses: ZodDefault<ZodNullable<ZodArray<ZodString, "many">>>;
                domains: ZodDefault<ZodArray<ZodString, "many">>;
                enabled: ZodDefault<ZodBoolean>;
                exceptions: ZodOptional<
                    ZodObject<
                        {
                            channels: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            roles: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            users: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                        },
                        "strip",
                        ZodTypeAny,
                        { channels?: string[]; roles?: string[]; users?: string[] },
                        { channels?: string[]; roles?: string[]; users?: string[] },
                    >,
                >;
                for: ZodOptional<
                    ZodObject<
                        {
                            channels: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            roles: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            users: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                        },
                        "strip",
                        ZodTypeAny,
                        { channels?: string[]; roles?: string[]; users?: string[] },
                        { channels?: string[]; roles?: string[]; users?: string[] },
                    >,
                >;
                is_bypasser: ZodDefault<ZodBoolean>;
                mode: ZodDefault<ZodEnum<["normal", "invert"]>>;
                name: ZodDefault<ZodNullable<ZodString>>;
                scan_links_only: ZodDefault<ZodBoolean>;
                type: ZodLiteral<"domain_filter">;
            },
            "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" }
                )[];
                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[];
                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";
            },
        >,
        ZodObject<
            {
                actions: ZodDefault<
                    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",
                    >,
                >;
                bail: ZodDefault<ZodBoolean>;
                bypasses: ZodDefault<ZodNullable<ZodArray<ZodString, "many">>>;
                data: ZodDefault<ZodArray<ZodString, "many">>;
                enabled: ZodDefault<ZodBoolean>;
                exceptions: ZodOptional<
                    ZodObject<
                        {
                            channels: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            roles: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            users: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                        },
                        "strip",
                        ZodTypeAny,
                        { channels?: string[]; roles?: string[]; users?: string[] },
                        { channels?: string[]; roles?: string[]; users?: string[] },
                    >,
                >;
                for: ZodOptional<
                    ZodObject<
                        {
                            channels: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            roles: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            users: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                        },
                        "strip",
                        ZodTypeAny,
                        { channels?: string[]; roles?: string[]; users?: string[] },
                        { channels?: string[]; roles?: string[]; users?: string[] },
                    >,
                >;
                is_bypasser: ZodDefault<ZodBoolean>;
                mode: ZodDefault<ZodEnum<["normal", "invert"]>>;
                name: ZodDefault<ZodNullable<ZodString>>;
                type: ZodLiteral<"mime_type_filter">;
            },
            "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" }
                )[];
                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: "mime_type_filter";
            },
        >,
        ZodObject<
            {
                actions: ZodDefault<
                    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",
                    >,
                >;
                bail: ZodDefault<ZodBoolean>;
                bypasses: ZodDefault<ZodNullable<ZodArray<ZodString, "many">>>;
                data: ZodDefault<ZodArray<ZodString, "many">>;
                enabled: ZodDefault<ZodBoolean>;
                exceptions: ZodOptional<
                    ZodObject<
                        {
                            channels: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            roles: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            users: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                        },
                        "strip",
                        ZodTypeAny,
                        { channels?: string[]; roles?: string[]; users?: string[] },
                        { channels?: string[]; roles?: string[]; users?: string[] },
                    >,
                >;
                for: ZodOptional<
                    ZodObject<
                        {
                            channels: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            roles: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                            users: ZodOptional<
                                ZodArray<ZodType<string, ZodTypeDef, string>, "many">,
                            >;
                        },
                        "strip",
                        ZodTypeAny,
                        { channels?: string[]; roles?: string[]; users?: string[] },
                        { channels?: string[]; roles?: string[]; users?: string[] },
                    >,
                >;
                is_bypasser: ZodDefault<ZodBoolean>;
                mode: ZodDefault<ZodEnum<["normal", "invert"]>>;
                name: ZodDefault<ZodNullable<ZodString>>;
                type: ZodLiteral<"file_extension_filter">;
            },
            "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" }
                )[];
                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" }
                )[];
                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";
            },
        >,
    ],
> = ...
MMNEPVFCICPMFPCPTTAAATR