DefaultArgumentOptions: ZodObject<
    extendShape<
        {
            modifyOtherwise: ZodOptional<
                ZodFunction<
                    ZodTuple<
                        [
                            ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                            ZodUnion<
                                [
                                    ZodUnion<[(...), (...), (...)]>,
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                ],
                            >,
                        ],
                        ZodUnknown,
                    >,
                    ZodUnion<
                        [
                            ZodUnion<
                                [
                                    ZodString,
                                    ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                    ZodRecord<ZodString, ZodAny>,
                                ],
                            >,
                            ZodPromise<
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                            >,
                        ],
                    >,
                >,
            >;
            otherwise: ZodOptional<
                ZodUnion<
                    [
                        ZodUnion<
                            [
                                ZodString,
                                ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                ZodRecord<ZodString, ZodAny>,
                            ],
                        >,
                        ZodFunction<
                            ZodTuple<
                                [
                                    ZodType<Message<(...)>, ZodTypeDef, Message<(...)>>,
                                    ZodObject<
                                        { failure: ...; phrase: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { failure: ...; phrase: ... },
                                        { failure: ...; phrase: ... },
                                    >,
                                ],
                                ZodUnknown,
                            >,
                            ZodUnion<
                                [ZodUnion<[(...), (...), (...)]>, ZodPromise<ZodUnion<(...)>>],
                            >,
                        >,
                    ],
                >,
            >;
        },
        {
            prompt: ZodOptional<
                ZodObject<
                    {
                        breakout: ZodOptional<ZodBoolean>;
                        cancel: ZodOptional<
                            ZodUnion<
                                [
                                    ZodUnion<[(...), (...), (...)]>,
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                ],
                            >,
                        >;
                        cancelWord: ZodOptional<ZodString>;
                        ended: ZodOptional<
                            ZodUnion<
                                [
                                    ZodUnion<[(...), (...), (...)]>,
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                ],
                            >,
                        >;
                        infinite: ZodOptional<ZodBoolean>;
                        limit: ZodOptional<ZodNumber>;
                        modifyCancel: ZodOptional<
                            ZodFunction<
                                ZodTuple<
                                    [ZodType<(...), (...), (...)>, ZodUnion<(...)>],
                                    ZodUnknown,
                                >,
                                ZodUnion<[ZodUnion<(...)>, ZodPromise<(...)>]>,
                            >,
                        >;
                        modifyEnded: ZodOptional<
                            ZodFunction<
                                ZodTuple<
                                    [ZodType<(...), (...), (...)>, ZodUnion<(...)>],
                                    ZodUnknown,
                                >,
                                ZodUnion<[ZodUnion<(...)>, ZodPromise<(...)>]>,
                            >,
                        >;
                        modifyRetry: ZodOptional<
                            ZodFunction<
                                ZodTuple<
                                    [ZodType<(...), (...), (...)>, ZodUnion<(...)>],
                                    ZodUnknown,
                                >,
                                ZodUnion<[ZodUnion<(...)>, ZodPromise<(...)>]>,
                            >,
                        >;
                        modifyStart: ZodOptional<
                            ZodFunction<
                                ZodTuple<
                                    [ZodType<(...), (...), (...)>, ZodUnion<(...)>],
                                    ZodUnknown,
                                >,
                                ZodUnion<[ZodUnion<(...)>, ZodPromise<(...)>]>,
                            >,
                        >;
                        modifyTimeout: ZodOptional<
                            ZodFunction<
                                ZodTuple<
                                    [ZodType<(...), (...), (...)>, ZodUnion<(...)>],
                                    ZodUnknown,
                                >,
                                ZodUnion<[ZodUnion<(...)>, ZodPromise<(...)>]>,
                            >,
                        >;
                        optional: ZodOptional<ZodBoolean>;
                        retries: ZodOptional<ZodNumber>;
                        retry: ZodOptional<
                            ZodUnion<
                                [
                                    ZodUnion<[(...), (...), (...)]>,
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                ],
                            >,
                        >;
                        start: ZodOptional<
                            ZodUnion<
                                [
                                    ZodUnion<[(...), (...), (...)]>,
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                ],
                            >,
                        >;
                        stopWord: ZodOptional<ZodString>;
                        time: ZodOptional<ZodNumber>;
                        timeout: ZodOptional<
                            ZodUnion<
                                [
                                    ZodUnion<[(...), (...), (...)]>,
                                    ZodFunction<ZodTuple<(...), (...)>, ZodUnion<(...)>>,
                                ],
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        breakout?: boolean;
                        cancel?: | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<boolean>,
                                {
                                    failure: (...) | (...);
                                    infinite: boolean;
                                    message: Message<(...)>;
                                    phrase: string;
                                    retries: number;
                                },
                                ...unknown[],
                            ],
                        ) => | string
                        | Record<string, any>
                        | MessagePayload
                        | Promise<(...) | (...) | (...)>;
                        cancelWord?: string;
                        ended?:
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | (
                                ...args: [
                                    Message<boolean>,
                                    {
                                        failure: (...) | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    ...unknown[],
                                ],
                            ) => | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        infinite?: boolean;
                        limit?: number;
                        modifyCancel?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyEnded?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyRetry?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyStart?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyTimeout?: (
                            ...args: [
                                Message<boolean>,

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

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyEnded?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyRetry?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyStart?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        modifyTimeout?: (
                            ...args: [
                                Message<boolean>,

                                    | string
                                    | Record<(...), (...)>
                                    | MessagePayload
                                    | (...args: ...) => ...,
                                ...unknown[],
                            ],
                        ) =>
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        optional?: boolean;
                        retries?: number;
                        retry?:
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | (
                                ...args: [
                                    Message<boolean>,
                                    {
                                        failure: (...) | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    ...unknown[],
                                ],
                            ) => | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        start?:
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | (
                                ...args: [
                                    Message<boolean>,
                                    {
                                        failure: (...) | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    ...unknown[],
                                ],
                            ) => | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                        stopWord?: string;
                        time?: number;
                        timeout?:
                            | string
                            | Record<string, any>
                            | MessagePayload
                            | (
                                ...args: [
                                    Message<boolean>,
                                    {
                                        failure: (...) | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    ...unknown[],
                                ],
                            ) => | string
                            | Record<string, any>
                            | MessagePayload
                            | Promise<(...) | (...) | (...)>;
                    },
                >,
            >;
        },
    >,
    "strip",
    ZodTypeAny,
    {
        modifyOtherwise?: (
            ...args: [
                Message<boolean>,

                    | string
                    | Record<string, any>
                    | MessagePayload
                    | (
                        ...args: [
                            Message<boolean>,
                            { failure: null | Flag<(...)>; phrase: string },
                            ...unknown[],
                        ],
                    ) =>
                        | string
                        | Record<string, any>
                        | MessagePayload
                        | Promise<string | Record<(...), (...)> | MessagePayload>,
                ...unknown[],
            ],
        ) =>
            | string
            | Record<string, any>
            | MessagePayload
            | Promise<string | Record<string, any> | MessagePayload>;
        otherwise?:
            | string
            | Record<string, any>
            | MessagePayload
            | (
                ...args: [
                    Message<boolean>,
                    { failure: null | Flag<Fail>; phrase: string },
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
        prompt?: {
            breakout?: boolean;
            cancel?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            cancelWord?: string;
            ended?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            infinite?: boolean;
            limit?: number;
            modifyCancel?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyEnded?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyRetry?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyStart?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyTimeout?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            optional?: boolean;
            retries?: number;
            retry?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            start?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            stopWord?: string;
            time?: number;
            timeout?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
        };
    },
    {
        modifyOtherwise?: (
            ...args: [
                Message<boolean>,

                    | string
                    | Record<string, any>
                    | MessagePayload
                    | (
                        ...args: [
                            Message<boolean>,
                            { failure: null | Flag<(...)>; phrase: string },
                            ...unknown[],
                        ],
                    ) =>
                        | string
                        | Record<string, any>
                        | MessagePayload
                        | Promise<string | Record<(...), (...)> | MessagePayload>,
                ...unknown[],
            ],
        ) =>
            | string
            | Record<string, any>
            | MessagePayload
            | Promise<string | Record<string, any> | MessagePayload>;
        otherwise?:
            | string
            | Record<string, any>
            | MessagePayload
            | (
                ...args: [
                    Message<boolean>,
                    { failure: null | Flag<Fail>; phrase: string },
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
        prompt?: {
            breakout?: boolean;
            cancel?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            cancelWord?: string;
            ended?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            infinite?: boolean;
            limit?: number;
            modifyCancel?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyEnded?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyRetry?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyStart?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            modifyTimeout?: (
                ...args: [
                    Message<boolean>,

                        | string
                        | Record<string, any>
                        | MessagePayload
                        | (
                            ...args: [
                                Message<(...)>,
                                { failure: ...; phrase: ... },
                                ...unknown[],
                            ],
                        ) => string | Record<(...), (...)> | MessagePayload | Promise<(...)>,
                    ...unknown[],
                ],
            ) =>
                | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            optional?: boolean;
            retries?: number;
            retry?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            start?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
            stopWord?: string;
            time?: number;
            timeout?:
                | string
                | Record<string, any>
                | MessagePayload
                | (
                    ...args: [
                        Message<boolean>,
                        {
                            failure: null | Flag<Fail>;
                            infinite: boolean;
                            message: Message<boolean>;
                            phrase: string;
                            retries: number;
                        },
                        ...unknown[],
                    ],
                ) => | string
                | Record<string, any>
                | MessagePayload
                | Promise<string | Record<string, any> | MessagePayload>;
        };
    },
>