import { Image } from "../../image"; import type { AssertViewOpts } from "../../config/types"; import { WdioBrowser } from "../../types"; import { Camera } from "../camera"; import type * as browserSideScreenshooterImplementation from "../client-scripts/screen-shooter/implementation"; import { ClientBridge, type ClientBridgeArgument } from "../client-bridge"; import type { PrepareScreenshotSuccess } from "../client-scripts/screen-shooter/types"; interface ScreenShooterOpts extends AssertViewOpts { debugId?: string; pixelRatioOverride?: number; } type ElementTarget = ClientBridgeArgument; interface CaptureImageResult { image: Image; meta: PrepareScreenshotSuccess; } interface ScreenShooterBrowserProperties { isWebdriverProtocol: boolean; shouldUsePixelRatio: boolean; needsCompatLib: boolean; isHeadless: boolean; isPixelRatioEmulated: boolean; estimatedPixelRatioFromCapabilities?: number; } interface ScreenShooterInputParams { camera: Camera; browser: WdioBrowser; browserProperties: ScreenShooterBrowserProperties; } interface ScreenShooterFullParams extends ScreenShooterInputParams { browserSideScreenshooter: ClientBridge; } export declare class ElementsScreenShooter { private _browser; private _camera; private _browserProperties; private _browserSideScreenshooter; static create(params: ScreenShooterInputParams): Promise; constructor({ browser, camera, browserProperties, browserSideScreenshooter }: ScreenShooterFullParams); capture(targetOrTargets: ElementTarget | ElementTarget[], opts?: ScreenShooterOpts): Promise; private _prepareScreenshot; private _cleanupScreenshot; private _getCaptureState; /** Scrolls through the entire capture area to trigger lazy loading, then restores scroll and records anchor baselines. */ private _preloadCaptureArea; private _scrollThroughCaptureArea; private _performCaptureAttempt; } export {};