import { z } from 'zod';
/**
 * @internal
 **/
export declare const promptTemplateSpecSchema: z.ZodObject<{
    template: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        role: z.ZodString;
        content: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        role: string;
        content: string;
    }, {
        role: string;
        content: string;
    }>, z.ZodObject<{
        role: z.ZodString;
        content: z.ZodArray<z.ZodUnion<[z.ZodIntersection<z.ZodObject<{
            type: z.ZodLiteral<"image_url">;
            image_url: z.ZodObject<{
                url: z.ZodString;
                detail: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                url: string;
                detail?: string | undefined;
            }, {
                url: string;
                detail?: string | undefined;
            }>;
        }, "strip", z.ZodTypeAny, {
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        }, {
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        }>, z.ZodRecord<z.ZodString, z.ZodAny>>, z.ZodObject<{
            type: z.ZodLiteral<"text">;
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
            type: "text";
        }, {
            text: string;
            type: "text";
        }>]>, "many">;
    }, "strip", z.ZodTypeAny, {
        role: string;
        content: ({
            text: string;
            type: "text";
        } | ({
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        } & Record<string, any>))[];
    }, {
        role: string;
        content: ({
            text: string;
            type: "text";
        } | ({
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        } & Record<string, any>))[];
    }>]>, "many">;
    defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    additionalFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    response_format: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"text">;
    }, "strip", z.ZodTypeAny, {
        type: "text";
    }, {
        type: "text";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"json_object">;
    }, "strip", z.ZodTypeAny, {
        type: "json_object";
    }, {
        type: "json_object";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"json_schema">;
        json_schema: z.ZodObject<{
            description: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            strict: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        }, {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        json_schema: {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        };
        type: "json_schema";
    }, {
        json_schema: {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        };
        type: "json_schema";
    }>]>>;
    tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"function">;
        function: z.ZodObject<{
            description: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            strict: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        }, {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        function: {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        };
        type: "function";
    }, {
        function: {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        };
        type: "function";
    }>, "many">>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    template: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        role: z.ZodString;
        content: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        role: string;
        content: string;
    }, {
        role: string;
        content: string;
    }>, z.ZodObject<{
        role: z.ZodString;
        content: z.ZodArray<z.ZodUnion<[z.ZodIntersection<z.ZodObject<{
            type: z.ZodLiteral<"image_url">;
            image_url: z.ZodObject<{
                url: z.ZodString;
                detail: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                url: string;
                detail?: string | undefined;
            }, {
                url: string;
                detail?: string | undefined;
            }>;
        }, "strip", z.ZodTypeAny, {
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        }, {
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        }>, z.ZodRecord<z.ZodString, z.ZodAny>>, z.ZodObject<{
            type: z.ZodLiteral<"text">;
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
            type: "text";
        }, {
            text: string;
            type: "text";
        }>]>, "many">;
    }, "strip", z.ZodTypeAny, {
        role: string;
        content: ({
            text: string;
            type: "text";
        } | ({
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        } & Record<string, any>))[];
    }, {
        role: string;
        content: ({
            text: string;
            type: "text";
        } | ({
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        } & Record<string, any>))[];
    }>]>, "many">;
    defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    additionalFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    response_format: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"text">;
    }, "strip", z.ZodTypeAny, {
        type: "text";
    }, {
        type: "text";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"json_object">;
    }, "strip", z.ZodTypeAny, {
        type: "json_object";
    }, {
        type: "json_object";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"json_schema">;
        json_schema: z.ZodObject<{
            description: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            strict: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        }, {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        json_schema: {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        };
        type: "json_schema";
    }, {
        json_schema: {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        };
        type: "json_schema";
    }>]>>;
    tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"function">;
        function: z.ZodObject<{
            description: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            strict: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        }, {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        function: {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        };
        type: "function";
    }, {
        function: {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        };
        type: "function";
    }>, "many">>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    template: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        role: z.ZodString;
        content: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        role: string;
        content: string;
    }, {
        role: string;
        content: string;
    }>, z.ZodObject<{
        role: z.ZodString;
        content: z.ZodArray<z.ZodUnion<[z.ZodIntersection<z.ZodObject<{
            type: z.ZodLiteral<"image_url">;
            image_url: z.ZodObject<{
                url: z.ZodString;
                detail: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                url: string;
                detail?: string | undefined;
            }, {
                url: string;
                detail?: string | undefined;
            }>;
        }, "strip", z.ZodTypeAny, {
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        }, {
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        }>, z.ZodRecord<z.ZodString, z.ZodAny>>, z.ZodObject<{
            type: z.ZodLiteral<"text">;
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
            type: "text";
        }, {
            text: string;
            type: "text";
        }>]>, "many">;
    }, "strip", z.ZodTypeAny, {
        role: string;
        content: ({
            text: string;
            type: "text";
        } | ({
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        } & Record<string, any>))[];
    }, {
        role: string;
        content: ({
            text: string;
            type: "text";
        } | ({
            image_url: {
                url: string;
                detail?: string | undefined;
            };
            type: "image_url";
        } & Record<string, any>))[];
    }>]>, "many">;
    defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    additionalFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    response_format: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"text">;
    }, "strip", z.ZodTypeAny, {
        type: "text";
    }, {
        type: "text";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"json_object">;
    }, "strip", z.ZodTypeAny, {
        type: "json_object";
    }, {
        type: "json_object";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"json_schema">;
        json_schema: z.ZodObject<{
            description: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            strict: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        }, {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        json_schema: {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        };
        type: "json_schema";
    }, {
        json_schema: {
            name: string;
            description?: string | undefined;
            schema?: Record<string, any> | undefined;
            strict?: boolean | null | undefined;
        };
        type: "json_schema";
    }>]>>;
    tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"function">;
        function: z.ZodObject<{
            description: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            strict: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        }, {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        function: {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        };
        type: "function";
    }, {
        function: {
            name: string;
            description?: string | undefined;
            strict?: boolean | null | undefined;
            parameters?: Record<string, any> | undefined;
        };
        type: "function";
    }>, "many">>;
}, z.ZodTypeAny, "passthrough">>;
//# sourceMappingURL=prompt-template-spec.zod.d.ts.map