/** * 图片下载工具 * 基于 research/test-image-download.ts 的调研结果实现 */ import type { Page } from 'playwright'; import type { ImageData } from '../types'; /** * 图片下载选项 */ export interface ImageDownloadOptions { /** 是否预热(访问首页建立会话) */ warmup?: boolean; /** 是否压缩图片 */ compressImages?: boolean; /** 图片质量 (50-95),默认 75 */ imageQuality?: number; /** 最大图片尺寸(像素),默认 1920 */ maxImageSize?: number; } /** * 从笔记页面下载所有图片 * * @param page Playwright Page 实例 * @param noteUrl 笔记 URL * @param options 下载选项 * @returns 图片数据列表(Base64 编码) * * @example * ```typescript * const images = await downloadNoteImages(page, 'https://www.xiaohongshu.com/explore/...', { * compressImages: true, * imageQuality: 75 * }); * logger.debug(`下载了 ${images.length} 张图片`); * ``` */ export declare function downloadNoteImages(page: Page, noteUrl: string, options?: ImageDownloadOptions): Promise; /** * 从多个笔记 URL 批量下载图片 * * @param page Playwright Page 实例 * @param noteUrls 笔记 URL 列表 * @param options 下载选项 * @returns 图片数据映射(URL -> 图片列表) */ export declare function downloadBatchImages(page: Page, noteUrls: string[], options?: ImageDownloadOptions): Promise>; /** * 将 ImageData 转换为 Claude Vision API 格式 * * @param image 图片数据 * @returns Claude Vision API 格式的图片对象 */ export declare function toClaudeVisionFormat(image: ImageData): { type: "image"; source: { type: "base64"; media_type: string; data: string; }; }; /** * 保存图片到本地文件系统 * * @param images 图片数据列表 * @param noteId 笔记 ID(用于创建目录) * @param outputDir 输出目录(可选,默认为临时目录) * @returns 保存的文件路径列表 * * @example * ```typescript * const images = await downloadNoteImages(page, noteUrl); * const savedPaths = await saveImagesToLocal(images, '68bbe7c7000000001d009751'); * logger.debug('图片已保存到:', savedPaths); * ``` */ export declare function saveImagesToLocal(images: ImageData[], noteId: string, outputDir?: string): string[]; //# sourceMappingURL=imageDownloader.d.ts.map