import type { PPTImageElement, Slide } from '../types/slides'; import type { ImagePaintCache } from './textContrast'; interface CanvasRange { minX: number; maxX: number; minY: number; maxY: number; } interface Viewport { width: number; height: number; } /** Map a canvas overlap onto the image's natural pixels, honoring clip + flip. */ export declare const canvasRegionToImagePixels: (el: PPTImageElement, region: CanvasRange, naturalWidth: number, naturalHeight: number) => { left: number; top: number; width: number; height: number; } | null; /** Map a canvas overlap onto a cover-fitted slide background image. */ export declare const canvasRegionToCoverPixels: (region: CanvasRange, viewport: Viewport, naturalWidth: number, naturalHeight: number) => { left: number; top: number; width: number; height: number; } | null; /** * Sample average colors for image layers that actually sit under text. * Browser-only (`Image` + canvas). Returns `undefined` when there is nothing * to sample or the environment can't decode images — the contrast query then * keeps treating those layers as `unknown`. */ export declare const sampleImagePaintsForSlide: (slide: Slide, viewport: Viewport) => Promise; export {};