import { type ToolDef } from './registry.js'; import type { ImageStats, MockupStats } from '../image/imaging.js'; export interface QualityIssue { severity: 'block' | 'warn'; category: 'text_spelling' | 'transparency' | 'contrast' | 'framing' | 'resolution' | 'render' | 'background'; finding: string; suggested_fix?: string; } /** Pure scoring so it can be unit-tested + reused (e.g. by a future ship_product pre-flight). */ export declare function scoreQuality(stats: ImageStats, opts?: { needs_transparency?: boolean; ocrText?: string; }): { quality_score: number; issues: QualityIssue[]; }; export declare const verifyDesignQuality: ToolDef<{ design_uuid: string; image_url?: string | undefined; needs_transparency?: boolean | undefined; workspace?: string | undefined; }, { quality_score: number; issues: QualityIssue[]; dimensions: { width: number; height: number; }; transparency: { has_alpha: boolean; corners_clean: boolean; premultiplied_white: boolean; }; }>; export declare const checkDesignCompliance: ToolDef<{ design_uuid?: string | undefined; image_url?: string | undefined; prompt?: string | undefined; name?: string | undefined; target_channels?: string[] | undefined; workspace?: string | undefined; }, { approved: boolean; flags: import("../knowledge/compliance.js").ComplianceFlag[]; recommendation: string; disclaimer: string; }>; /** Perceptual items no pixel statistic decides reliably. Fixed wording so two * callers grading the same render answer the same questions. */ export declare const MOCKUP_VISUAL_CHECKLIST: string[]; export declare function scoreMockup(stats: MockupStats): { quality_score: number; issues: QualityIssue[]; }; export declare const verifyMockupQuality: ToolDef<{ preview_url: string; }, { quality_score: number; verdict: string; issues: QualityIssue[]; visual_checklist: string[]; measurements: { design_coverage: number; largest_flat_run: number; garment_ratio: number; distinct_colors: number; note: string; }; }>; export declare const safetyTools: ToolDef[];