llmProviderToolChoiceSchema: ZodUnion<
    [
        ZodUnion<
            [
                ZodLiteral<"auto">,
                ZodLiteral<"none">,
                ZodLiteral<"required">,
                ZodObject<
                    {
                        function: ZodObject<
                            { name: ZodString },
                            "strip",
                            ZodTypeAny,
                            { name: string },
                            { name: string },
                        >;
                        type: ZodLiteral<"function">;
                    },
                    "strip",
                    ZodTypeAny,
                    { function: { name: string }; type: "function" },
                    { function: { name: string }; type: "function" },
                >,
            ],
        >,
        ZodDiscriminatedUnion<
            "type",
            [
                ZodObject<
                    { name: ZodString; type: ZodLiteral<"tool"> },
                    "strip",
                    ZodTypeAny,
                    { name: string; type: "tool" },
                    { name: string; type: "tool" },
                >,
                ZodObject<
                    { type: ZodLiteral<"auto"> },
                    "strip",
                    ZodTypeAny,
                    { type: "auto" },
                    { type: "auto" },
                >,
                ZodObject<
                    { type: ZodLiteral<"any"> },
                    "strip",
                    ZodTypeAny,
                    { type: "any" },
                    { type: "any" },
                >,
            ],
        >,
        ZodUnion<
            [
                ZodObject<
                    { type: ZodLiteral<"none"> },
                    "strip",
                    ZodTypeAny,
                    { type: "none" },
                    { type: "none" },
                >,
                ZodObject<
                    { type: ZodLiteral<"zero_or_more"> },
                    "strip",
                    ZodTypeAny,
                    { type: "zero_or_more" },
                    { type: "zero_or_more" },
                >,
                ZodObject<
                    { type: ZodLiteral<"one_or_more"> },
                    "strip",
                    ZodTypeAny,
                    { type: "one_or_more" },
                    { type: "one_or_more" },
                >,
                ZodObject<
                    { function_name: ZodString; type: ZodLiteral<"specific_function"> },
                    "strip",
                    ZodTypeAny,
                    { function_name: string; type: "specific_function" },
                    { function_name: string; type: "specific_function" },
                >,
            ],
        >,
        ZodUnion<
            [
                ZodLiteral<"auto">,
                ZodLiteral<"none">,
                ZodLiteral<"required">,
                ZodObject<
                    { toolName: ZodString; type: ZodLiteral<"tool"> },
                    "strip",
                    ZodTypeAny,
                    { toolName: string; type: "tool" },
                    { toolName: string; type: "tool" },
                >,
            ],
        >,
    ],
> = ...