import { DevSkinConfig } from '../types'; import { Transport } from '../transport'; export declare class ScreenshotCollector { private config; private transport; private capturedUrls; private retryCount; private readonly MAX_RETRIES; private inFlightUrls; constructor(config: DevSkinConfig, transport: Transport); /** * Capture a screenshot of the current page and send to backend. * * Strategy: * 1. Espera document.readyState === 'complete' (todas as imagens, CSS, etc) * 2. Espera todas as imagens visíveis terminarem de carregar * 3. Espera idle callback (página parou de fazer trabalho pesado) * 4. Sonda inner-scroll containers (SPA com overflow:auto) pra medir altura real * 5. html2canvas com windowHeight = altura total + onclone que destrava overflow * 6. Decodifica o JPEG resultante e VALIDA a altura real (não confia em canvas.height) * 7. Se altura real < 60% da página, retry com backoff */ captureAndSend(sessionId: string, pageUrl: string): Promise; private runCapture; /** * Reseta o estado para permitir nova captura desta URL (usado em SPA route change). */ resetForUrl(pageUrl: string): void; /** Aguarda document.readyState === 'complete' + window load */ private waitForPageReady; /** Aguarda visíveis terminarem de carregar (com timeout) */ private waitForImagesLoaded; /** Aguarda idle callback (browser parou de processar) */ private waitForIdle; /** * Mede altura total da página. * * Usa só body/documentElement scrollHeight — que são os valores canônicos. * NÃO iteramos querySelectorAll('*') sondando inner scrollHeight porque * isso pega scrollHeight de iframes do GTM/FB Pixel/chat widgets que têm * milhares de px internos, inflando falsamente a medida da página. */ private measureFullHeight; /** Mede largura total da página */ private measureFullWidth; /** Decodifica um dataURL pra obter dimensões reais (driver do canvas pode mentir) */ private measureDataUrl; /** Faz uma captura, retornando canvas + dimensões medidas */ private attemptCapture; } //# sourceMappingURL=screenshot.d.ts.map