import { z } from 'zod';

declare const ChatUsage: z.ZodObject<{
    promptTokens: z.ZodNumber;
    completionTokens: z.ZodNumber;
    totalTokens: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    promptTokens: number;
    completionTokens: number;
    totalTokens: number;
}, {
    promptTokens: number;
    completionTokens: number;
    totalTokens: number;
}>;
type ChatUsageType = z.infer<typeof ChatUsage>;
declare const ChatBaseLogProb: z.ZodObject<{
    token: z.ZodString;
    logProb: z.ZodNumber;
    bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
}, "strip", z.ZodTypeAny, {
    token: string;
    logProb: number;
    bytes: number[] | null;
}, {
    token: string;
    logProb: number;
    bytes: number[] | null;
}>;
type ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;
declare const ChatLogProb: z.ZodObject<z.objectUtil.extendShape<{
    token: z.ZodString;
    logProb: z.ZodNumber;
    bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
}, {
    topLogProbs: z.ZodArray<z.ZodObject<{
        token: z.ZodString;
        logProb: z.ZodNumber;
        bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
    }, "strip", z.ZodTypeAny, {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }, {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }>, "many">;
}>, "strip", z.ZodTypeAny, {
    token: string;
    logProb: number;
    bytes: number[] | null;
    topLogProbs: {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }[];
}, {
    token: string;
    logProb: number;
    bytes: number[] | null;
    topLogProbs: {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }[];
}>;
type ChatLogProbType = z.infer<typeof ChatLogProb>;
declare const ChatLogProbs: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
    token: z.ZodString;
    logProb: z.ZodNumber;
    bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
}, {
    topLogProbs: z.ZodArray<z.ZodObject<{
        token: z.ZodString;
        logProb: z.ZodNumber;
        bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
    }, "strip", z.ZodTypeAny, {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }, {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }>, "many">;
}>, "strip", z.ZodTypeAny, {
    token: string;
    logProb: number;
    bytes: number[] | null;
    topLogProbs: {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }[];
}, {
    token: string;
    logProb: number;
    bytes: number[] | null;
    topLogProbs: {
        token: string;
        logProb: number;
        bytes: number[] | null;
    }[];
}>, "many">;
type ChatLogProbsType = z.infer<typeof ChatLogProbs>;
declare const ChatResponse: z.ZodObject<{
    messages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
        content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"image">;
            detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
                mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-call">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            arguments: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-call";
            index: number;
            id: string;
            name: string;
            arguments: string;
            metadata?: undefined;
        }, {
            modality: "tool-call";
            index: number;
            id: string;
            name: string;
            arguments: string;
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-response">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            data: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-response";
            data: string;
            index: number;
            id: string;
            name: string;
            metadata?: undefined;
        }, {
            modality: "tool-response";
            data: string;
            index: number;
            id: string;
            name: string;
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodString;
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking: string;
                signature: string;
            }, {
                type: "thinking";
                thinking: string;
                signature: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: any;
        }, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: any;
        }>]>, "many">;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            modality: "tool-call";
            index: number;
            id: string;
            name: string;
            arguments: string;
            metadata?: undefined;
        } | {
            modality: "tool-response";
            data: string;
            index: number;
            id: string;
            name: string;
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            modality: "tool-call";
            index: number;
            id: string;
            name: string;
            arguments: string;
            metadata?: undefined;
        } | {
            modality: "tool-response";
            data: string;
            index: number;
            id: string;
            name: string;
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }>, "many">;
    usage: z.ZodOptional<z.ZodObject<{
        promptTokens: z.ZodNumber;
        completionTokens: z.ZodNumber;
        totalTokens: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }, {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }>>;
    logProbs: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
        token: z.ZodString;
        logProb: z.ZodNumber;
        bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
    }, {
        topLogProbs: z.ZodArray<z.ZodObject<{
            token: z.ZodString;
            logProb: z.ZodNumber;
            bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
        }, "strip", z.ZodTypeAny, {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }, {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }>, "many">;
    }>, "strip", z.ZodTypeAny, {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }, {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            modality: "tool-call";
            index: number;
            id: string;
            name: string;
            arguments: string;
            metadata?: undefined;
        } | {
            modality: "tool-response";
            data: string;
            index: number;
            id: string;
            name: string;
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    usage?: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    } | undefined;
    logProbs?: {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }[] | undefined;
}, {
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            modality: "tool-call";
            index: number;
            id: string;
            name: string;
            arguments: string;
            metadata?: undefined;
        } | {
            modality: "tool-response";
            data: string;
            index: number;
            id: string;
            name: string;
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    usage?: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    } | undefined;
    logProbs?: {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }[] | undefined;
}>;
type ChatResponseType = z.infer<typeof ChatResponse>;
declare const PartialChatUsage: z.ZodObject<{
    promptTokens: z.ZodOptional<z.ZodNumber>;
    completionTokens: z.ZodOptional<z.ZodNumber>;
    totalTokens: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    promptTokens?: number | undefined;
    completionTokens?: number | undefined;
    totalTokens?: number | undefined;
}, {
    promptTokens?: number | undefined;
    completionTokens?: number | undefined;
    totalTokens?: number | undefined;
}>;
type PartialChatUsageType = z.infer<typeof PartialChatUsage>;
declare const PartialChatResponse: z.ZodObject<{
    partialMessages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["assistant"]>;
        partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"partial-text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "partial-text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "partial-text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"partial-tool-call">;
            index: z.ZodNumber;
            id: z.ZodOptional<z.ZodString>;
            name: z.ZodOptional<z.ZodString>;
            arguments: z.ZodOptional<z.ZodString>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            modality: "partial-tool-call";
            index: number;
            metadata?: undefined;
            id?: string | undefined;
            name?: string | undefined;
            arguments?: string | undefined;
        }, {
            modality: "partial-tool-call";
            index: number;
            metadata?: undefined;
            id?: string | undefined;
            name?: string | undefined;
            arguments?: string | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"partial-reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodOptional<z.ZodString>;
                signature: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            }, {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "redacted";
                data: string;
            } | {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            };
            modality: "partial-reasoning";
            metadata?: any;
        }, {
            value: {
                type: "redacted";
                data: string;
            } | {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            };
            modality: "partial-reasoning";
            metadata?: any;
        }>]>;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "assistant";
        partialContent: {
            value: {
                type: "redacted";
                data: string;
            } | {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            };
            modality: "partial-reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "partial-text";
            metadata?: undefined;
        } | {
            modality: "partial-tool-call";
            index: number;
            metadata?: undefined;
            id?: string | undefined;
            name?: string | undefined;
            arguments?: string | undefined;
        };
        metadata?: undefined;
    }, {
        role: "assistant";
        partialContent: {
            value: {
                type: "redacted";
                data: string;
            } | {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            };
            modality: "partial-reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "partial-text";
            metadata?: undefined;
        } | {
            modality: "partial-tool-call";
            index: number;
            metadata?: undefined;
            id?: string | undefined;
            name?: string | undefined;
            arguments?: string | undefined;
        };
        metadata?: undefined;
    }>, "many">;
    usage: z.ZodOptional<z.ZodObject<{
        promptTokens: z.ZodOptional<z.ZodNumber>;
        completionTokens: z.ZodOptional<z.ZodNumber>;
        totalTokens: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        promptTokens?: number | undefined;
        completionTokens?: number | undefined;
        totalTokens?: number | undefined;
    }, {
        promptTokens?: number | undefined;
        completionTokens?: number | undefined;
        totalTokens?: number | undefined;
    }>>;
    logProbs: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
        token: z.ZodString;
        logProb: z.ZodNumber;
        bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
    }, {
        topLogProbs: z.ZodArray<z.ZodObject<{
            token: z.ZodString;
            logProb: z.ZodNumber;
            bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
        }, "strip", z.ZodTypeAny, {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }, {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }>, "many">;
    }>, "strip", z.ZodTypeAny, {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }, {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    partialMessages: {
        role: "assistant";
        partialContent: {
            value: {
                type: "redacted";
                data: string;
            } | {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            };
            modality: "partial-reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "partial-text";
            metadata?: undefined;
        } | {
            modality: "partial-tool-call";
            index: number;
            metadata?: undefined;
            id?: string | undefined;
            name?: string | undefined;
            arguments?: string | undefined;
        };
        metadata?: undefined;
    }[];
    usage?: {
        promptTokens?: number | undefined;
        completionTokens?: number | undefined;
        totalTokens?: number | undefined;
    } | undefined;
    logProbs?: {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }[] | undefined;
}, {
    partialMessages: {
        role: "assistant";
        partialContent: {
            value: {
                type: "redacted";
                data: string;
            } | {
                type: "thinking";
                thinking?: string | undefined;
                signature?: string | undefined;
            };
            modality: "partial-reasoning";
            metadata?: any;
        } | {
            value: string;
            modality: "partial-text";
            metadata?: undefined;
        } | {
            modality: "partial-tool-call";
            index: number;
            metadata?: undefined;
            id?: string | undefined;
            name?: string | undefined;
            arguments?: string | undefined;
        };
        metadata?: undefined;
    }[];
    usage?: {
        promptTokens?: number | undefined;
        completionTokens?: number | undefined;
        totalTokens?: number | undefined;
    } | undefined;
    logProbs?: {
        token: string;
        logProb: number;
        bytes: number[] | null;
        topLogProbs: {
            token: string;
            logProb: number;
            bytes: number[] | null;
        }[];
    }[] | undefined;
}>;
type PartialChatResponseType = z.infer<typeof PartialChatResponse>;

