import z from 'zod/v4';
export declare const systemMessageSchema: z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"system">;
    content: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
export type SystemMessage = z.infer<typeof systemMessageSchema>;
export declare const userMessageSchema: z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"user">;
    content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"text">;
        text: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"image">;
        image: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array, Uint8Array>, z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodCustom<Buffer, Buffer>]>, z.ZodCustom<URL, URL>]>;
        mediaType: z.ZodOptional<z.ZodString>;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"file">;
        data: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array, Uint8Array>, z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodCustom<Buffer, Buffer>]>, z.ZodCustom<URL, URL>]>;
        filename: z.ZodOptional<z.ZodString>;
        mediaType: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>]>>]>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
export type UserMessage = z.infer<typeof userMessageSchema>;
export declare const assistantMessageSchema: z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"assistant">;
    content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"text">;
        text: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"reasoning">;
        text: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"tool-call">;
        toolCallId: z.ZodString;
        toolName: z.ZodString;
        input: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
        providerExecuted: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>]>>]>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
export type AssistantMessage = z.infer<typeof assistantMessageSchema>;
export declare const toolMessageSchema: z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"tool">;
    content: z.ZodObject<{
        type: z.ZodLiteral<"tool-result">;
        toolCallId: z.ZodString;
        toolName: z.ZodString;
        output: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>;
        }, z.core.$strip>, z.ZodObject<{
            type: z.ZodLiteral<"media">;
            data: z.ZodString;
            mediaType: z.ZodString;
        }, z.core.$strip>]>>;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
export type ToolMessage = z.infer<typeof toolMessageSchema>;
export declare const messageSchema: z.ZodIntersection<z.ZodUnion<readonly [z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"system">;
    content: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>, z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"user">;
    content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"text">;
        text: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"image">;
        image: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array, Uint8Array>, z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodCustom<Buffer, Buffer>]>, z.ZodCustom<URL, URL>]>;
        mediaType: z.ZodOptional<z.ZodString>;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"file">;
        data: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array, Uint8Array>, z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodCustom<Buffer, Buffer>]>, z.ZodCustom<URL, URL>]>;
        filename: z.ZodOptional<z.ZodString>;
        mediaType: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>]>>]>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>, z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"assistant">;
    content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"text">;
        text: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"reasoning">;
        text: z.ZodString;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"tool-call">;
        toolCallId: z.ZodString;
        toolName: z.ZodString;
        input: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
        providerExecuted: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>]>>]>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>, z.ZodIntersection<z.ZodObject<{
    role: z.ZodLiteral<"tool">;
    content: z.ZodObject<{
        type: z.ZodLiteral<"tool-result">;
        toolCallId: z.ZodString;
        toolName: z.ZodString;
        output: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>;
        }, z.core.$strip>, z.ZodObject<{
            type: z.ZodLiteral<"media">;
            data: z.ZodString;
            mediaType: z.ZodString;
        }, z.core.$strip>]>>;
        providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>]>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<import("../json").JSONValue, unknown, z.core.$ZodTypeInternals<import("../json").JSONValue, unknown>>>>>;
    timeToLive: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"agentStep">, z.ZodLiteral<"userPrompt">]>>;
    keepDuringTruncation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
export type Message = z.infer<typeof messageSchema>;
//# sourceMappingURL=codebuff-message.d.ts.map