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