import z from "zod";
export declare const textPartSchema: z.ZodObject<{
    type: z.ZodLiteral<"text">;
    text: z.ZodString;
}, "strip", z.ZodTypeAny, {
    text: string;
    type: "text";
}, {
    text: string;
    type: "text";
}>;
export type TextPart = z.infer<typeof textPartSchema>;
export declare const toolCallPartSchema: z.ZodObject<{
    type: z.ZodLiteral<"tool_call">;
    tool_call_id: z.ZodString;
    tool_call: z.ZodObject<{
        type: z.ZodLiteral<"function">;
        name: z.ZodString;
        arguments: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "function";
        name: string;
        arguments: string;
    }, {
        type: "function";
        name: string;
        arguments: string;
    }>;
}, "strip", z.ZodTypeAny, {
    tool_call: {
        type: "function";
        name: string;
        arguments: string;
    };
    type: "tool_call";
    tool_call_id: string;
}, {
    tool_call: {
        type: "function";
        name: string;
        arguments: string;
    };
    type: "tool_call";
    tool_call_id: string;
}>;
export type ToolCallPart = z.infer<typeof toolCallPartSchema>;
export declare const toolResultPartSchema: z.ZodObject<{
    type: z.ZodLiteral<"tool_result">;
    tool_call_id: z.ZodString;
    tool_result: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>;
}, "strip", z.ZodTypeAny, {
    tool_result: string | number | boolean | unknown[] | Record<string, unknown> | null;
    type: "tool_result";
    tool_call_id: string;
}, {
    tool_result: string | number | boolean | unknown[] | Record<string, unknown> | null;
    type: "tool_result";
    tool_call_id: string;
}>;
export type ToolResultPart = z.infer<typeof toolResultPartSchema>;
export declare const phoenixContentPartSchema: z.ZodDiscriminatedUnion<"type", [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">;
    tool_call_id: z.ZodString;
    tool_call: z.ZodObject<{
        type: z.ZodLiteral<"function">;
        name: z.ZodString;
        arguments: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "function";
        name: string;
        arguments: string;
    }, {
        type: "function";
        name: string;
        arguments: string;
    }>;
}, "strip", z.ZodTypeAny, {
    tool_call: {
        type: "function";
        name: string;
        arguments: string;
    };
    type: "tool_call";
    tool_call_id: string;
}, {
    tool_call: {
        type: "function";
        name: string;
        arguments: string;
    };
    type: "tool_call";
    tool_call_id: string;
}>, z.ZodObject<{
    type: z.ZodLiteral<"tool_result">;
    tool_call_id: z.ZodString;
    tool_result: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>;
}, "strip", z.ZodTypeAny, {
    tool_result: string | number | boolean | unknown[] | Record<string, unknown> | null;
    type: "tool_result";
    tool_call_id: string;
}, {
    tool_result: string | number | boolean | unknown[] | Record<string, unknown> | null;
    type: "tool_result";
    tool_call_id: string;
}>]>;
export type PhoenixContentPart = z.infer<typeof phoenixContentPartSchema>;
export declare const asTextPart: (maybePart: unknown) => TextPart | null;
export declare const makeTextPart: (text?: string | null) => {
    text: string;
    type: "text";
} | null;
export declare const asToolCallPart: (maybePart: unknown) => ToolCallPart | null;
export declare const asToolResultPart: (maybePart: unknown) => ToolResultPart | null;
export declare const makeToolResultPart: (toolCallId?: string | null, result?: unknown) => {
    tool_result: string | number | boolean | unknown[] | Record<string, unknown> | null;
    type: "tool_result";
    tool_call_id: string;
} | null;
//# sourceMappingURL=messagePartSchemas.d.ts.map