import { z } from 'zod'; /** * Zod schema for a complete Perplexity API response. * Validates the core fields that lumic-utils depends on. * Uses .passthrough() to allow additional fields from newer API versions. */ export declare const perplexityResponseSchema: z.ZodObject<{ id: z.ZodString; model: z.ZodString; object: z.ZodString; created: z.ZodNumber; choices: z.ZodArray>; message: z.ZodObject<{ role: z.ZodEnum<["assistant"]>; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; role: "assistant"; }, { content: string; role: "assistant"; }>; delta: z.ZodOptional; content: z.ZodOptional; }, "strip", z.ZodTypeAny, { content?: string | undefined; role?: string | undefined; }, { content?: string | undefined; role?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }>, "many">; usage: z.ZodOptional, z.objectInputType<{ prompt_tokens: z.ZodNumber; completion_tokens: z.ZodNumber; total_tokens: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>>; citations: z.ZodOptional>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; model: z.ZodString; object: z.ZodString; created: z.ZodNumber; choices: z.ZodArray>; message: z.ZodObject<{ role: z.ZodEnum<["assistant"]>; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; role: "assistant"; }, { content: string; role: "assistant"; }>; delta: z.ZodOptional; content: z.ZodOptional; }, "strip", z.ZodTypeAny, { content?: string | undefined; role?: string | undefined; }, { content?: string | undefined; role?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }>, "many">; usage: z.ZodOptional, z.objectInputType<{ prompt_tokens: z.ZodNumber; completion_tokens: z.ZodNumber; total_tokens: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>>; citations: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; model: z.ZodString; object: z.ZodString; created: z.ZodNumber; choices: z.ZodArray>; message: z.ZodObject<{ role: z.ZodEnum<["assistant"]>; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; role: "assistant"; }, { content: string; role: "assistant"; }>; delta: z.ZodOptional; content: z.ZodOptional; }, "strip", z.ZodTypeAny, { content?: string | undefined; role?: string | undefined; }, { content?: string | undefined; role?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }>, "many">; usage: z.ZodOptional, z.objectInputType<{ prompt_tokens: z.ZodNumber; completion_tokens: z.ZodNumber; total_tokens: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>>; citations: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">>; /** Type inferred from the Perplexity response schema */ export type PerplexityResponse = z.infer; /** Strict validator for Perplexity API responses. Throws on failure. */ export declare const validatePerplexityResponse: (data: unknown) => z.objectInputType<{ id: z.ZodString; model: z.ZodString; object: z.ZodString; created: z.ZodNumber; choices: z.ZodArray>; message: z.ZodObject<{ role: z.ZodEnum<["assistant"]>; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; role: "assistant"; }, { content: string; role: "assistant"; }>; delta: z.ZodOptional; content: z.ZodOptional; }, "strip", z.ZodTypeAny, { content?: string | undefined; role?: string | undefined; }, { content?: string | undefined; role?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }>, "many">; usage: z.ZodOptional, z.objectInputType<{ prompt_tokens: z.ZodNumber; completion_tokens: z.ZodNumber; total_tokens: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>>; citations: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">; /** Safe validator for Perplexity API responses. Never throws. */ export declare const safeValidatePerplexityResponse: (data: unknown) => import("./validation-helpers").ValidationResult>; message: z.ZodObject<{ role: z.ZodEnum<["assistant"]>; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; role: "assistant"; }, { content: string; role: "assistant"; }>; delta: z.ZodOptional; content: z.ZodOptional; }, "strip", z.ZodTypeAny, { content?: string | undefined; role?: string | undefined; }, { content?: string | undefined; role?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }, { message: { content: string; role: "assistant"; }; index: number; finish_reason: "length" | "stop" | "model_length" | null; delta?: { content?: string | undefined; role?: string | undefined; } | undefined; }>, "many">; usage: z.ZodOptional, z.objectInputType<{ prompt_tokens: z.ZodNumber; completion_tokens: z.ZodNumber; total_tokens: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>>; citations: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">>;