declare const Config: <C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>>(Config?: C) => C;
type ConfigType<C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>> = z.infer<ReturnType<typeof Config<C>>>;

declare const ResponseSchemaTypes: readonly ["object", "array", "number", "string", "boolean", "enum"];
declare const ResponseSchemaTypesLiteral: z.ZodEnum<["object", "array", "number", "string", "boolean", "enum"]>;
type ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;
declare const ResponseSchemaProperty: z.ZodObject<{
    anyOf: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
    type: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["object", "array", "number", "string", "boolean", "enum"]>, z.ZodArray<z.ZodUnion<[z.ZodEnum<["object", "array", "number", "string", "boolean", "enum"]>, z.ZodLiteral<"null">]>, "many">]>>;
    default: z.ZodOptional<z.ZodAny>;
    title: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    minItems: z.ZodOptional<z.ZodNumber>;
    maxItems: z.ZodOptional<z.ZodNumber>;
    items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    enum: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, "many">>;
    minimum: z.ZodOptional<z.ZodNumber>;
    maximum: z.ZodOptional<z.ZodNumber>;
    minLength: z.ZodOptional<z.ZodNumber>;
    maxLength: z.ZodOptional<z.ZodNumber>;
    $ref: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    minimum?: number | undefined;
    type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
    maximum?: number | undefined;
    default?: any;
    enum?: (string | number | boolean | null)[] | undefined;
    anyOf?: any[] | undefined;
    title?: string | undefined;
    description?: string | undefined;
    properties?: Record<string, any> | undefined;
    required?: string[] | undefined;
    minItems?: number | undefined;
    maxItems?: number | undefined;
    items?: Record<string, any> | undefined;
    minLength?: number | undefined;
    maxLength?: number | undefined;
    $ref?: string | undefined;
}, {
    minimum?: number | undefined;
    type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
    maximum?: number | undefined;
    default?: any;
    enum?: (string | number | boolean | null)[] | undefined;
    anyOf?: any[] | undefined;
    title?: string | undefined;
    description?: string | undefined;
    properties?: Record<string, any> | undefined;
    required?: string[] | undefined;
    minItems?: number | undefined;
    maxItems?: number | undefined;
    items?: Record<string, any> | undefined;
    minLength?: number | undefined;
    maxLength?: number | undefined;
    $ref?: string | undefined;
}>;
type ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;
declare const ResponseSchemaStructure: z.ZodObject<{
    type: z.ZodEnum<["object"]>;
    required: z.ZodArray<z.ZodString, "many">;
    $defs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    properties: z.ZodRecord<z.ZodString, z.ZodObject<{
        anyOf: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
        type: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["object", "array", "number", "string", "boolean", "enum"]>, z.ZodArray<z.ZodUnion<[z.ZodEnum<["object", "array", "number", "string", "boolean", "enum"]>, z.ZodLiteral<"null">]>, "many">]>>;
        default: z.ZodOptional<z.ZodAny>;
        title: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        minItems: z.ZodOptional<z.ZodNumber>;
        maxItems: z.ZodOptional<z.ZodNumber>;
        items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        enum: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, "many">>;
        minimum: z.ZodOptional<z.ZodNumber>;
        maximum: z.ZodOptional<z.ZodNumber>;
        minLength: z.ZodOptional<z.ZodNumber>;
        maxLength: z.ZodOptional<z.ZodNumber>;
        $ref: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
        $ref?: string | undefined;
    }, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
        $ref?: string | undefined;
    }>>;
    additionalProperties: z.ZodLiteral<false>;
}, "strip", z.ZodTypeAny, {
    type: "object";
    properties: Record<string, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
        $ref?: string | undefined;
    }>;
    required: string[];
    additionalProperties: false;
    $defs?: Record<string, any> | undefined;
}, {
    type: "object";
    properties: Record<string, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
        $ref?: string | undefined;
    }>;
    required: string[];
    additionalProperties: false;
    $defs?: Record<string, any> | undefined;
}>;
type ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;
declare const ResponseSchema: z.ZodOptional<z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    strict: z.ZodOptional<z.ZodBoolean>;
    schema: z.ZodObject<{
        type: z.ZodEnum<["object"]>;
        required: z.ZodArray<z.ZodString, "many">;
        $defs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        properties: z.ZodRecord<z.ZodString, z.ZodObject<{
            anyOf: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
            type: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["object", "array", "number", "string", "boolean", "enum"]>, z.ZodArray<z.ZodUnion<[z.ZodEnum<["object", "array", "number", "string", "boolean", "enum"]>, z.ZodLiteral<"null">]>, "many">]>>;
            default: z.ZodOptional<z.ZodAny>;
            title: z.ZodOptional<z.ZodString>;
            description: z.ZodOptional<z.ZodString>;
            properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            minItems: z.ZodOptional<z.ZodNumber>;
            maxItems: z.ZodOptional<z.ZodNumber>;
            items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            enum: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, "many">>;
            minimum: z.ZodOptional<z.ZodNumber>;
            maximum: z.ZodOptional<z.ZodNumber>;
            minLength: z.ZodOptional<z.ZodNumber>;
            maxLength: z.ZodOptional<z.ZodNumber>;
            $ref: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            minimum?: number | undefined;
            type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
            maximum?: number | undefined;
            default?: any;
            enum?: (string | number | boolean | null)[] | undefined;
            anyOf?: any[] | undefined;
            title?: string | undefined;
            description?: string | undefined;
            properties?: Record<string, any> | undefined;
            required?: string[] | undefined;
            minItems?: number | undefined;
            maxItems?: number | undefined;
            items?: Record<string, any> | undefined;
            minLength?: number | undefined;
            maxLength?: number | undefined;
            $ref?: string | undefined;
        }, {
            minimum?: number | undefined;
            type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
            maximum?: number | undefined;
            default?: any;
            enum?: (string | number | boolean | null)[] | undefined;
            anyOf?: any[] | undefined;
            title?: string | undefined;
            description?: string | undefined;
            properties?: Record<string, any> | undefined;
            required?: string[] | undefined;
            minItems?: number | undefined;
            maxItems?: number | undefined;
            items?: Record<string, any> | undefined;
            minLength?: number | undefined;
            maxLength?: number | undefined;
            $ref?: string | undefined;
        }>>;
        additionalProperties: z.ZodLiteral<false>;
    }, "strip", z.ZodTypeAny, {
        type: "object";
        properties: Record<string, {
            minimum?: number | undefined;
            type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
            maximum?: number | undefined;
            default?: any;
            enum?: (string | number | boolean | null)[] | undefined;
            anyOf?: any[] | undefined;
            title?: string | undefined;
            description?: string | undefined;
            properties?: Record<string, any> | undefined;
            required?: string[] | undefined;
            minItems?: number | undefined;
            maxItems?: number | undefined;
            items?: Record<string, any> | undefined;
            minLength?: number | undefined;
            maxLength?: number | undefined;
            $ref?: string | undefined;
        }>;
        required: string[];
        additionalProperties: false;
        $defs?: Record<string, any> | undefined;
    }, {
        type: "object";
        properties: Record<string, {
            minimum?: number | undefined;
            type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
            maximum?: number | undefined;
            default?: any;
            enum?: (string | number | boolean | null)[] | undefined;
            anyOf?: any[] | undefined;
            title?: string | undefined;
            description?: string | undefined;
            properties?: Record<string, any> | undefined;
            required?: string[] | undefined;
            minItems?: number | undefined;
            maxItems?: number | undefined;
            items?: Record<string, any> | undefined;
            minLength?: number | undefined;
            maxLength?: number | undefined;
            $ref?: string | undefined;
        }>;
        required: string[];
        additionalProperties: false;
        $defs?: Record<string, any> | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    name: string;
    description: string;
    schema: {
        type: "object";
        properties: Record<string, {
            minimum?: number | undefined;
            type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
            maximum?: number | undefined;
            default?: any;
            enum?: (string | number | boolean | null)[] | undefined;
            anyOf?: any[] | undefined;
            title?: string | undefined;
            description?: string | undefined;
            properties?: Record<string, any> | undefined;
            required?: string[] | undefined;
            minItems?: number | undefined;
            maxItems?: number | undefined;
            items?: Record<string, any> | undefined;
            minLength?: number | undefined;
            maxLength?: number | undefined;
            $ref?: string | undefined;
        }>;
        required: string[];
        additionalProperties: false;
        $defs?: Record<string, any> | undefined;
    };
    strict?: boolean | undefined;
}, {
    name: string;
    description: string;
    schema: {
        type: "object";
        properties: Record<string, {
            minimum?: number | undefined;
            type?: "string" | "number" | "boolean" | "object" | "array" | "enum" | ("string" | "number" | "boolean" | "object" | "null" | "array" | "enum")[] | undefined;
            maximum?: number | undefined;
            default?: any;
            enum?: (string | number | boolean | null)[] | undefined;
            anyOf?: any[] | undefined;
            title?: string | undefined;
            description?: string | undefined;
            properties?: Record<string, any> | undefined;
            required?: string[] | undefined;
            minItems?: number | undefined;
            maxItems?: number | undefined;
            items?: Record<string, any> | undefined;
            minLength?: number | undefined;
            maxLength?: number | undefined;
            $ref?: string | undefined;
        }>;
        required: string[];
        additionalProperties: false;
        $defs?: Record<string, any> | undefined;
    };
    strict?: boolean | undefined;
}>>;
type ResponseSchemaType = z.infer<typeof ResponseSchema>;

