import type { LarkAttachment } from '../types.js'; export declare const DASHBOARD_IMAGE_MAX_COUNT = 8; export declare const DASHBOARD_IMAGE_MAX_BYTES: number; export declare const DASHBOARD_IMAGE_MAX_TOTAL_BYTES: number; export interface DashboardImageUpload { name: string; mimeType: string; dataBase64: string; } export type DashboardImagesResult = { ok: true; images: DashboardImageUpload[]; } | { ok: false; error: string; }; /** Validate browser-pasted images before any group or session is created. * SVG is deliberately excluded: the dashboard only accepts bounded raster * formats and verifies the file signature instead of trusting MIME/filename. */ export declare function parseDashboardImageUploads(value: unknown): DashboardImagesResult; /** Persist validated uploads inside this bot's read-isolation attachment * bucket. Each target daemon writes its own copy, so no bot needs access to a * sibling appId's files. */ export declare function materializeDashboardImages(larkAppId: string, images: DashboardImageUpload[]): LarkAttachment[]; /** Remove only a materialization directory created by the helper above. * Bucket and basename checks keep cleanup scoped to this bot's exact * attachment directory even if a malformed path reaches this function. */ export declare function cleanupMaterializedDashboardImages(larkAppId: string, attachments: readonly LarkAttachment[]): void; //# sourceMappingURL=dashboard-images.d.ts.map