import { z } from "zod"; /** * 图片内容识别智能体 - 完整类型定义 */ /** * 图片基本信息 */ export interface ImageBasicInfo { width: number; height: number; format: string; size: number; aspectRatio: number; isLongImage: boolean; filePath: string; fileName: string; createdAt: Date; } /** * 图片验证结果 */ export interface ImageValidationResult { isValid: boolean; errorMessage?: string; fileExists: boolean; formatSupported: boolean; readable: boolean; } /** * 图片质量评估 */ export interface QualityAssessment { score: number; resolution: number; format: number; clarity: number; recommendation: string; } /** * 分段配置 */ export interface SegmentConfig { segmentHeight: number; overlapHeight: number; totalSegments: number; processingOrder: number[]; estimatedTime: number; } /** * 并发配置 */ export interface ConcurrencyConfig { maxConcurrency: number; batchSize: number; delayBetweenBatches: number; memoryLimit: number; } /** * 段落信息 */ export interface SegmentInfo { index: number; totalSegments: number; position: { x: number; y: number; width: number; height: number; }; isFirstSegment: boolean; isLastSegment: boolean; hasOverlap: boolean; } /** * 段落分析结果 */ export interface SegmentAnalysisResult { segmentIndex: number; textContent: string; imageDescription: string; confidence: number; processingTimeMs: number; apiUsed: string; tokenUsage?: { promptTokens: number; completionTokens: number; totalTokens: number; }; error?: string; } /** * 完整分析结果 */ export interface CompleteAnalysisResult { imageInfo: ImageBasicInfo; segmentResults: SegmentAnalysisResult[]; summary: ProcessingSummary; outputPath: string; success: boolean; } /** * 处理摘要 */ export interface ProcessingSummary { totalSegments: number; successfulSegments: number; failedSegments: number; successRate: number; totalProcessingTimeMs: number; averageProcessingTimeMs: number; averageConfidence: number; totalTokensUsed: number; totalTextCharacters: number; totalDescriptionCharacters: number; apiUsageStats: Array<{ apiName: string; count: number; }>; errorSummary?: string[]; } /** * 输出文件信息 */ export interface OutputFileInfo { filePath: string; fileName: string; directory: string; createdAt: Date; lastModified: Date; size: number; } /** * 实时输出状态 */ export interface RealtimeOutputStatus { isInitialized: boolean; currentSegment: number; totalSegments: number; progress: number; estimatedTimeRemaining: number; outputPath: string; } /** * 错误类型枚举 */ export declare enum ErrorTypes { VALIDATION_ERROR = "VALIDATION_ERROR", FILE_NOT_FOUND = "FILE_NOT_FOUND", UNSUPPORTED_FORMAT = "UNSUPPORTED_FORMAT", IMAGE_PROCESSING_ERROR = "IMAGE_PROCESSING_ERROR", API_CALL_ERROR = "API_CALL_ERROR", OUTPUT_ERROR = "OUTPUT_ERROR", SYSTEM_ERROR = "SYSTEM_ERROR", TIMEOUT_ERROR = "TIMEOUT_ERROR", MEMORY_ERROR = "MEMORY_ERROR", ANALYSIS_FAILED = "ANALYSIS_FAILED" } /** * 自定义错误类 */ export declare class ImageRecognitionError extends Error { errorType: ErrorTypes; details?: any | undefined; constructor(message: string, errorType: ErrorTypes, details?: any | undefined); } /** * 支持的图片格式 */ export declare const SUPPORTED_IMAGE_FORMATS: readonly ["png", "jpg", "jpeg", "webp", "tiff", "bmp"]; export type SupportedImageFormat = typeof SUPPORTED_IMAGE_FORMATS[number]; /** * API类型 */ export declare const API_TYPES: readonly ["glm-4v", "moonshot", "auto"]; export type ApiType = typeof API_TYPES[number]; /** * 长图判断阈值 */ export declare const LONG_IMAGE_THRESHOLDS: { readonly MIN_HEIGHT: 1000; readonly MIN_ASPECT_RATIO: 2; readonly OPTIMAL_SEGMENT_HEIGHT: 800; readonly MIN_OVERLAP: 50; readonly MAX_SEGMENTS: 20; }; /** * 性能配置常量 */ export declare const PERFORMANCE_LIMITS: { readonly MAX_CONCURRENCY: 4; readonly MAX_MEMORY_MB: 500; readonly TIMEOUT_MS: 30000; readonly MAX_RETRIES: 3; readonly RETRY_DELAY_MS: 1000; }; /** * 图片内容识别工具参数Schema * 简化版本:只需要图片路径,其他参数都有合理的默认值 */ export declare const ImageRecognitionParamsSchema: z.ZodObject<{ projectPath: z.ZodString; imagePath: z.ZodString; context: z.ZodOptional; }, "strip", z.ZodTypeAny, { projectPath: string; imagePath: string; context?: string | undefined; }, { projectPath: string; imagePath: string; context?: string | undefined; }>; /** * 图片基本信息Schema */ export declare const ImageBasicInfoSchema: z.ZodObject<{ width: z.ZodNumber; height: z.ZodNumber; format: z.ZodString; size: z.ZodNumber; aspectRatio: z.ZodNumber; isLongImage: z.ZodBoolean; filePath: z.ZodString; fileName: z.ZodString; createdAt: z.ZodDate; }, "strip", z.ZodTypeAny, { format: string; size: number; filePath: string; createdAt: Date; width: number; height: number; aspectRatio: number; isLongImage: boolean; fileName: string; }, { format: string; size: number; filePath: string; createdAt: Date; width: number; height: number; aspectRatio: number; isLongImage: boolean; fileName: string; }>; /** * 分段配置Schema */ export declare const SegmentConfigSchema: z.ZodObject<{ segmentHeight: z.ZodNumber; overlapHeight: z.ZodNumber; totalSegments: z.ZodNumber; processingOrder: z.ZodArray; estimatedTime: z.ZodNumber; }, "strip", z.ZodTypeAny, { segmentHeight: number; overlapHeight: number; totalSegments: number; processingOrder: number[]; estimatedTime: number; }, { segmentHeight: number; overlapHeight: number; totalSegments: number; processingOrder: number[]; estimatedTime: number; }>; /** * 段落分析结果Schema */ export declare const SegmentAnalysisResultSchema: z.ZodObject<{ segmentIndex: z.ZodNumber; textContent: z.ZodString; imageDescription: z.ZodString; confidence: z.ZodNumber; processingTimeMs: z.ZodNumber; apiUsed: z.ZodString; tokenUsage: z.ZodOptional>; error: z.ZodOptional; }, "strip", z.ZodTypeAny, { segmentIndex: number; textContent: string; imageDescription: string; confidence: number; processingTimeMs: number; apiUsed: string; error?: string | undefined; tokenUsage?: { promptTokens: number; completionTokens: number; totalTokens: number; } | undefined; }, { segmentIndex: number; textContent: string; imageDescription: string; confidence: number; processingTimeMs: number; apiUsed: string; error?: string | undefined; tokenUsage?: { promptTokens: number; completionTokens: number; totalTokens: number; } | undefined; }>; /** * 从Schema推导的类型 */ export type ImageRecognitionToolParams = z.infer; export type ValidatedImageBasicInfo = z.infer; export type ValidatedSegmentConfig = z.infer; export type ValidatedSegmentAnalysisResult = z.infer; //# sourceMappingURL=types.d.ts.map