declare const EmbeddingTextModalityLiteral: "text";
declare const EmbeddingTokenModalityLiteral: "token";
declare const EmbeddingModalityLiterals: readonly ["text", "token"];
declare const EmbeddingModalityEnum: z.ZodEnum<["text", "token"]>;
type EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;
declare const TextEmbeddingRequests: z.ZodArray<z.ZodString, "many">;
type TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;
declare const TokenEmbeddingRequests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
type TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;
declare const EmbeddingRequests: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
    modality: z.ZodLiteral<"text">;
    metadata: M;
    requests: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"text">;
    metadata: M;
    requests: z.ZodArray<z.ZodString, "many">;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"text">;
    metadata: M;
    requests: z.ZodArray<z.ZodString, "many">;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"text">;
    metadata: M;
    requests: z.ZodArray<z.ZodString, "many">;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"text">;
    metadata: M;
    requests: z.ZodArray<z.ZodString, "many">;
}>[k_1]; }>, z.ZodObject<{
    modality: z.ZodLiteral<"token">;
    metadata: M;
    requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
}, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"token">;
    metadata: M;
    requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"token">;
    metadata: M;
    requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
}>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"token">;
    metadata: M;
    requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"token">;
    metadata: M;
    requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
}>[k_1_1]; }>]>;
type EmbeddingRequestsType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;

