import z from 'zod/v4';
export type JSONValue = null | string | number | boolean | JSONObject | JSONArray;
export declare const jsonValueSchema: z.ZodType<JSONValue>;
export declare const jsonObjectSchema: z.ZodType<JSONObject>;
export type JSONObject = {
    [key: string]: JSONValue;
};
export declare const jsonArraySchema: z.ZodType<JSONArray>;
export type JSONArray = JSONValue[];
/**
 * JSON Schema definition (for prompt schema or output schema)
 */
export type JsonSchema = {
    type?: 'object' | 'array' | 'string' | 'number' | 'boolean' | 'null' | 'integer';
    description?: string;
    properties?: Record<string, JsonSchema | boolean>;
    required?: string[];
    enum?: Array<string | number | boolean | null>;
    [k: string]: unknown;
};
export type JsonObjectSchema = JsonSchema & {
    type: 'object';
};
export declare const dataContentSchema: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array, Uint8Array>, z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodCustom<Buffer, Buffer>]>;
export type DataContent = z.infer<typeof dataContentSchema>;
export declare const providerMetadataSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>;
export type ProviderMetadata = z.infer<typeof providerMetadataSchema>;
export declare const textPartSchema: z.ZodObject<{
    type: z.ZodLiteral<"text">;
    text: z.ZodString;
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
}, z.core.$strip>;
export type TextPart = z.infer<typeof textPartSchema>;
export declare const imagePartSchema: 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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
}, z.core.$strip>;
export type ImagePart = z.infer<typeof imagePartSchema>;
export declare const filePartSchema: 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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
}, z.core.$strip>;
export type FilePart = z.infer<typeof filePartSchema>;
export declare const reasoningPartSchema: z.ZodObject<{
    type: z.ZodLiteral<"reasoning">;
    text: z.ZodString;
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
}, z.core.$strip>;
export type ReasoningPart = z.infer<typeof reasoningPartSchema>;
export declare const toolCallPartSchema: 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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
    providerExecuted: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type ToolCallPart = z.infer<typeof toolCallPartSchema>;
export declare const toolResultOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    type: z.ZodLiteral<"json">;
    value: z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"media">;
    data: z.ZodString;
    mediaType: z.ZodString;
}, z.core.$strip>]>;
export type ToolResultOutput = z.infer<typeof toolResultOutputSchema>;
export declare const toolResultPartSchema: 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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
}, z.core.$strip>;
export type ToolResultPart = z.infer<typeof toolResultPartSchema>;
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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
    }, z.core.$strip>]>>]>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
    }, z.core.$strip>]>>]>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<JSONValue, unknown>>>>>;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodType<JSONValue, unknown, z.core.$ZodTypeInternals<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<JSONValue, unknown, z.core.$ZodTypeInternals<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=util-types.d.ts.map