import type { z } from "zod"; import type { L0State, L0Telemetry, RetryOptions } from "./l0"; export interface StructuredOptions { schema: T; stream: () => Promise | any; fallbackStreams?: Array<() => Promise | any>; retry?: RetryOptions; autoCorrect?: boolean; strictMode?: boolean; timeout?: { initialToken?: number; interToken?: number; }; signal?: AbortSignal; monitoring?: { enabled?: boolean; sampleRate?: number; metadata?: Record; }; detectZeroTokens?: boolean; onValidationError?: (error: z.ZodError, attempt: number) => void; onAutoCorrect?: (corrections: CorrectionInfo) => void; onRetry?: (attempt: number, reason: string) => void; } export interface StructuredResult { data: T; raw: string; corrected: boolean; corrections: string[]; state: StructuredState; telemetry?: StructuredTelemetry; errors: Error[]; abort: () => void; } export interface StructuredState extends L0State { validationFailures: number; autoCorrections: number; validationErrors: z.ZodError[]; } export interface StructuredTelemetry extends L0Telemetry { structured: { schemaName?: string; validationAttempts: number; validationFailures: number; autoCorrections: number; correctionTypes: string[]; validationSuccess: boolean; validationTime?: number; }; } export interface CorrectionInfo { original: string; corrected: string; corrections: CorrectionType[]; success: boolean; } export type CorrectionType = "close_brace" | "close_bracket" | "remove_trailing_comma" | "strip_markdown_fence" | "strip_json_prefix" | "remove_prefix_text" | "remove_suffix_text" | "fix_quotes" | "remove_comments" | "escape_control_chars" | "fill_missing_fields" | "remove_unknown_fields" | "coerce_types" | "extract_json"; export interface AutoCorrectOptions { structural?: boolean; stripFormatting?: boolean; schemaBased?: boolean; strict?: boolean; } export interface AutoCorrectResult { corrected: string; success: boolean; corrections: CorrectionType[]; error?: Error; } export interface StructuredPreset { name: string; autoCorrect: boolean; strictMode: boolean; retry: RetryOptions; } export declare const minimalStructured: Partial; export declare const recommendedStructured: Partial; export declare const strictStructured: Partial; //# sourceMappingURL=structured.d.ts.map