declare const FloatEmbeddingLiteral: "float";
declare const FloatEmbedding: z.ZodObject<{
    index: z.ZodNumber;
    embedding: z.ZodArray<z.ZodNumber, "many">;
}, "strip", z.ZodTypeAny, {
    index: number;
    embedding: number[];
}, {
    index: number;
    embedding: number[];
}>;
type FloatEmbeddingType = z.infer<typeof FloatEmbedding>;
declare const Base64EmbeddingLiteral: "base64";
declare const Base64Embedding: z.ZodObject<{
    index: z.ZodNumber;
    embedding: z.ZodString;
}, "strip", z.ZodTypeAny, {
    index: number;
    embedding: string;
}, {
    index: number;
    embedding: string;
}>;
type Base64EmbeddingType = z.infer<typeof Base64Embedding>;
declare const EmbeddingsUsage: z.ZodObject<{
    totalTokens: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    totalTokens: number;
}, {
    totalTokens: number;
}>;
type EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;
declare const EmbeddingResponse: z.ZodDiscriminatedUnion<"encodingFormat", [z.ZodObject<{
    encodingFormat: z.ZodLiteral<"float">;
    embeddings: z.ZodArray<z.ZodObject<{
        index: z.ZodNumber;
        embedding: z.ZodArray<z.ZodNumber, "many">;
    }, "strip", z.ZodTypeAny, {
        index: number;
        embedding: number[];
    }, {
        index: number;
        embedding: number[];
    }>, "many">;
    usage: z.ZodOptional<z.ZodObject<{
        totalTokens: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        totalTokens: number;
    }, {
        totalTokens: number;
    }>>;
}, "strip", z.ZodTypeAny, {
    encodingFormat: "float";
    embeddings: {
        index: number;
        embedding: number[];
    }[];
    usage?: {
        totalTokens: number;
    } | undefined;
}, {
    encodingFormat: "float";
    embeddings: {
        index: number;
        embedding: number[];
    }[];
    usage?: {
        totalTokens: number;
    } | undefined;
}>, z.ZodObject<{
    encodingFormat: z.ZodLiteral<"base64">;
    embeddings: z.ZodArray<z.ZodObject<{
        index: z.ZodNumber;
        embedding: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        index: number;
        embedding: string;
    }, {
        index: number;
        embedding: string;
    }>, "many">;
    usage: z.ZodOptional<z.ZodObject<{
        totalTokens: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        totalTokens: number;
    }, {
        totalTokens: number;
    }>>;
}, "strip", z.ZodTypeAny, {
    encodingFormat: "base64";
    embeddings: {
        index: number;
        embedding: string;
    }[];
    usage?: {
        totalTokens: number;
    } | undefined;
}, {
    encodingFormat: "base64";
    embeddings: {
        index: number;
        embedding: string;
    }[];
    usage?: {
        totalTokens: number;
    } | undefined;
}>]>;
type EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;

declare class GatewayBaseError extends Error {
    readonly name: string;
    readonly info: string;
    readonly cause: unknown;
    constructor({ info, cause }: {
        info: string;
        cause: unknown;
    }, name?: string);
    static isGatewayBaseError(error: unknown): error is GatewayBaseError;
    toJSON(): object;
}

declare const SystemRoleLiteral: "system";
declare const UserRoleLiteral: "user";
declare const AssistantRoleLiteral: "assistant";
declare const ToolRoleLiteral: "tool";
declare const RoleLiterals: readonly ["system", "user", "assistant", "tool"];
declare const RoleEnum: z.ZodEnum<["system", "user", "assistant", "tool"]>;
type RoleEnumType = z.infer<typeof RoleEnum>;
declare const PartialRoleLiterals: readonly ["assistant"];
declare const PartialRoleEnum: z.ZodEnum<["assistant"]>;
type PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;

declare const Message: <R extends z.ZodEnum<[string, ...string[]]> = z.ZodEnum<["system", "user", "assistant", "tool"]>, TCM extends z.ZodTypeAny = z.ZodUndefined, ICM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined, RCM extends z.ZodTypeAny = z.ZodUndefined, MM extends z.ZodTypeAny = z.ZodUndefined, RTCM extends z.ZodTypeAny = z.ZodUndefined>(Role?: R, TextContentMetadata?: TCM, ImageContentMetadata?: ICM, ToolCallContentMetadata?: CCM, ToolResponseContentMetadata?: RCM, MessageMetadata?: MM, ReasoningContentMetadata?: z.ZodTypeAny) => z.ZodObject<{
    role: R;
    content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>[k_1_2]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }, "strip", z.ZodTypeAny, { [k_4 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>[k_4]; }, { [k_1_3 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>[k_1_3]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodString;
            signature: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking: string;
            signature: string;
        }, {
            type: "thinking";
            thinking: string;
            signature: string;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }>]>, "many">;
    metadata: MM;
}, "strip", z.ZodTypeAny, { [k_5 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    role: R;
    content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>[k_1_2]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }, "strip", z.ZodTypeAny, { [k_4 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>[k_4]; }, { [k_1_3 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>[k_1_3]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodString;
            signature: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking: string;
            signature: string;
        }, {
            type: "thinking";
            thinking: string;
            signature: string;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }>]>, "many">;
    metadata: MM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    role: R;
    content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>[k_1_2]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }, "strip", z.ZodTypeAny, { [k_4 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>[k_4]; }, { [k_1_3 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>[k_1_3]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodString;
            signature: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking: string;
            signature: string;
        }, {
            type: "thinking";
            thinking: string;
            signature: string;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }>]>, "many">;
    metadata: MM;
}>, any>[k_5]; }, { [k_1_4 in keyof z.baseObjectInputType<{
    role: R;
    content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>[k_1_2]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }, "strip", z.ZodTypeAny, { [k_4 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>[k_4]; }, { [k_1_3 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>[k_1_3]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodString;
            signature: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking: string;
            signature: string;
        }, {
            type: "thinking";
            thinking: string;
            signature: string;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }>]>, "many">;
    metadata: MM;
}>]: z.baseObjectInputType<{
    role: R;
    content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"image">;
        detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"base64">;
            base64: z.ZodString;
            mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
        }, "strip", z.ZodTypeAny, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }, {
            type: "base64";
            base64: string;
            mediaType: "png" | "jpeg" | "webp" | "gif";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"url">;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "url";
            url: string;
        }, {
            type: "url";
            url: string;
        }>]>;
        metadata: ICM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-call">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        arguments: z.ZodString;
        metadata: CCM;
    }>[k_1_2]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }, "strip", z.ZodTypeAny, { [k_4 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>, any>[k_4]; }, { [k_1_3 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        metadata: RCM;
    }>[k_1_3]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodString;
            signature: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking: string;
            signature: string;
        }, {
            type: "thinking";
            thinking: string;
            signature: string;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }, {
        value: {
            type: "thinking";
            thinking: string;
            signature: string;
        } | {
            type: "redacted";
            data: string;
        };
        modality: "reasoning";
        metadata?: any;
    }>]>, "many">;
    metadata: MM;
}>[k_1_4]; }>;
type MessageType<R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum, TCM extends z.ZodTypeAny = z.ZodUndefined, ICM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined, RCM extends z.ZodTypeAny = z.ZodUndefined, MM extends z.ZodTypeAny = z.ZodUndefined, RTCM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, MM, RTCM>>>;
declare const PartialMessage: <R extends z.ZodEnum<[string, ...string[]]> = z.ZodEnum<["assistant"]>, TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined, MM extends z.ZodTypeAny = z.ZodUndefined, RTCM extends z.ZodTypeAny = z.ZodUndefined>(Role?: R, TextContentMetadata?: TCM, ToolCallContentMetadata?: CCM, ReasoningContentMetadata?: z.ZodTypeAny, MessageMetadata?: MM) => z.ZodObject<{
    role: R;
    partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodOptional<z.ZodString>;
            signature: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }>]>;
    metadata: MM;
}, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    role: R;
    partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodOptional<z.ZodString>;
            signature: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }>]>;
    metadata: MM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    role: R;
    partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodOptional<z.ZodString>;
            signature: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }>]>;
    metadata: MM;
}>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{
    role: R;
    partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodOptional<z.ZodString>;
            signature: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }>]>;
    metadata: MM;
}>]: z.baseObjectInputType<{
    role: R;
    partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-text">;
        value: z.ZodString;
        metadata: TCM;
    }>[k_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>]: z.baseObjectInputType<{
        modality: z.ZodLiteral<"partial-tool-call">;
        index: z.ZodNumber;
        id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        arguments: z.ZodOptional<z.ZodString>;
        metadata: CCM;
    }>[k_1_1]; }>, z.ZodObject<{
        modality: z.ZodLiteral<"partial-reasoning">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"thinking">;
            thinking: z.ZodOptional<z.ZodString>;
            signature: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }, {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        }>, z.ZodObject<{
            type: z.ZodLiteral<"redacted">;
            data: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "redacted";
            data: string;
        }, {
            type: "redacted";
            data: string;
        }>]>;
        metadata: z.ZodTypeAny;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }, {
        value: {
            type: "redacted";
            data: string;
        } | {
            type: "thinking";
            thinking?: string | undefined;
            signature?: string | undefined;
        };
        modality: "partial-reasoning";
        metadata?: any;
    }>]>;
    metadata: MM;
}>[k_1_2]; }>;
type PartialMessageType<R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum, TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined, MM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM>>>;

