Genkit JS API reference
    Preparing search index...

    Variable ModelRequestSchemaConst

    ModelRequestSchema: z.ZodObject<
        {
            config: z.ZodOptional<z.ZodAny>;
            docs: z.ZodOptional<
                z.ZodArray<
                    z.ZodObject<
                        {
                            content: z.ZodArray<
                                z.ZodUnion<
                                    [
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                        >,
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                        >,
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest: ...;
                                                toolResponse?: ...;
                                            },
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest: ...;
                                                toolResponse?: ...;
                                            },
                                        >,
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse: ...;
                                            },
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse: ...;
                                            },
                                        >,
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                        >,
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                            {
                                                custom: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                        >,
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning: ...;
                                                resource?: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                        >,
                                        z.ZodObject<
                                            (...) & (...),
                                            "strip",
                                            z.ZodTypeAny,
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                            {
                                                custom?: ...;
                                                data?: ...;
                                                media?: ...;
                                                metadata?: ...;
                                                reasoning?: ...;
                                                resource: ...;
                                                text?: ...;
                                                toolRequest?: ...;
                                                toolResponse?: ...;
                                            },
                                        >,
                                    ],
                                >,
                                "many",
                            >;
                            metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                            content: (
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text: string;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media: { contentType?: ...; url: ... };
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest: { input?: ...; name: ...; partial?: ...; ref?: ... };
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse: (...) & (...);
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom: Record<(...), (...)>;
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning: string;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource: { uri: ... };
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                            )[];
                            metadata?: Record<string, any>;
                        },
                        {
                            content: (
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text: string;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media: { contentType?: ...; url: ... };
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest: { input?: ...; name: ...; partial?: ...; ref?: ... };
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse: (...) & (...);
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom: Record<(...), (...)>;
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning: string;
                                    resource?: undefined;
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                                | {
                                    custom?: (...)
                                    | (...);
                                    data?: unknown;
                                    media?: undefined;
                                    metadata?: (...) | (...);
                                    reasoning?: undefined;
                                    resource: { uri: ... };
                                    text?: undefined;
                                    toolRequest?: undefined;
                                    toolResponse?: undefined;
                                }
                            )[];
                            metadata?: Record<string, any>;
                        },
                    >,
                    "many",
                >,
            >;
            messages: z.ZodArray<
                z.ZodObject<
                    {
                        content: z.ZodArray<
                            z.ZodUnion<
                                [
                                    z.ZodObject<
                                        {
                                            custom: ...;
                                            data: ...;
                                            media: ...;
                                            metadata: ...;
                                            reasoning: ...;
                                            resource: ...;
                                            toolRequest: ...;
                                            toolResponse: ...;
                                        } & { text: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom?: (...) | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text: string;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                        {
                                            custom?: (...)
                                            | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text: string;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                    >,
                                    z.ZodObject<
                                        {
                                            custom: ...;
                                            data: ...;
                                            metadata: ...;
                                            reasoning: ...;
                                            resource: ...;
                                            text: ...;
                                            toolRequest: ...;
                                            toolResponse: ...;
                                        } & { media: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom?: (...) | (...);
                                            data?: unknown;
                                            media: { contentType?: ...; url: ... };
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                        {
                                            custom?: (...)
                                            | (...);
                                            data?: unknown;
                                            media: { contentType?: ...; url: ... };
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                    >,
                                    z.ZodObject<
                                        {
                                            custom: ...;
                                            data: ...;
                                            media: ...;
                                            metadata: ...;
                                            reasoning: ...;
                                            resource: ...;
                                            text: ...;
                                            toolResponse: ...;
                                        } & { toolRequest: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom?: (...) | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest: { input?: ...; name: ...; partial?: ...; ref?: ... };
                                            toolResponse?: undefined;
                                        },
                                        {
                                            custom?: (...)
                                            | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest: { input?: ...; name: ...; partial?: ...; ref?: ... };
                                            toolResponse?: undefined;
                                        },
                                    >,
                                    z.ZodObject<
                                        {
                                            custom: ...;
                                            data: ...;
                                            media: ...;
                                            metadata: ...;
                                            reasoning: ...;
                                            resource: ...;
                                            text: ...;
                                            toolRequest: ...;
                                        } & { toolResponse: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom?: (...) | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse: (...) & (...);
                                        },
                                        {
                                            custom?: (...)
                                            | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse: (...) & (...);
                                        },
                                    >,
                                    z.ZodObject<
                                        {
                                            custom: ...;
                                            media: ...;
                                            metadata: ...;
                                            reasoning: ...;
                                            resource: ...;
                                            text: ...;
                                            toolRequest: ...;
                                            toolResponse: ...;
                                        } & { data: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom?: (...) | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                        {
                                            custom?: (...)
                                            | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                    >,
                                    z.ZodObject<
                                        {
                                            data: ...;
                                            media: ...;
                                            metadata: ...;
                                            reasoning: ...;
                                            resource: ...;
                                            text: ...;
                                            toolRequest: ...;
                                            toolResponse: ...;
                                        } & { custom: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom: Record<(...), (...)>;
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                        {
                                            custom: Record<(...), (...)>;
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                    >,
                                    z.ZodObject<
                                        {
                                            custom: ...;
                                            data: ...;
                                            media: ...;
                                            metadata: ...;
                                            resource: ...;
                                            text: ...;
                                            toolRequest: ...;
                                            toolResponse: ...;
                                        } & { reasoning: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom?: (...) | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning: string;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                        {
                                            custom?: (...)
                                            | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning: string;
                                            resource?: undefined;
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                    >,
                                    z.ZodObject<
                                        {
                                            custom: ...;
                                            data: ...;
                                            media: ...;
                                            metadata: ...;
                                            reasoning: ...;
                                            text: ...;
                                            toolRequest: ...;
                                            toolResponse: ...;
                                        } & { resource: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                            custom?: (...) | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource: { uri: ... };
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                        {
                                            custom?: (...)
                                            | (...);
                                            data?: unknown;
                                            media?: undefined;
                                            metadata?: (...) | (...);
                                            reasoning?: undefined;
                                            resource: { uri: ... };
                                            text?: undefined;
                                            toolRequest?: undefined;
                                            toolResponse?: undefined;
                                        },
                                    >,
                                ],
                            >,
                            "many",
                        >;
                        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
                        role: z.ZodEnum<["system", "user", "model", "tool"]>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                        content: (
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text: string;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media: { contentType?: (...) | (...); url: string };
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest: {
                                    input?: unknown;
                                    name: string;
                                    partial?: (...) | (...);
                                    ref?: (...) | (...);
                                };
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse: { name: ...; output?: ...; ref?: ... } & {
                                    content?: ...;
                                };
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom: Record<string, any>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning: string;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource: { uri: string };
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                        )[];
                        metadata?: Record<string, unknown>;
                        role: "model" | "tool" | "system" | "user";
                    },
                    {
                        content: (
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text: string;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media: { contentType?: (...) | (...); url: string };
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest: {
                                    input?: unknown;
                                    name: string;
                                    partial?: (...) | (...);
                                    ref?: (...) | (...);
                                };
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse: { name: ...; output?: ...; ref?: ... } & {
                                    content?: ...;
                                };
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom: Record<string, any>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning: string;
                                resource?: undefined;
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                            | {
                                custom?: Record<(...), (...)>;
                                data?: unknown;
                                media?: undefined;
                                metadata?: Record<(...), (...)>;
                                reasoning?: undefined;
                                resource: { uri: string };
                                text?: undefined;
                                toolRequest?: undefined;
                                toolResponse?: undefined;
                            }
                        )[];
                        metadata?: Record<string, unknown>;
                        role: "model" | "tool" | "system" | "user";
                    },
                >,
                "many",
            >;
            output: z.ZodOptional<
                z.ZodObject<
                    {
                        constrained: z.ZodOptional<z.ZodBoolean>;
                        contentType: z.ZodOptional<z.ZodString>;
                        format: z.ZodOptional<z.ZodString>;
                        schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                        constrained?: boolean;
                        contentType?: string;
                        format?: string;
                        schema?: Record<string, any>;
                    },
                    {
                        constrained?: boolean;
                        contentType?: string;
                        format?: string;
                        schema?: Record<string, any>;
                    },
                >,
            >;
            toolChoice: z.ZodOptional<z.ZodEnum<["auto", "required", "none"]>>;
            tools: z.ZodOptional<
                z.ZodArray<
                    z.ZodObject<
                        {
                            description: z.ZodString;
                            inputSchema: z.ZodOptional<
                                z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>,
                            >;
                            metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                            name: z.ZodString;
                            outputSchema: z.ZodOptional<
                                z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>,
                            >;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                            description: string;
                            inputSchema?: Record<string, any>
                            | null;
                            metadata?: Record<string, any>;
                            name: string;
                            outputSchema?: Record<string, any> | null;
                        },
                        {
                            description: string;
                            inputSchema?: Record<string, any>
                            | null;
                            metadata?: Record<string, any>;
                            name: string;
                            outputSchema?: Record<string, any> | null;
                        },
                    >,
                    "many",
                >,
            >;
        },
        "strip",
        z.ZodTypeAny,
        {
            config?: any;
            docs?: {
                content: (
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text: string;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media: { contentType?: (...) | (...); url: string };
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest: {
                            input?: unknown;
                            name: string;
                            partial?: (...) | (...);
                            ref?: (...) | (...);
                        };
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse: { name: ...; output?: ...; ref?: ... } & {
                            content?: ...;
                        };
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom: Record<string, any>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning: string;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource: { uri: string };
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                )[];
                metadata?: Record<string, any>;
            }[];
            messages: {
                content: (
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text: string;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media: { contentType?: string; url: string };
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest: {
                            input?: unknown;
                            name: string;
                            partial?: boolean;
                            ref?: string;
                        };
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse: { name: string; output?: unknown; ref?: (...) | (...) } & {
                            content?: (...)[];
                        };
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom: Record<string, any>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning: string;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource: { uri: string };
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                )[];
                metadata?: Record<string, unknown>;
                role: "model" | "tool" | "system" | "user";
            }[];
            output?: {
                constrained?: boolean;
                contentType?: string;
                format?: string;
                schema?: Record<string, any>;
            };
            toolChoice?: "none"
            | "auto"
            | "required";
            tools?: {
                description: string;
                inputSchema?: Record<string, any> | null;
                metadata?: Record<string, any>;
                name: string;
                outputSchema?: Record<string, any> | null;
            }[];
        },
        {
            config?: any;
            docs?: {
                content: (
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text: string;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media: { contentType?: (...) | (...); url: string };
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest: {
                            input?: unknown;
                            name: string;
                            partial?: (...) | (...);
                            ref?: (...) | (...);
                        };
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse: { name: ...; output?: ...; ref?: ... } & {
                            content?: ...;
                        };
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom: Record<string, any>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning: string;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<(...), (...)>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<(...), (...)>;
                        reasoning?: undefined;
                        resource: { uri: string };
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                )[];
                metadata?: Record<string, any>;
            }[];
            messages: {
                content: (
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text: string;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media: { contentType?: string; url: string };
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest: {
                            input?: unknown;
                            name: string;
                            partial?: boolean;
                            ref?: string;
                        };
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse: { name: string; output?: unknown; ref?: (...) | (...) } & {
                            content?: (...)[];
                        };
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom: Record<string, any>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning: string;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource: { uri: string };
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                )[];
                metadata?: Record<string, unknown>;
                role: "model" | "tool" | "system" | "user";
            }[];
            output?: {
                constrained?: boolean;
                contentType?: string;
                format?: string;
                schema?: Record<string, any>;
            };
            toolChoice?: "none"
            | "auto"
            | "required";
            tools?: {
                description: string;
                inputSchema?: Record<string, any> | null;
                metadata?: Record<string, any>;
                name: string;
                outputSchema?: Record<string, any> | null;
            }[];
        },
    >

    ModelRequestSchema represents the parameters that are passed to a model when generating content.