CommandOptions: ZodObject<
    extendShape<
        { category: ZodOptional<ZodString> },
        {
            aliases: ZodOptional<ZodArray<ZodString, "many">>;
            args: ZodOptional<
                ZodUnion<
                    [
                        ZodArray<
                            ZodObject<
                                {
                                    default: ZodAny;
                                    description: ZodAny;
                                    flag: ZodOptional<ZodNullable<(...)>>;
                                    id: ZodOptional<ZodNullable<(...)>>;
                                    index: ZodOptional<ZodNullable<(...)>>;
                                    limit: ZodOptional<ZodNumber>;
                                    match: ZodOptional<ZodNativeEnum<(...)>>;
                                    modifyOtherwise: ZodOptional<ZodOptional<(...)>>;
                                    multipleFlags: ZodOptional<ZodBoolean>;
                                    otherwise: ZodOptional<ZodNullable<(...)>>;
                                    prompt: ZodOptional<ZodNullable<(...)>>;
                                    type: ZodOptional<ZodUnion<(...)>>;
                                    unordered: ZodOptional<ZodUnion<(...)>>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    default?: any;
                                    description?: any;
                                    flag?: null
                                    | string
                                    | (...)[];
                                    id?: null | string;
                                    index?: null | number;
                                    limit?: number;
                                    match?:
                                        | PHRASE
                                        | FLAG
                                        | OPTION
                                        | REST
                                        | SEPARATE
                                        | TEXT
                                        | CONTENT
                                        | REST_CONTENT
                                        | NONE;
                                    modifyOtherwise?: null
                                    | (...args: ...) => ...;
                                    multipleFlags?: boolean;
                                    otherwise?:
                                        | null
                                        | string
                                        | Record<(...), (...)>
                                        | MessagePayload
                                        | (...args: ...) => ...;
                                    prompt?:
                                        | null
                                        | boolean
                                        | {
                                            breakout?: ...;
                                            cancel?: ...;
                                            cancelWord?: ...;
                                            ended?: ...;
                                            infinite?: ...;
                                            limit?: ...;
                                            modifyCancel?: ...;
                                            modifyEnded?: ...;
                                            modifyRetry?: ...;
                                            modifyStart?: ...;
                                            modifyTimeout?: ...;
                                            optional?: ...;
                                            retries?: ...;
                                            retry?: ...;
                                            start?: ...;
                                            stopWord?: ...;
                                            time?: ...;
                                            timeout?: ...;
                                        };
                                    type?: string
                                    | RegExp
                                    | (...)[]
                                    | (...args: ...) => ...;
                                    unordered?: number | boolean | (...)[];
                                },
                                {
                                    default?: any;
                                    description?: any;
                                    flag?: null
                                    | string
                                    | (...)[];
                                    id?: null | string;
                                    index?: null | number;
                                    limit?: number;
                                    match?:
                                        | PHRASE
                                        | FLAG
                                        | OPTION
                                        | REST
                                        | SEPARATE
                                        | TEXT
                                        | CONTENT
                                        | REST_CONTENT
                                        | NONE;
                                    modifyOtherwise?: null
                                    | (...args: ...) => ...;
                                    multipleFlags?: boolean;
                                    otherwise?:
                                        | null
                                        | string
                                        | Record<(...), (...)>
                                        | MessagePayload
                                        | (...args: ...) => ...;
                                    prompt?:
                                        | null
                                        | boolean
                                        | {
                                            breakout?: ...;
                                            cancel?: ...;
                                            cancelWord?: ...;
                                            ended?: ...;
                                            infinite?: ...;
                                            limit?: ...;
                                            modifyCancel?: ...;
                                            modifyEnded?: ...;
                                            modifyRetry?: ...;
                                            modifyStart?: ...;
                                            modifyTimeout?: ...;
                                            optional?: ...;
                                            retries?: ...;
                                            retry?: ...;
                                            start?: ...;
                                            stopWord?: ...;
                                            time?: ...;
                                            timeout?: ...;
                                        };
                                    type?: string
                                    | RegExp
                                    | (...)[]
                                    | (...args: ...) => ...;
                                    unordered?: number | boolean | (...)[];
                                },
                            >,
                            "many",
                        >,
                        ZodFunction<
                            ZodTuple<
                                [
                                    ZodType<Message<(...)>, ZodTypeDef, Message<(...)>>,
                                    ZodObject<
                                        { all: ...; flags: ...; optionFlags: ...; phrases: ... },
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >,
                                    ZodObject<
                                        { index: ...; phraseIndex: ...; usedIndices: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { index: ...; phraseIndex: ...; usedIndices: ... },
                                        { index: ...; phraseIndex: ...; usedIndices: ... },
                                    >,
                                ],
                                ZodUnknown,
                            >,
                            ZodAny,
                        >,
                    ],
                >,
            >;
            argumentDefaults: ZodOptional<
                ZodObject<
                    extendShape<
                        {
                            modifyOtherwise: ZodOptional<
                                ZodFunction<
                                    ZodTuple<[(...), (...)], ZodUnknown>,
                                    ZodUnion<[(...), (...)]>,
                                >,
                            >;
                            otherwise: ZodOptional<
                                ZodUnion<[ZodUnion<(...)>, ZodFunction<(...), (...)>]>,
                            >;
                        },
                        {
                            prompt: ZodOptional<
                                ZodObject<
                                    {
                                        breakout: ZodOptional<(...)>;
                                        cancel: ZodOptional<(...)>;
                                        cancelWord: ZodOptional<(...)>;
                                        ended: ZodOptional<(...)>;
                                        infinite: ZodOptional<(...)>;
                                        limit: ZodOptional<(...)>;
                                        modifyCancel: ZodOptional<(...)>;
                                        modifyEnded: ZodOptional<(...)>;
                                        modifyRetry: ZodOptional<(...)>;
                                        modifyStart: ZodOptional<(...)>;
                                        modifyTimeout: ZodOptional<(...)>;
                                        optional: ZodOptional<(...)>;
                                        retries: ZodOptional<(...)>;
                                        retry: ZodOptional<(...)>;
                                        start: ZodOptional<(...)>;
                                        stopWord: ZodOptional<(...)>;
                                        time: ZodOptional<(...)>;
                                        timeout: ZodOptional<(...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        breakout?: (...)
                                        | (...)
                                        | (...);
                                        cancel?: (...) | (...) | (...) | (...) | (...);
                                        cancelWord?: (...) | (...);
                                        ended?: (...) | (...) | (...) | (...) | (...);
                                        infinite?: (...) | (...) | (...);
                                        limit?: (...) | (...);
                                        modifyCancel?: (...) | (...);
                                        modifyEnded?: (...) | (...);
                                        modifyRetry?: (...) | (...);
                                        modifyStart?: (...) | (...);
                                        modifyTimeout?: (...) | (...);
                                        optional?: (...) | (...) | (...);
                                        retries?: (...) | (...);
                                        retry?: (...) | (...) | (...) | (...) | (...);
                                        start?: (...) | (...) | (...) | (...) | (...);
                                        stopWord?: (...) | (...);
                                        time?: (...) | (...);
                                        timeout?: (...) | (...) | (...) | (...) | (...);
                                    },
                                    {
                                        breakout?: (...)
                                        | (...)
                                        | (...);
                                        cancel?: (...) | (...) | (...) | (...) | (...);
                                        cancelWord?: (...) | (...);
                                        ended?: (...) | (...) | (...) | (...) | (...);
                                        infinite?: (...) | (...) | (...);
                                        limit?: (...) | (...);
                                        modifyCancel?: (...) | (...);
                                        modifyEnded?: (...) | (...);
                                        modifyRetry?: (...) | (...);
                                        modifyStart?: (...) | (...);
                                        modifyTimeout?: (...) | (...);
                                        optional?: (...) | (...) | (...);
                                        retries?: (...) | (...);
                                        retry?: (...) | (...) | (...) | (...) | (...);
                                        start?: (...) | (...) | (...) | (...) | (...);
                                        stopWord?: (...) | (...);
                                        time?: (...) | (...);
                                        timeout?: (...) | (...) | (...) | (...) | (...);
                                    },
                                >,
                            >;
                        },
                    >,
                    "strip",
                    ZodTypeAny,
                    {
                        modifyOtherwise?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        otherwise?:
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | (
                                ...args: [
                                    Message<boolean>,
                                    { failure: (...) | (...); phrase: string },
                                    ...unknown[],
                                ],
                            ) =>
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | Promise<(...) | (...) | (...)>;
                        prompt?: {
                            breakout?: boolean;
                            cancel?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            cancelWord?: string;
                            ended?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            infinite?: boolean;
                            limit?: number;
                            modifyCancel?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyEnded?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyRetry?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyStart?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyTimeout?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            optional?: boolean;
                            retries?: number;
                            retry?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            start?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            stopWord?: string;
                            time?: number;
                            timeout?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                        };
                    },
                    {
                        modifyOtherwise?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        otherwise?:
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | (
                                ...args: [
                                    Message<boolean>,
                                    { failure: (...) | (...); phrase: string },
                                    ...unknown[],
                                ],
                            ) =>
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | Promise<(...) | (...) | (...)>;
                        prompt?: {
                            breakout?: boolean;
                            cancel?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            cancelWord?: string;
                            ended?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            infinite?: boolean;
                            limit?: number;
                            modifyCancel?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyEnded?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyRetry?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyStart?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            modifyTimeout?: (
                                ...args: [(...), (...), ...(...)[]],
                            ) => (...) | (...) | (...) | (...);
                            optional?: boolean;
                            retries?: number;
                            retry?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            start?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                            stopWord?: string;
                            time?: number;
                            timeout?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [(...), (...), ...(...)[]],
                                ) => (...) | (...) | (...) | (...);
                        };
                    },
                >,
            >;
            before: ZodOptional<
                ZodFunction<
                    ZodTuple<
                        [ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>],
                        ZodUnknown,
                    >,
                    ZodAny,
                >,
            >;
            channel: ZodOptional<ZodNullable<ZodEnum<["guild", "dm"]>>>;
            clientPermissions: ZodOptional<
                ZodUnion<
                    [
                        ZodType<PermissionResolvable, any, PermissionResolvable>,
                        ZodFunction<
                            ZodTuple<[ZodUnion<[(...), (...)]>], ZodUnknown>,
                            ZodUnion<[ZodAny, ZodPromise<ZodAny>]>,
                        >,
                    ],
                >,
            >;
            condition: ZodOptional<
                ZodFunction<
                    ZodTuple<
                        [ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>],
                        ZodUnknown,
                    >,
                    ZodUnion<[ZodBoolean, ZodPromise<ZodBoolean>]>,
                >,
            >;
            cooldown: ZodOptional<ZodNullable<ZodNumber>>;
            description: ZodOptional<
                ZodUnion<[ZodString, ZodUnion<[ZodAny, ZodArray<ZodAny, "many">]>]>,
            >;
            editable: ZodOptional<ZodBoolean>;
            flags: ZodOptional<ZodArray<ZodString, "many">>;
            ignoreCooldown: ZodOptional<
                ZodUnion<
                    [
                        ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                        ZodFunction<
                            ZodTuple<
                                [ZodUnion<[(...), (...)]>, ZodType<Command, ZodTypeDef, Command>],
                                ZodUnknown,
                            >,
                            ZodBoolean,
                        >,
                    ],
                >,
            >;
            ignorePermissions: ZodOptional<
                ZodUnion<
                    [
                        ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                        ZodFunction<
                            ZodTuple<
                                [ZodUnion<[(...), (...)]>, ZodType<Command, ZodTypeDef, Command>],
                                ZodUnknown,
                            >,
                            ZodBoolean,
                        >,
                    ],
                >,
            >;
            localization: ZodOptional<ZodRecord<ZodString, ZodAny>>;
            lock: ZodOptional<
                ZodUnion<
                    [
                        ZodFunction<
                            ZodTuple<
                                [ZodUnion<[(...), (...)]>, ZodRecord<ZodString, ZodAny>],
                                ZodUnknown,
                            >,
                            ZodString,
                        >,
                        ZodEnum<["guild", "channel", "user"]>,
                    ],
                >,
            >;
            onlyNsfw: ZodOptional<ZodBoolean>;
            optionFlags: ZodOptional<ZodArray<ZodString, "many">>;
            ownerOnly: ZodOptional<ZodBoolean>;
            prefix: ZodOptional<
                ZodUnion<
                    [
                        ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                        ZodFunction<
                            ZodTuple<
                                [ZodType<Message<(...)>, ZodTypeDef, Message<(...)>>],
                                ZodUnknown,
                            >,
                            ZodUnion<[ZodUnion<[(...), (...)]>, ZodPromise<ZodUnion<(...)>>]>,
                        >,
                    ],
                >,
            >;
            quoted: ZodOptional<ZodBoolean>;
            ratelimit: ZodOptional<ZodNumber>;
            regex: ZodOptional<
                ZodUnion<
                    [
                        ZodType<RegExp, ZodTypeDef, RegExp>,
                        ZodFunction<
                            ZodTuple<
                                [ZodType<Message<(...)>, ZodTypeDef, Message<(...)>>],
                                ZodUnknown,
                            >,
                            ZodType<RegExp, ZodTypeDef, RegExp>,
                        >,
                    ],
                >,
            >;
            separator: ZodOptional<ZodString>;
            slash: ZodOptional<ZodBoolean>;
            slashDefaultMemberPermissions: ZodOptional<
                ZodNullable<ZodType<PermissionResolvable, any, PermissionResolvable>>,
            >;
            slashDmPermission: ZodOptional<ZodBoolean>;
            slashEphemeral: ZodOptional<ZodBoolean>;
            slashGuilds: ZodOptional<ZodArray<ZodString, "many">>;
            slashOnly: ZodOptional<ZodBoolean>;
            slashOptions: ZodOptional<ZodArray<ZodAny, "many">>;
            superUserOnly: ZodOptional<ZodBoolean>;
            typing: ZodOptional<ZodBoolean>;
            userPermissions: ZodOptional<
                ZodUnion<
                    [
                        ZodType<PermissionResolvable, any, PermissionResolvable>,
                        ZodFunction<
                            ZodTuple<[ZodUnion<[(...), (...)]>], ZodUnknown>,
                            ZodUnion<[ZodAny, ZodPromise<ZodAny>]>,
                        >,
                    ],
                >,
            >;
        },
    >,
    "passthrough",
    ZodTypeAny,
    objectOutputType<
        extendShape<
            { category: ZodOptional<ZodString> },
            {
                aliases: ZodOptional<ZodArray<ZodString, "many">>;
                args: ZodOptional<
                    ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    {
                                        default: ZodAny;
                                        description: ZodAny;
                                        flag: ZodOptional<(...)>;
                                        id: ZodOptional<(...)>;
                                        index: ZodOptional<(...)>;
                                        limit: ZodOptional<(...)>;
                                        match: ZodOptional<(...)>;
                                        modifyOtherwise: ZodOptional<(...)>;
                                        multipleFlags: ZodOptional<(...)>;
                                        otherwise: ZodOptional<(...)>;
                                        prompt: ZodOptional<(...)>;
                                        type: ZodOptional<(...)>;
                                        unordered: ZodOptional<(...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        default?: any;
                                        description?: any;
                                        flag?: (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        id?: (...) | (...) | (...);
                                        index?: (...) | (...) | (...);
                                        limit?: (...) | (...);
                                        match?:
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...);
                                        modifyOtherwise?: (...) | (...) | (...);
                                        multipleFlags?: (...) | (...) | (...);
                                        otherwise?: (...) | (...) | (...) | (...) | (...) | (...);
                                        prompt?: (...) | (...) | (...) | (...) | (...);
                                        type?: (...) | (...) | (...) | (...) | (...);
                                        unordered?: (...) | (...) | (...) | (...) | (...);
                                    },
                                    {
                                        default?: any;
                                        description?: any;
                                        flag?: (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        id?: (...) | (...) | (...);
                                        index?: (...) | (...) | (...);
                                        limit?: (...) | (...);
                                        match?:
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...);
                                        modifyOtherwise?: (...) | (...) | (...);
                                        multipleFlags?: (...) | (...) | (...);
                                        otherwise?: (...) | (...) | (...) | (...) | (...) | (...);
                                        prompt?: (...) | (...) | (...) | (...) | (...);
                                        type?: (...) | (...) | (...) | (...) | (...);
                                        unordered?: (...) | (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                            ZodFunction<
                                ZodTuple<
                                    [
                                        ZodType<(...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    ],
                                    ZodUnknown,
                                >,
                                ZodAny,
                            >,
                        ],
                    >,
                >;
                argumentDefaults: ZodOptional<
                    ZodObject<
                        extendShape<
                            {
                                modifyOtherwise: ZodOptional<
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                >;
                                otherwise: ZodOptional<ZodUnion<[(...), (...)]>>;
                            },
                            {
                                prompt: ZodOptional<
                                    ZodObject<
                                        {
                                            breakout: ...;
                                            cancel: ...;
                                            cancelWord: ...;
                                            ended: ...;
                                            infinite: ...;
                                            limit: ...;
                                            modifyCancel: ...;
                                            modifyEnded: ...;
                                            modifyRetry: ...;
                                            modifyStart: ...;
                                            modifyTimeout: ...;
                                            optional: ...;
                                            retries: ...;
                                            retry: ...;
                                            start: ...;
                                            stopWord: ...;
                                            time: ...;
                                            timeout: ...;
                                        },
                                        "strip",
                                        ZodTypeAny,
                                        {
                                            breakout?: ...;
                                            cancel?: ...;
                                            cancelWord?: ...;
                                            ended?: ...;
                                            infinite?: ...;
                                            limit?: ...;
                                            modifyCancel?: ...;
                                            modifyEnded?: ...;
                                            modifyRetry?: ...;
                                            modifyStart?: ...;
                                            modifyTimeout?: ...;
                                            optional?: ...;
                                            retries?: ...;
                                            retry?: ...;
                                            start?: ...;
                                            stopWord?: ...;
                                            time?: ...;
                                            timeout?: ...;
                                        },
                                        {
                                            breakout?: ...;
                                            cancel?: ...;
                                            cancelWord?: ...;
                                            ended?: ...;
                                            infinite?: ...;
                                            limit?: ...;
                                            modifyCancel?: ...;
                                            modifyEnded?: ...;
                                            modifyRetry?: ...;
                                            modifyStart?: ...;
                                            modifyTimeout?: ...;
                                            optional?: ...;
                                            retries?: ...;
                                            retry?: ...;
                                            start?: ...;
                                            stopWord?: ...;
                                            time?: ...;
                                            timeout?: ...;
                                        },
                                    >,
                                >;
                            },
                        >,
                        "strip",
                        ZodTypeAny,
                        {
                            modifyOtherwise?: (
                                ...args: [
                                    Message<(...)>,
                                    (...) | (...) | (...) | (...),
                                    ...unknown[],
                                ],
                            ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            otherwise?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [
                                        Message<(...)>,
                                        { failure: ...; phrase: ... },
                                        ...unknown[],
                                    ],
                                ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            prompt?: {
                                breakout?: boolean;
                                cancel?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                cancelWord?: string;
                                ended?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                infinite?: boolean;
                                limit?: number;
                                modifyCancel?: (...args: ...) => ...;
                                modifyEnded?: (...args: ...) => ...;
                                modifyRetry?: (...args: ...) => ...;
                                modifyStart?: (...args: ...) => ...;
                                modifyTimeout?: (...args: ...) => ...;
                                optional?: boolean;
                                retries?: number;
                                retry?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                start?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                stopWord?: string;
                                time?: number;
                                timeout?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                            };
                        },
                        {
                            modifyOtherwise?: (
                                ...args: [
                                    Message<(...)>,
                                    (...) | (...) | (...) | (...),
                                    ...unknown[],
                                ],
                            ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            otherwise?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [
                                        Message<(...)>,
                                        { failure: ...; phrase: ... },
                                        ...unknown[],
                                    ],
                                ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            prompt?: {
                                breakout?: boolean;
                                cancel?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                cancelWord?: string;
                                ended?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                infinite?: boolean;
                                limit?: number;
                                modifyCancel?: (...args: ...) => ...;
                                modifyEnded?: (...args: ...) => ...;
                                modifyRetry?: (...args: ...) => ...;
                                modifyStart?: (...args: ...) => ...;
                                modifyTimeout?: (...args: ...) => ...;
                                optional?: boolean;
                                retries?: number;
                                retry?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                start?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                stopWord?: string;
                                time?: number;
                                timeout?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                            };
                        },
                    >,
                >;
                before: ZodOptional<
                    ZodFunction<
                        ZodTuple<
                            [ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>],
                            ZodUnknown,
                        >,
                        ZodAny,
                    >,
                >;
                channel: ZodOptional<ZodNullable<ZodEnum<["guild", "dm"]>>>;
                clientPermissions: ZodOptional<
                    ZodUnion<
                        [
                            ZodType<PermissionResolvable, any, PermissionResolvable>,
                            ZodFunction<
                                ZodTuple<[ZodUnion<(...)>], ZodUnknown>,
                                ZodUnion<[ZodAny, ZodPromise<(...)>]>,
                            >,
                        ],
                    >,
                >;
                condition: ZodOptional<
                    ZodFunction<
                        ZodTuple<
                            [ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>],
                            ZodUnknown,
                        >,
                        ZodUnion<[ZodBoolean, ZodPromise<ZodBoolean>]>,
                    >,
                >;
                cooldown: ZodOptional<ZodNullable<ZodNumber>>;
                description: ZodOptional<
                    ZodUnion<[ZodString, ZodUnion<[ZodAny, ZodArray<ZodAny, "many">]>]>,
                >;
                editable: ZodOptional<ZodBoolean>;
                flags: ZodOptional<ZodArray<ZodString, "many">>;
                ignoreCooldown: ZodOptional<
                    ZodUnion<
                        [
                            ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                            ZodFunction<
                                ZodTuple<
                                    [ZodUnion<(...)>, ZodType<(...), (...), (...)>],
                                    ZodUnknown,
                                >,
                                ZodBoolean,
                            >,
                        ],
                    >,
                >;
                ignorePermissions: ZodOptional<
                    ZodUnion<
                        [
                            ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                            ZodFunction<
                                ZodTuple<
                                    [ZodUnion<(...)>, ZodType<(...), (...), (...)>],
                                    ZodUnknown,
                                >,
                                ZodBoolean,
                            >,
                        ],
                    >,
                >;
                localization: ZodOptional<ZodRecord<ZodString, ZodAny>>;
                lock: ZodOptional<
                    ZodUnion<
                        [
                            ZodFunction<
                                ZodTuple<[ZodUnion<(...)>, ZodRecord<(...), (...)>], ZodUnknown>,
                                ZodString,
                            >,
                            ZodEnum<["guild", "channel", "user"]>,
                        ],
                    >,
                >;
                onlyNsfw: ZodOptional<ZodBoolean>;
                optionFlags: ZodOptional<ZodArray<ZodString, "many">>;
                ownerOnly: ZodOptional<ZodBoolean>;
                prefix: ZodOptional<
                    ZodUnion<
                        [
                            ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                            ZodFunction<
                                ZodTuple<[ZodType<(...), (...), (...)>], ZodUnknown>,
                                ZodUnion<[ZodUnion<(...)>, ZodPromise<(...)>]>,
                            >,
                        ],
                    >,
                >;
                quoted: ZodOptional<ZodBoolean>;
                ratelimit: ZodOptional<ZodNumber>;
                regex: ZodOptional<
                    ZodUnion<
                        [
                            ZodType<RegExp, ZodTypeDef, RegExp>,
                            ZodFunction<
                                ZodTuple<[ZodType<(...), (...), (...)>], ZodUnknown>,
                                ZodType<RegExp, ZodTypeDef, RegExp>,
                            >,
                        ],
                    >,
                >;
                separator: ZodOptional<ZodString>;
                slash: ZodOptional<ZodBoolean>;
                slashDefaultMemberPermissions: ZodOptional<
                    ZodNullable<
                        ZodType<PermissionResolvable, any, PermissionResolvable>,
                    >,
                >;
                slashDmPermission: ZodOptional<ZodBoolean>;
                slashEphemeral: ZodOptional<ZodBoolean>;
                slashGuilds: ZodOptional<ZodArray<ZodString, "many">>;
                slashOnly: ZodOptional<ZodBoolean>;
                slashOptions: ZodOptional<ZodArray<ZodAny, "many">>;
                superUserOnly: ZodOptional<ZodBoolean>;
                typing: ZodOptional<ZodBoolean>;
                userPermissions: ZodOptional<
                    ZodUnion<
                        [
                            ZodType<PermissionResolvable, any, PermissionResolvable>,
                            ZodFunction<
                                ZodTuple<[ZodUnion<(...)>], ZodUnknown>,
                                ZodUnion<[ZodAny, ZodPromise<(...)>]>,
                            >,
                        ],
                    >,
                >;
            },
        >,
        ZodTypeAny,
        "passthrough",
    >,
    objectInputType<
        extendShape<
            { category: ZodOptional<ZodString> },
            {
                aliases: ZodOptional<ZodArray<ZodString, "many">>;
                args: ZodOptional<
                    ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    {
                                        default: ZodAny;
                                        description: ZodAny;
                                        flag: ZodOptional<(...)>;
                                        id: ZodOptional<(...)>;
                                        index: ZodOptional<(...)>;
                                        limit: ZodOptional<(...)>;
                                        match: ZodOptional<(...)>;
                                        modifyOtherwise: ZodOptional<(...)>;
                                        multipleFlags: ZodOptional<(...)>;
                                        otherwise: ZodOptional<(...)>;
                                        prompt: ZodOptional<(...)>;
                                        type: ZodOptional<(...)>;
                                        unordered: ZodOptional<(...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        default?: any;
                                        description?: any;
                                        flag?: (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        id?: (...) | (...) | (...);
                                        index?: (...) | (...) | (...);
                                        limit?: (...) | (...);
                                        match?:
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...);
                                        modifyOtherwise?: (...) | (...) | (...);
                                        multipleFlags?: (...) | (...) | (...);
                                        otherwise?: (...) | (...) | (...) | (...) | (...) | (...);
                                        prompt?: (...) | (...) | (...) | (...) | (...);
                                        type?: (...) | (...) | (...) | (...) | (...);
                                        unordered?: (...) | (...) | (...) | (...) | (...);
                                    },
                                    {
                                        default?: any;
                                        description?: any;
                                        flag?: (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        id?: (...) | (...) | (...);
                                        index?: (...) | (...) | (...);
                                        limit?: (...) | (...);
                                        match?:
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...);
                                        modifyOtherwise?: (...) | (...) | (...);
                                        multipleFlags?: (...) | (...) | (...);
                                        otherwise?: (...) | (...) | (...) | (...) | (...) | (...);
                                        prompt?: (...) | (...) | (...) | (...) | (...);
                                        type?: (...) | (...) | (...) | (...) | (...);
                                        unordered?: (...) | (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                            ZodFunction<
                                ZodTuple<
                                    [
                                        ZodType<(...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    ],
                                    ZodUnknown,
                                >,
                                ZodAny,
                            >,
                        ],
                    >,
                >;
                argumentDefaults: ZodOptional<
                    ZodObject<
                        extendShape<
                            {
                                modifyOtherwise: ZodOptional<
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                >;
                                otherwise: ZodOptional<ZodUnion<[(...), (...)]>>;
                            },
                            {
                                prompt: ZodOptional<
                                    ZodObject<
                                        {
                                            breakout: ...;
                                            cancel: ...;
                                            cancelWord: ...;
                                            ended: ...;
                                            infinite: ...;
                                            limit: ...;
                                            modifyCancel: ...;
                                            modifyEnded: ...;
                                            modifyRetry: ...;
                                            modifyStart: ...;
                                            modifyTimeout: ...;
                                            optional: ...;
                                            retries: ...;
                                            retry: ...;
                                            start: ...;
                                            stopWord: ...;
                                            time: ...;
                                            timeout: ...;
                                        },
                                        "strip",
                                        ZodTypeAny,
                                        {
                                            breakout?: ...;
                                            cancel?: ...;
                                            cancelWord?: ...;
                                            ended?: ...;
                                            infinite?: ...;
                                            limit?: ...;
                                            modifyCancel?: ...;
                                            modifyEnded?: ...;
                                            modifyRetry?: ...;
                                            modifyStart?: ...;
                                            modifyTimeout?: ...;
                                            optional?: ...;
                                            retries?: ...;
                                            retry?: ...;
                                            start?: ...;
                                            stopWord?: ...;
                                            time?: ...;
                                            timeout?: ...;
                                        },
                                        {
                                            breakout?: ...;
                                            cancel?: ...;
                                            cancelWord?: ...;
                                            ended?: ...;
                                            infinite?: ...;
                                            limit?: ...;
                                            modifyCancel?: ...;
                                            modifyEnded?: ...;
                                            modifyRetry?: ...;
                                            modifyStart?: ...;
                                            modifyTimeout?: ...;
                                            optional?: ...;
                                            retries?: ...;
                                            retry?: ...;
                                            start?: ...;
                                            stopWord?: ...;
                                            time?: ...;
                                            timeout?: ...;
                                        },
                                    >,
                                >;
                            },
                        >,
                        "strip",
                        ZodTypeAny,
                        {
                            modifyOtherwise?: (
                                ...args: [
                                    Message<(...)>,
                                    (...) | (...) | (...) | (...),
                                    ...unknown[],
                                ],
                            ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            otherwise?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [
                                        Message<(...)>,
                                        { failure: ...; phrase: ... },
                                        ...unknown[],
                                    ],
                                ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            prompt?: {
                                breakout?: boolean;
                                cancel?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                cancelWord?: string;
                                ended?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                infinite?: boolean;
                                limit?: number;
                                modifyCancel?: (...args: ...) => ...;
                                modifyEnded?: (...args: ...) => ...;
                                modifyRetry?: (...args: ...) => ...;
                                modifyStart?: (...args: ...) => ...;
                                modifyTimeout?: (...args: ...) => ...;
                                optional?: boolean;
                                retries?: number;
                                retry?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                start?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                stopWord?: string;
                                time?: number;
                                timeout?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                            };
                        },
                        {
                            modifyOtherwise?: (
                                ...args: [
                                    Message<(...)>,
                                    (...) | (...) | (...) | (...),
                                    ...unknown[],
                                ],
                            ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            otherwise?:
                                | string
                                | Record<string, any>
                                | MessagePayload
                                | (
                                    ...args: [
                                        Message<(...)>,
                                        { failure: ...; phrase: ... },
                                        ...unknown[],
                                    ],
                                ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>;
                            prompt?: {
                                breakout?: boolean;
                                cancel?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                cancelWord?: string;
                                ended?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                infinite?: boolean;
                                limit?: number;
                                modifyCancel?: (...args: ...) => ...;
                                modifyEnded?: (...args: ...) => ...;
                                modifyRetry?: (...args: ...) => ...;
                                modifyStart?: (...args: ...) => ...;
                                modifyTimeout?: (...args: ...) => ...;
                                optional?: boolean;
                                retries?: number;
                                retry?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                start?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                                stopWord?: string;
                                time?: number;
                                timeout?:
                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...;
                            };
                        },
                    >,
                >;
                before: ZodOptional<
                    ZodFunction<
                        ZodTuple<
                            [ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>],
                            ZodUnknown,
                        >,
                        ZodAny,
                    >,
                >;
                channel: ZodOptional<ZodNullable<ZodEnum<["guild", "dm"]>>>;
                clientPermissions: ZodOptional<
                    ZodUnion<
                        [
                            ZodType<PermissionResolvable, any, PermissionResolvable>,
                            ZodFunction<
                                ZodTuple<[ZodUnion<(...)>], ZodUnknown>,
                                ZodUnion<[ZodAny, ZodPromise<(...)>]>,
                            >,
                        ],
                    >,
                >;
                condition: ZodOptional<
                    ZodFunction<
                        ZodTuple<
                            [ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>],
                            ZodUnknown,
                        >,
                        ZodUnion<[ZodBoolean, ZodPromise<ZodBoolean>]>,
                    >,
                >;
                cooldown: ZodOptional<ZodNullable<ZodNumber>>;
                description: ZodOptional<
                    ZodUnion<[ZodString, ZodUnion<[ZodAny, ZodArray<ZodAny, "many">]>]>,
                >;
                editable: ZodOptional<ZodBoolean>;
                flags: ZodOptional<ZodArray<ZodString, "many">>;
                ignoreCooldown: ZodOptional<
                    ZodUnion<
                        [
                            ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                            ZodFunction<
                                ZodTuple<
                                    [ZodUnion<(...)>, ZodType<(...), (...), (...)>],
                                    ZodUnknown,
                                >,
                                ZodBoolean,
                            >,
                        ],
                    >,
                >;
                ignorePermissions: ZodOptional<
                    ZodUnion<
                        [
                            ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                            ZodFunction<
                                ZodTuple<
                                    [ZodUnion<(...)>, ZodType<(...), (...), (...)>],
                                    ZodUnknown,
                                >,
                                ZodBoolean,
                            >,
                        ],
                    >,
                >;
                localization: ZodOptional<ZodRecord<ZodString, ZodAny>>;
                lock: ZodOptional<
                    ZodUnion<
                        [
                            ZodFunction<
                                ZodTuple<[ZodUnion<(...)>, ZodRecord<(...), (...)>], ZodUnknown>,
                                ZodString,
                            >,
                            ZodEnum<["guild", "channel", "user"]>,
                        ],
                    >,
                >;
                onlyNsfw: ZodOptional<ZodBoolean>;
                optionFlags: ZodOptional<ZodArray<ZodString, "many">>;
                ownerOnly: ZodOptional<ZodBoolean>;
                prefix: ZodOptional<
                    ZodUnion<
                        [
                            ZodUnion<[ZodString, ZodArray<ZodString, "many">]>,
                            ZodFunction<
                                ZodTuple<[ZodType<(...), (...), (...)>], ZodUnknown>,
                                ZodUnion<[ZodUnion<(...)>, ZodPromise<(...)>]>,
                            >,
                        ],
                    >,
                >;
                quoted: ZodOptional<ZodBoolean>;
                ratelimit: ZodOptional<ZodNumber>;
                regex: ZodOptional<
                    ZodUnion<
                        [
                            ZodType<RegExp, ZodTypeDef, RegExp>,
                            ZodFunction<
                                ZodTuple<[ZodType<(...), (...), (...)>], ZodUnknown>,
                                ZodType<RegExp, ZodTypeDef, RegExp>,
                            >,
                        ],
                    >,
                >;
                separator: ZodOptional<ZodString>;
                slash: ZodOptional<ZodBoolean>;
                slashDefaultMemberPermissions: ZodOptional<
                    ZodNullable<
                        ZodType<PermissionResolvable, any, PermissionResolvable>,
                    >,
                >;
                slashDmPermission: ZodOptional<ZodBoolean>;
                slashEphemeral: ZodOptional<ZodBoolean>;
                slashGuilds: ZodOptional<ZodArray<ZodString, "many">>;
                slashOnly: ZodOptional<ZodBoolean>;
                slashOptions: ZodOptional<ZodArray<ZodAny, "many">>;
                superUserOnly: ZodOptional<ZodBoolean>;
                typing: ZodOptional<ZodBoolean>;
                userPermissions: ZodOptional<
                    ZodUnion<
                        [
                            ZodType<PermissionResolvable, any, PermissionResolvable>,
                            ZodFunction<
                                ZodTuple<[ZodUnion<(...)>], ZodUnknown>,
                                ZodUnion<[ZodAny, ZodPromise<(...)>]>,
                            >,
                        ],
                    >,
                >;
            },
        >,
        ZodTypeAny,
        "passthrough",
    >,
>