declare const ModalityLiterals: readonly ["text", "image", "tool-call", "tool-response", "reasoning"];
declare const ModalityEnum: z.ZodEnum<["text", "image", "tool-call", "tool-response", "reasoning"]>;
type ModalityEnumType = z.infer<typeof ModalityEnum>;
declare const Content: <TCM extends z.ZodTypeAny = z.ZodUndefined, ICM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined, RCM extends z.ZodTypeAny = z.ZodUndefined, TCCM extends z.ZodTypeAny = z.ZodUndefined>(TextContentMetadata?: TCM, ImageContentMetadata?: ICM, ToolCallContentMetadata?: CCM, ToolResponseContentMetadata?: RCM, ReasoningContentMetadata?: TCCM) => z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: TCM;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: TCM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: TCM;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: TCM;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: TCM;
}>[k_1]; }>, z.ZodObject<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: ICM;
}, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: ICM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: ICM;
}>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: ICM;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: ICM;
}>[k_1_1]; }>, z.ZodObject<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: CCM;
}, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: CCM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: CCM;
}>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: CCM;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: CCM;
}>[k_1_2]; }>, z.ZodObject<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: RCM;
}, "strip", z.ZodTypeAny, { [k_4 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: RCM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: RCM;
}>, any>[k_4]; }, { [k_1_3 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: RCM;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: RCM;
}>[k_1_3]; }>, z.ZodObject<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: TCCM;
}, "strip", z.ZodTypeAny, { [k_5 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: TCCM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: TCCM;
}>, any>[k_5]; }, { [k_1_4 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: TCCM;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: TCCM;
}>[k_1_4]; }>]>;
type ContentType<TCM extends z.ZodTypeAny = z.ZodUndefined, ICM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined, RCM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Content<TCM, ICM, CCM, RCM>>>;
declare const PartialModalityLiterals: readonly ["partial-text", "partial-tool-call", "partial-reasoning"];
declare const PartialModalityEnum: z.ZodEnum<["partial-text", "partial-tool-call", "partial-reasoning"]>;
type PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;
declare const PartialContent: <TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined, RCM extends z.ZodTypeAny = z.ZodUndefined>(PartialTextContentMetadata?: TCM, PartialToolCallContentMetadata?: CCM, PartialReasoningContentMetadata?: z.ZodTypeAny) => z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: TCM;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: TCM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: TCM;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: TCM;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: TCM;
}>[k_1]; }>, z.ZodObject<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: CCM;
}, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: CCM;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: CCM;
}>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: CCM;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: CCM;
}>[k_1_1]; }>, z.ZodObject<{
    modality: z.ZodLiteral<"partial-reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodOptional<z.ZodString>;
        signature: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: z.ZodTypeAny;
}, "strip", z.ZodTypeAny, {
    value: {
        type: "redacted";
        data: string;
    } | {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    };
    modality: "partial-reasoning";
    metadata?: any;
}, {
    value: {
        type: "redacted";
        data: string;
    } | {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    };
    modality: "partial-reasoning";
    metadata?: any;
}>]>;
type PartialContentType<TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialContent<TCM, CCM>>>;

declare const ImageModalityLiteral: "image";
declare const Base64ImageContentTypeLiteral: "base64";
declare const Base64ImageContentMediaTypeLiterals: readonly ["png", "jpeg", "webp", "gif"];
declare const Base64ImageContentValue: z.ZodObject<{
    type: z.ZodLiteral<"base64">;
    base64: z.ZodString;
    mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
}, "strip", z.ZodTypeAny, {
    type: "base64";
    base64: string;
    mediaType: "png" | "jpeg" | "webp" | "gif";
}, {
    type: "base64";
    base64: string;
    mediaType: "png" | "jpeg" | "webp" | "gif";
}>;
type Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;
declare const UrlImageContentTypeLiteral: "url";
declare const UrlImageContentValue: z.ZodObject<{
    type: z.ZodLiteral<"url">;
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "url";
    url: string;
}, {
    type: "url";
    url: string;
}>;
type UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;
declare const ImageContentValue: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"base64">;
    base64: z.ZodString;
    mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
}, "strip", z.ZodTypeAny, {
    type: "base64";
    base64: string;
    mediaType: "png" | "jpeg" | "webp" | "gif";
}, {
    type: "base64";
    base64: string;
    mediaType: "png" | "jpeg" | "webp" | "gif";
}>, z.ZodObject<{
    type: z.ZodLiteral<"url">;
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "url";
    url: string;
}, {
    type: "url";
    url: string;
}>]>;
type ImageContentValueType = z.infer<typeof ImageContentValue>;
declare const ImageContentDetails: readonly ["low", "medium", "high", "auto"];
declare const ImageContentDetailsLiteral: z.ZodEnum<["low", "medium", "high", "auto"]>;
type ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;
declare const ImageContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"image">;
    detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"base64">;
        base64: z.ZodString;
        mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
    }, "strip", z.ZodTypeAny, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }, {
        type: "base64";
        base64: string;
        mediaType: "png" | "jpeg" | "webp" | "gif";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"url">;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        url: string;
    }, {
        type: "url";
        url: string;
    }>]>;
    metadata: M;
}>[k_1]; }>;
type ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;

