import { Image } from "../../image"; import type { DisableHoverMode } from "../isomorphic/types"; import type { WdioBrowser } from "../../types"; import { Camera, type CropMargins } from "../camera"; import type * as browserSideScreenshooterImplementation from "../client-scripts/screen-shooter/implementation"; import { ClientBridge } from "../client-bridge"; interface ScreenShooterBrowserProperties { isWebdriverProtocol: boolean; shouldUsePixelRatio: boolean; needsCompatLib: boolean; isHeadless: boolean; isPixelRatioEmulated: boolean; estimatedPixelRatioFromCapabilities?: number; } interface ViewportScreenShooterInputParams { camera: Camera; browser: WdioBrowser; browserProperties: ScreenShooterBrowserProperties; } interface ViewportScreenShooterFullParams extends ViewportScreenShooterInputParams { browserSideScreenshooter: ClientBridge; } interface ViewportCaptureOpts { ignoreElements?: string | string[]; screenshotDelay?: number; disableAnimation?: boolean; disableHover?: DisableHoverMode; cropMargins?: CropMargins; pixelRatioOverride?: number; } interface ViewportCaptureResult { image: Image; meta: { canHaveCaret: boolean; pixelRatio: number; }; } export declare class ViewportScreenShooter { private _browser; private _camera; private _browserProperties; private _browserSideScreenshooter; static create(params: ViewportScreenShooterInputParams): Promise; constructor({ browser, camera, browserProperties, browserSideScreenshooter }: ViewportScreenShooterFullParams); capture(opts?: ViewportCaptureOpts): Promise; private _captureImpl; private _cleanup; } export {};