import { ScreenshotInfo } from './types'; import type { CompareOptions as MssimCompareOptions } from './compare-mssim'; import type { CompareOptions as ImageCompareOptions } from './compare-image-embedding'; import type { CompareOptions as TextCompareOptions } from './compare-text-embedding'; /** * ------------------------------------------------------------ * Types * ------------------------------------------------------------ */ export type CompareAllOptions = { /** * Relative weights for each signal. * Missing / inactive signals are ignored and weights renormalized. */ weights?: { mssim?: number; vectorEmbedding?: number; textEmbedding?: number; }; /** * Forwarded directly to compare-mssim */ mssim?: MssimCompareOptions; /** * Forwarded directly to compare-image-embedding */ imageEmbedding?: ImageCompareOptions; /** * Forwarded directly to compare-text-embedding */ textEmbedding?: TextCompareOptions; }; export type CompareAllResult = { /** * Final similarity score in [0..1] */ score: number; /** * Human-readable explanation of what contributed */ notes: string[]; }; /** * ------------------------------------------------------------ * Main combiner * ------------------------------------------------------------ * * - MSSIM is assumed to always work * - Image / text embedding may return `undefined` * - Only successful signals participate in the weighted average */ export declare function compareWithNotes(page: ScreenshotInfo, figma: ScreenshotInfo, options?: CompareAllOptions): Promise; export * from './types'; export type { CompareOptions as MssimCompareOptions } from './compare-mssim'; export type { CompareOptions as ImageCompareOptions } from './compare-image-embedding'; export type { CompareOptions as TextCompareOptions } from './compare-text-embedding';