declare const ReasoningModalityLiteral: "reasoning";
declare const PartialReasoningModalityLiteral: "partial-reasoning";
declare const ReasoningContentTypeLiteral: "thinking";
declare const RedactedReasoningContentTypeLiteral: "redacted";
declare const ReasoningContentValue: z.ZodObject<{
    type: z.ZodLiteral<"thinking">;
    thinking: z.ZodString;
    signature: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "thinking";
    thinking: string;
    signature: string;
}, {
    type: "thinking";
    thinking: string;
    signature: string;
}>;
type ReasoningContentValueType = z.infer<typeof ReasoningContentValue>;
declare const RedactedReasoningContentValue: z.ZodObject<{
    type: z.ZodLiteral<"redacted">;
    data: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "redacted";
    data: string;
}, {
    type: "redacted";
    data: string;
}>;
type RedactedReasoningContentValueType = z.infer<typeof RedactedReasoningContentValue>;
declare const ReasoningContentValueUnion: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"thinking">;
    thinking: z.ZodString;
    signature: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "thinking";
    thinking: string;
    signature: string;
}, {
    type: "thinking";
    thinking: string;
    signature: string;
}>, z.ZodObject<{
    type: z.ZodLiteral<"redacted">;
    data: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "redacted";
    data: string;
}, {
    type: "redacted";
    data: string;
}>]>;
type ReasoningContentValueUnionType = z.infer<typeof ReasoningContentValueUnion>;
declare const ReasoningContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodString;
        signature: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking: string;
        signature: string;
    }, {
        type: "thinking";
        thinking: string;
        signature: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>[k_1]; }>;
type ReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ReasoningContent<M>>>;
declare const PartialReasoningContentValue: z.ZodObject<{
    type: z.ZodLiteral<"thinking">;
    thinking: z.ZodOptional<z.ZodString>;
    signature: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type: "thinking";
    thinking?: string | undefined;
    signature?: string | undefined;
}, {
    type: "thinking";
    thinking?: string | undefined;
    signature?: string | undefined;
}>;
declare const PartialReasoningContentValueUnion: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"thinking">;
    thinking: z.ZodOptional<z.ZodString>;
    signature: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type: "thinking";
    thinking?: string | undefined;
    signature?: string | undefined;
}, {
    type: "thinking";
    thinking?: string | undefined;
    signature?: string | undefined;
}>, z.ZodObject<{
    type: z.ZodLiteral<"redacted">;
    data: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "redacted";
    data: string;
}, {
    type: "redacted";
    data: string;
}>]>;
declare const PartialReasoningContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"partial-reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodOptional<z.ZodString>;
        signature: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodOptional<z.ZodString>;
        signature: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodOptional<z.ZodString>;
        signature: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodOptional<z.ZodString>;
        signature: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-reasoning">;
    value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"thinking">;
        thinking: z.ZodOptional<z.ZodString>;
        signature: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }, {
        type: "thinking";
        thinking?: string | undefined;
        signature?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"redacted">;
        data: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "redacted";
        data: string;
    }, {
        type: "redacted";
        data: string;
    }>]>;
    metadata: M;
}>[k_1]; }>;
type PartialReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialReasoningContent<M>>>;

declare const TextModalityLiteral: "text";
declare const TextContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"text">;
    value: z.ZodString;
    metadata: M;
}>[k_1]; }>;
type TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;
declare const PartialTextModalityLiteral: "partial-text";
declare const PartialTextContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-text">;
    value: z.ZodString;
    metadata: M;
}>[k_1]; }>;
type PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;

declare const TokenModalityLiteral: "token";
declare const TokenContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"token">;
    value: z.ZodArray<z.ZodNumber, "many">;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"token">;
    value: z.ZodArray<z.ZodNumber, "many">;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"token">;
    value: z.ZodArray<z.ZodNumber, "many">;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"token">;
    value: z.ZodArray<z.ZodNumber, "many">;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"token">;
    value: z.ZodArray<z.ZodNumber, "many">;
    metadata: M;
}>[k_1]; }>;
type TokenContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TokenContent<M>>>;

declare const ToolCallModalityLiteral: "tool-call";
declare const ToolCallContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-call">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    arguments: z.ZodString;
    metadata: M;
}>[k_1]; }>;
type ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;
declare const PartialToolCallModalityLiteral: "partial-tool-call";
declare const PartialToolCallContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"partial-tool-call">;
    index: z.ZodNumber;
    id: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    arguments: z.ZodOptional<z.ZodString>;
    metadata: M;
}>[k_1]; }>;
type PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;

declare const ToolResponseModalityLiteral: "tool-response";
declare const ToolResponseContent: <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata?: M) => z.ZodObject<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: M;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: M;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: M;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: M;
}>]: z.baseObjectInputType<{
    modality: z.ZodLiteral<"tool-response">;
    index: z.ZodNumber;
    id: z.ZodString;
    name: z.ZodString;
    data: z.ZodString;
    metadata: M;
}>[k_1]; }>;
type ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;

/**
 * A pair of per‑million‑token rates for a single price category (e.g., base input/output).
 * Represents the input and output cost for 1 million tokens within a specific category (like 'base') of a pricing tier.
 */
declare const ChatModelTokenPairPrice: z.ZodObject<{
    inputPricePerMillion: z.ZodNumber;
    outputPricePerMillion: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    inputPricePerMillion: number;
    outputPricePerMillion: number;
}, {
    inputPricePerMillion: number;
    outputPricePerMillion: number;
}>;
type ChatModelTokenPairPriceType = z.infer<typeof ChatModelTokenPairPrice>;
/**
 * Defines the price categories (e.g., base) applicable within a single pricing tier (`ChatModelTokenRangePrice`).
 * Each category holds a `ChatModelTokenPairPrice`.
 */
declare const ChatModelTokenTypePrice: z.ZodObject<{
    base: z.ZodObject<{
        inputPricePerMillion: z.ZodNumber;
        outputPricePerMillion: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        inputPricePerMillion: number;
        outputPricePerMillion: number;
    }, {
        inputPricePerMillion: number;
        outputPricePerMillion: number;
    }>;
}, "strip", z.ZodTypeAny, {
    base: {
        inputPricePerMillion: number;
        outputPricePerMillion: number;
    };
}, {
    base: {
        inputPricePerMillion: number;
        outputPricePerMillion: number;
    };
}>;
type ChatModelTokenTypePriceType = z.infer<typeof ChatModelTokenTypePrice>;
/**
 * Defines a single tier in a model's pricing schedule (`ChatModelPrice`), based on token count range.
 * - `minTokens`: inclusive lower bound (integer ≥ 0).
 * - `maxTokens`: exclusive upper bound (integer > minTokens), or `null` for ∞.
 * - `prices`: the `ChatModelTokenTypePrice` (categories and their rates) applicable to this tier.
 */
declare const ChatModelTokenRangePrice: z.ZodEffects<z.ZodObject<{
    minTokens: z.ZodNumber;
    maxTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    prices: z.ZodObject<{
        base: z.ZodObject<{
            inputPricePerMillion: z.ZodNumber;
            outputPricePerMillion: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        }, {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        }>;
    }, "strip", z.ZodTypeAny, {
        base: {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        };
    }, {
        base: {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        };
    }>;
}, "strip", z.ZodTypeAny, {
    minTokens: number;
    prices: {
        base: {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        };
    };
    maxTokens?: number | null | undefined;
}, {
    minTokens: number;
    prices: {
        base: {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        };
    };
    maxTokens?: number | null | undefined;
}>, {
    minTokens: number;
    prices: {
        base: {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        };
    };
    maxTokens?: number | null | undefined;
}, {
    minTokens: number;
    prices: {
        base: {
            inputPricePerMillion: number;
            outputPricePerMillion: number;
        };
    };
    maxTokens?: number | null | undefined;
}>;
type ChatModelTokenRangePriceType = z.infer<typeof ChatModelTokenRangePrice>;
/**
 * Full pricing schedule for a specific chat model, potentially with multiple `ChatModelTokenRangePrice` tiers.
 * Ensures tiers are contiguous and cover the full range from 0 to infinity.
 * - First tier must start at 0 tokens.
 * - `tokenRanges` must be contiguous: each tier.minTokens === previous.maxTokens.
 * - Last `tokenRange` must have maxTokens = null (infinite).
 */
