import z from "zod";
export declare const vercelAIMessageRoleSchema: z.ZodEnum<{
    user: "user";
    assistant: "assistant";
    tool: "tool";
    system: "system";
}>;
export type VercelAIMessageRole = z.infer<typeof vercelAIMessageRoleSchema>;
export declare const vercelAIMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    role: z.ZodLiteral<"system">;
    content: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    role: z.ZodLiteral<"user">;
    content: z.ZodUnion<readonly [z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"text">;
        text: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"image">;
        image: z.ZodString;
        mimeType: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>]>>, z.ZodString]>;
}, z.core.$strip>, z.ZodObject<{
    role: z.ZodLiteral<"assistant">;
    content: z.ZodUnion<readonly [z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"text">;
        text: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"tool-call">;
        toolCallId: z.ZodString;
        toolName: z.ZodString;
        input: z.ZodType<import("../../jsonLiteralSchema").JSONLiteral, unknown, z.core.$ZodTypeInternals<import("../../jsonLiteralSchema").JSONLiteral, unknown>>;
    }, z.core.$strip>]>>, z.ZodString]>;
}, z.core.$strip>, z.ZodObject<{
    role: z.ZodLiteral<"tool">;
    content: z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"tool-result">;
        toolCallId: z.ZodString;
        toolName: z.ZodString;
        output: z.ZodObject<{
            type: z.ZodLiteral<"text">;
            value: z.ZodString;
        }, z.core.$strip>;
    }, z.core.$strip>>;
}, z.core.$strip>], "role">;
export type VercelAIMessage = z.infer<typeof vercelAIMessageSchema>;
//# sourceMappingURL=messageSchemas.d.ts.map