ArgumentPromptOptions: ZodObject<
    {
        breakout: ZodOptional<ZodBoolean>;
        cancel: ZodOptional<
            ZodUnion<
                [
                    ZodUnion<
                        [
                            ZodString,
                            ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                            ZodRecord<ZodString, ZodAny>,
                        ],
                    >,
                    ZodFunction<
                        ZodTuple<
                            [
                                ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                                ZodObject<
                                    {
                                        failure: ZodNullable<(...)>;
                                        infinite: ZodBoolean;
                                        message: ZodType<(...), (...), (...)>;
                                        phrase: ZodString;
                                        retries: ZodNumber;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                >,
                            ],
                            ZodUnknown,
                        >,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodPromise<ZodUnion<[(...), (...), (...)]>>,
                            ],
                        >,
                    >,
                ],
            >,
        >;
        cancelWord: ZodOptional<ZodString>;
        ended: ZodOptional<
            ZodUnion<
                [
                    ZodUnion<
                        [
                            ZodString,
                            ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                            ZodRecord<ZodString, ZodAny>,
                        ],
                    >,
                    ZodFunction<
                        ZodTuple<
                            [
                                ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                                ZodObject<
                                    {
                                        failure: ZodNullable<(...)>;
                                        infinite: ZodBoolean;
                                        message: ZodType<(...), (...), (...)>;
                                        phrase: ZodString;
                                        retries: ZodNumber;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                >,
                            ],
                            ZodUnknown,
                        >,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodPromise<ZodUnion<[(...), (...), (...)]>>,
                            ],
                        >,
                    >,
                ],
            >,
        >;
        infinite: ZodOptional<ZodBoolean>;
        limit: ZodOptional<ZodNumber>;
        modifyCancel: ZodOptional<
            ZodFunction<
                ZodTuple<
                    [
                        ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodFunction<
                                    ZodTuple<[(...), (...)], ZodUnknown>,
                                    ZodUnion<[(...), (...)]>,
                                >,
                            ],
                        >,
                    ],
                    ZodUnknown,
                >,
                ZodUnion<
                    [
                        ZodUnion<
                            [
                                ZodString,
                                ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                ZodRecord<ZodString, ZodAny>,
                            ],
                        >,
                        ZodPromise<
                            ZodUnion<
                                [
                                    ZodString,
                                    ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                    ZodRecord<ZodString, ZodAny>,
                                ],
                            >,
                        >,
                    ],
                >,
            >,
        >;
        modifyEnded: ZodOptional<
            ZodFunction<
                ZodTuple<
                    [
                        ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodFunction<
                                    ZodTuple<[(...), (...)], ZodUnknown>,
                                    ZodUnion<[(...), (...)]>,
                                >,
                            ],
                        >,
                    ],
                    ZodUnknown,
                >,
                ZodUnion<
                    [
                        ZodUnion<
                            [
                                ZodString,
                                ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                ZodRecord<ZodString, ZodAny>,
                            ],
                        >,
                        ZodPromise<
                            ZodUnion<
                                [
                                    ZodString,
                                    ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                    ZodRecord<ZodString, ZodAny>,
                                ],
                            >,
                        >,
                    ],
                >,
            >,
        >;
        modifyRetry: ZodOptional<
            ZodFunction<
                ZodTuple<
                    [
                        ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodFunction<
                                    ZodTuple<[(...), (...)], ZodUnknown>,
                                    ZodUnion<[(...), (...)]>,
                                >,
                            ],
                        >,
                    ],
                    ZodUnknown,
                >,
                ZodUnion<
                    [
                        ZodUnion<
                            [
                                ZodString,
                                ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                ZodRecord<ZodString, ZodAny>,
                            ],
                        >,
                        ZodPromise<
                            ZodUnion<
                                [
                                    ZodString,
                                    ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                    ZodRecord<ZodString, ZodAny>,
                                ],
                            >,
                        >,
                    ],
                >,
            >,
        >;
        modifyStart: ZodOptional<
            ZodFunction<
                ZodTuple<
                    [
                        ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodFunction<
                                    ZodTuple<[(...), (...)], ZodUnknown>,
                                    ZodUnion<[(...), (...)]>,
                                >,
                            ],
                        >,
                    ],
                    ZodUnknown,
                >,
                ZodUnion<
                    [
                        ZodUnion<
                            [
                                ZodString,
                                ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                ZodRecord<ZodString, ZodAny>,
                            ],
                        >,
                        ZodPromise<
                            ZodUnion<
                                [
                                    ZodString,
                                    ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                    ZodRecord<ZodString, ZodAny>,
                                ],
                            >,
                        >,
                    ],
                >,
            >,
        >;
        modifyTimeout: ZodOptional<
            ZodFunction<
                ZodTuple<
                    [
                        ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodFunction<
                                    ZodTuple<[(...), (...)], ZodUnknown>,
                                    ZodUnion<[(...), (...)]>,
                                >,
                            ],
                        >,
                    ],
                    ZodUnknown,
                >,
                ZodUnion<
                    [
                        ZodUnion<
                            [
                                ZodString,
                                ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                ZodRecord<ZodString, ZodAny>,
                            ],
                        >,
                        ZodPromise<
                            ZodUnion<
                                [
                                    ZodString,
                                    ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                                    ZodRecord<ZodString, ZodAny>,
                                ],
                            >,
                        >,
                    ],
                >,
            >,
        >;
        optional: ZodOptional<ZodBoolean>;
        retries: ZodOptional<ZodNumber>;
        retry: ZodOptional<
            ZodUnion<
                [
                    ZodUnion<
                        [
                            ZodString,
                            ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                            ZodRecord<ZodString, ZodAny>,
                        ],
                    >,
                    ZodFunction<
                        ZodTuple<
                            [
                                ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                                ZodObject<
                                    {
                                        failure: ZodNullable<(...)>;
                                        infinite: ZodBoolean;
                                        message: ZodType<(...), (...), (...)>;
                                        phrase: ZodString;
                                        retries: ZodNumber;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                >,
                            ],
                            ZodUnknown,
                        >,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodPromise<ZodUnion<[(...), (...), (...)]>>,
                            ],
                        >,
                    >,
                ],
            >,
        >;
        start: ZodOptional<
            ZodUnion<
                [
                    ZodUnion<
                        [
                            ZodString,
                            ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                            ZodRecord<ZodString, ZodAny>,
                        ],
                    >,
                    ZodFunction<
                        ZodTuple<
                            [
                                ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                                ZodObject<
                                    {
                                        failure: ZodNullable<(...)>;
                                        infinite: ZodBoolean;
                                        message: ZodType<(...), (...), (...)>;
                                        phrase: ZodString;
                                        retries: ZodNumber;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                >,
                            ],
                            ZodUnknown,
                        >,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodPromise<ZodUnion<[(...), (...), (...)]>>,
                            ],
                        >,
                    >,
                ],
            >,
        >;
        stopWord: ZodOptional<ZodString>;
        time: ZodOptional<ZodNumber>;
        timeout: ZodOptional<
            ZodUnion<
                [
                    ZodUnion<
                        [
                            ZodString,
                            ZodType<MessagePayload, ZodTypeDef, MessagePayload>,
                            ZodRecord<ZodString, ZodAny>,
                        ],
                    >,
                    ZodFunction<
                        ZodTuple<
                            [
                                ZodType<Message<boolean>, ZodTypeDef, Message<boolean>>,
                                ZodObject<
                                    {
                                        failure: ZodNullable<(...)>;
                                        infinite: ZodBoolean;
                                        message: ZodType<(...), (...), (...)>;
                                        phrase: ZodString;
                                        retries: ZodNumber;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                    {
                                        failure: (...)
                                        | (...);
                                        infinite: boolean;
                                        message: Message<(...)>;
                                        phrase: string;
                                        retries: number;
                                    },
                                >,
                            ],
                            ZodUnknown,
                        >,
                        ZodUnion<
                            [
                                ZodUnion<
                                    [
                                        ZodString,
                                        ZodType<(...), (...), (...)>,
                                        ZodRecord<(...), (...)>,
                                    ],
                                >,
                                ZodPromise<ZodUnion<[(...), (...), (...)]>>,
                            ],
                        >,
                    >,
                ],
            >,
        >;
    },
    "strip",
    ZodTypeAny,
    {
        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<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>;
        modifyEnded?: (
            ...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>;
        modifyRetry?: (
            ...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>;
        modifyStart?: (
            ...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>;
        modifyTimeout?: (
            ...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>;
        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>;
    },
    {
        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<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>;
        modifyEnded?: (
            ...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>;
        modifyRetry?: (
            ...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>;
        modifyStart?: (
            ...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>;
        modifyTimeout?: (
            ...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>;
        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>;
    },
>