declare const ChatModelPrice: z.ZodEffects<z.ZodObject<{
    modelName: z.ZodString;
    currency: z.ZodDefault<z.ZodString>;
    tokenRanges: z.ZodArray<z.ZodEffects<z.ZodObject<{
        minTokens: z.ZodNumber;
        maxTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        prices: z.ZodObject<{
            base: z.ZodObject<{
                inputPricePerMillion: z.ZodNumber;
                outputPricePerMillion: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            }, {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            }>;
        }, "strip", z.ZodTypeAny, {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        }, {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        }>;
    }, "strip", z.ZodTypeAny, {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }, {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }>, {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }, {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    modelName: string;
    currency: string;
    tokenRanges: {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }[];
}, {
    modelName: string;
    tokenRanges: {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }[];
    currency?: string | undefined;
}>, {
    modelName: string;
    currency: string;
    tokenRanges: {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }[];
}, {
    modelName: string;
    tokenRanges: {
        minTokens: number;
        prices: {
            base: {
                inputPricePerMillion: number;
                outputPricePerMillion: number;
            };
        };
        maxTokens?: number | null | undefined;
    }[];
    currency?: string | undefined;
}>;
type ChatModelPriceType = z.infer<typeof ChatModelPrice>;

declare const FunctionToolLiteral: "function";
declare const FunctionParameterTypes: string[];
declare const FunctionParameterTypesLiteral: z.ZodEnum<["object", "array", "number", "string", "boolean", "null"]>;
type FunctionParameterTypesType = z.infer<typeof FunctionParameterTypesLiteral>;
declare const FunctionParameter: z.ZodObject<{
    anyOf: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
    type: z.ZodOptional<z.ZodEnum<["object", "array", "number", "string", "boolean", "null"]>>;
    default: z.ZodOptional<z.ZodAny>;
    title: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    minItems: z.ZodOptional<z.ZodNumber>;
    maxItems: z.ZodOptional<z.ZodNumber>;
    items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    enum: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, "many">>;
    minimum: z.ZodOptional<z.ZodNumber>;
    maximum: z.ZodOptional<z.ZodNumber>;
    minLength: z.ZodOptional<z.ZodNumber>;
    maxLength: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    minimum?: number | undefined;
    type?: "string" | "number" | "boolean" | "object" | "null" | "array" | undefined;
    maximum?: number | undefined;
    default?: any;
    enum?: (string | number | boolean | null)[] | undefined;
    anyOf?: any[] | undefined;
    title?: string | undefined;
    description?: string | undefined;
    properties?: Record<string, any> | undefined;
    required?: string[] | undefined;
    minItems?: number | undefined;
    maxItems?: number | undefined;
    items?: Record<string, any> | undefined;
    minLength?: number | undefined;
    maxLength?: number | undefined;
}, {
    minimum?: number | undefined;
    type?: "string" | "number" | "boolean" | "object" | "null" | "array" | undefined;
    maximum?: number | undefined;
    default?: any;
    enum?: (string | number | boolean | null)[] | undefined;
    anyOf?: any[] | undefined;
    title?: string | undefined;
    description?: string | undefined;
    properties?: Record<string, any> | undefined;
    required?: string[] | undefined;
    minItems?: number | undefined;
    maxItems?: number | undefined;
    items?: Record<string, any> | undefined;
    minLength?: number | undefined;
    maxLength?: number | undefined;
}>;
type FunctionParameterType = z.infer<typeof FunctionParameter>;
declare const FunctionParameters: z.ZodObject<{
    type: z.ZodEnum<["object"]>;
    title: z.ZodOptional<z.ZodString>;
    $defs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        anyOf: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
        type: z.ZodOptional<z.ZodEnum<["object", "array", "number", "string", "boolean", "null"]>>;
        default: z.ZodOptional<z.ZodAny>;
        title: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        minItems: z.ZodOptional<z.ZodNumber>;
        maxItems: z.ZodOptional<z.ZodNumber>;
        items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        enum: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, "many">>;
        minimum: z.ZodOptional<z.ZodNumber>;
        maximum: z.ZodOptional<z.ZodNumber>;
        minLength: z.ZodOptional<z.ZodNumber>;
        maxLength: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "null" | "array" | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
    }, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "null" | "array" | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
    }>>>;
    required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    type: "object";
    title?: string | undefined;
    properties?: Record<string, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "null" | "array" | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
    }> | undefined;
    required?: string[] | undefined;
    $defs?: Record<string, any> | undefined;
}, {
    type: "object";
    title?: string | undefined;
    properties?: Record<string, {
        minimum?: number | undefined;
        type?: "string" | "number" | "boolean" | "object" | "null" | "array" | undefined;
        maximum?: number | undefined;
        default?: any;
        enum?: (string | number | boolean | null)[] | undefined;
        anyOf?: any[] | undefined;
        title?: string | undefined;
        description?: string | undefined;
        properties?: Record<string, any> | undefined;
        required?: string[] | undefined;
        minItems?: number | undefined;
        maxItems?: number | undefined;
        items?: Record<string, any> | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
    }> | undefined;
    required?: string[] | undefined;
    $defs?: Record<string, any> | undefined;
}>;
type FunctionParametersType = z.infer<typeof FunctionParameters>;
declare const Function: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    parameters: z.ZodAny;
    strict: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    name: string;
    description: string;
    strict?: boolean | undefined;
    parameters?: any;
}, {
    name: string;
    description: string;
    strict?: boolean | undefined;
    parameters?: any;
}>;
type FunctionType = z.infer<typeof Function>;
declare const ToolTypes: string[];
declare const ToolTypesLiteral: z.ZodEnum<["function"]>;
type ToolTypesType = z.infer<typeof ToolTypesLiteral>;
declare const FunctionTool: z.ZodObject<{
    type: z.ZodEnum<["function"]>;
    definition: z.ZodObject<{
        schema: z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
            parameters: z.ZodAny;
            strict: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }>;
}, "strip", z.ZodTypeAny, {
    type: "function";
    definition: {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    };
}, {
    type: "function";
    definition: {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    };
}>;
type FunctionToolType = z.infer<typeof FunctionTool>;

declare const ToolLiterals: readonly ["function"];
declare const ToolEnum: z.ZodEnum<["function"]>;
type ToolEnumType = z.infer<typeof ToolEnum>;
declare const Tool: <FTM extends z.ZodTypeAny>(FunctionToolMetadata?: FTM) => z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
    type: z.ZodEnum<["function"]>;
    definition: z.ZodObject<{
        schema: z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
            parameters: z.ZodAny;
            strict: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }>;
}, {
    metadata: FTM;
}>, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<{
    type: z.ZodEnum<["function"]>;
    definition: z.ZodObject<{
        schema: z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
            parameters: z.ZodAny;
            strict: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }>;
}, {
    metadata: FTM;
}>>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<{
    type: z.ZodEnum<["function"]>;
    definition: z.ZodObject<{
        schema: z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
            parameters: z.ZodAny;
            strict: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }>;
}, {
    metadata: FTM;
}>>, any>[k]; } : never, z.baseObjectInputType<z.objectUtil.extendShape<{
    type: z.ZodEnum<["function"]>;
    definition: z.ZodObject<{
        schema: z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
            parameters: z.ZodAny;
            strict: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }>;
}, {
    metadata: FTM;
}>> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<z.objectUtil.extendShape<{
    type: z.ZodEnum<["function"]>;
    definition: z.ZodObject<{
        schema: z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
            parameters: z.ZodAny;
            strict: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }, {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }, {
        schema: {
            name: string;
            description: string;
            strict?: boolean | undefined;
            parameters?: any;
        };
    }>;
}, {
    metadata: FTM;
}>>[k_1]; } : never>]>;
type ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;

declare const createTextContent: (content: string) => ContentType;
declare const createToolCallContent: (index: number, id: string, name: string, args: string) => ContentType;
declare const createTextMessage: (role: RoleEnumType, content: string) => MessageType;
declare const createUrlImageMessage: (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType) => MessageType;
declare const createBase64ImageMessage: (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType) => MessageType;
declare const createToolCallMessage: (role: RoleEnumType, index: number, id: string, name: string, args: string) => MessageType;
declare const createToolResponseMessage: (role: RoleEnumType, index: number, id: string, name: string, data: string) => MessageType;
declare const createPartialTextMessage: (role: RoleEnumType, content: string) => PartialMessageType;
declare const createPartialToolCallMessage: (role: RoleEnumType, index: number, id?: string, name?: string, args?: string) => PartialMessageType;
declare const createReasoningContent: (thinking: string, signature: string) => ContentType;
declare const createReasoningMessage: (role: RoleEnumType, thinking: string, signature: string) => MessageType;
declare const createRedactedReasoningContent: (data: string) => ContentType;
declare const createRedactedReasoningMessage: (role: RoleEnumType, data: string) => MessageType;
declare const createPartialReasoningMessage: (role: RoleEnumType, thinking?: string, signature?: string) => PartialMessageType;
declare const createPartialRedactedReasoningMessage: (role: RoleEnumType, data: string) => PartialMessageType;

declare const mergePartialMessages: (response: PartialChatResponseType[]) => ChatResponseType;

export { AssistantRoleLiteral, Base64Embedding, Base64EmbeddingLiteral, type Base64EmbeddingType, Base64ImageContentMediaTypeLiterals, Base64ImageContentTypeLiteral, Base64ImageContentValue, type Base64ImageContentValueType, ChatBaseLogProb, type ChatBaseLogProbType, ChatLogProb, type ChatLogProbType, ChatLogProbs, type ChatLogProbsType, ChatModelPrice, type ChatModelPriceType, ChatModelTokenPairPrice, type ChatModelTokenPairPriceType, ChatModelTokenRangePrice, type ChatModelTokenRangePriceType, ChatModelTokenTypePrice, type ChatModelTokenTypePriceType, ChatResponse, type ChatResponseType, ChatUsage, type ChatUsageType, Config, type ConfigType, Content, type ContentType, EmbeddingModalityEnum, type EmbeddingModalityEnumType, EmbeddingModalityLiterals, EmbeddingRequests, type EmbeddingRequestsType, EmbeddingResponse, type EmbeddingResponseType, EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral, EmbeddingsUsage, type EmbeddingsUsageType, FloatEmbedding, FloatEmbeddingLiteral, type FloatEmbeddingType, Function, FunctionParameter, type FunctionParameterType, FunctionParameterTypes, FunctionParameterTypesLiteral, type FunctionParameterTypesType, FunctionParameters, type FunctionParametersType, FunctionTool, FunctionToolLiteral, type FunctionToolType, type FunctionType, GatewayBaseError, ImageContent, ImageContentDetails, ImageContentDetailsLiteral, type ImageContentDetailsLiteralType, type ImageContentType, type ImageContentValueType, ImageModalityLiteral, Message, type MessageType, ModalityEnum, type ModalityEnumType, ModalityLiterals, PartialChatResponse, type PartialChatResponseType, PartialChatUsage, type PartialChatUsageType, PartialContent, type PartialContentType, PartialMessage, type PartialMessageType, PartialModalityEnum, type PartialModalityEnumType, PartialModalityLiterals, PartialReasoningContent, type PartialReasoningContentType, PartialReasoningContentValue, PartialReasoningContentValueUnion, PartialReasoningModalityLiteral, PartialRoleEnum, type PartialRoleEnumType, PartialRoleLiterals, PartialTextContent, type PartialTextContentType, PartialTextModalityLiteral, PartialToolCallContent, type PartialToolCallContentType, PartialToolCallModalityLiteral, ReasoningContent, type ReasoningContentType, ReasoningContentTypeLiteral, ReasoningContentValue, type ReasoningContentValueType, ReasoningContentValueUnion, type ReasoningContentValueUnionType, ReasoningModalityLiteral, RedactedReasoningContentTypeLiteral, RedactedReasoningContentValue, type RedactedReasoningContentValueType, ResponseSchema, ResponseSchemaProperty, type ResponseSchemaPropertyType, ResponseSchemaStructure, type ResponseSchemaStructureType, type ResponseSchemaType, ResponseSchemaTypes, ResponseSchemaTypesLiteral, type ResponseSchemaTypesType, RoleEnum, type RoleEnumType, RoleLiterals, SystemRoleLiteral, TextContent, type TextContentType, TextEmbeddingRequests, type TextEmbeddingRequestsType, TextModalityLiteral, TokenContent, type TokenContentType, TokenEmbeddingRequests, type TokenEmbeddingRequestsType, TokenModalityLiteral, Tool, ToolCallContent, type ToolCallContentType, ToolCallModalityLiteral, ToolEnum, type ToolEnumType, ToolLiterals, ToolResponseContent, type ToolResponseContentType, ToolResponseModalityLiteral, ToolRoleLiteral, type ToolType, ToolTypes, ToolTypesLiteral, type ToolTypesType, UrlImageContentTypeLiteral, UrlImageContentValue, type UrlImageContentValueType, UserRoleLiteral, createBase64ImageMessage, createPartialReasoningMessage, createPartialRedactedReasoningMessage, createPartialTextMessage, createPartialToolCallMessage, createReasoningContent, createReasoningMessage, createRedactedReasoningContent, createRedactedReasoningMessage, createTextContent, createTextMessage, createToolCallContent, createToolCallMessage, createToolResponseMessage, createUrlImageMessage, mergePartialMessages };
