/** * PlaywrightRenderer * * Renderer adapter using Playwright. * Alternative to Puppeteer with better cross-browser support. * * **Supported Formats**: PDF, PNG, JPEG, HTML * * **Pros**: * - Cross-browser support (Chromium, Firefox, WebKit) * - Better API than Puppeteer * - Auto-wait for elements * - Better debugging * * **Cons**: * - Similar size to Puppeteer * - Requires browser binaries * * **Best For**: * - Cross-browser PDF testing * - Complex web apps * - Better developer experience than Puppeteer */ import { type StoragePlaywrightRendererConfig, type StorageRenderOptions, type StorageRenderResult, type StorageRendererHealthCheck } from '@plyaz/types/storage'; import { BaseRendererAdapter } from '../base/BaseRendererAdapter'; /** * PlaywrightRenderer Adapter * * Config-driven renderer using Playwright. * * @example * ```typescript * const renderer = new PlaywrightRenderer({ * name: 'playwright-main', * type: STORAGE_RENDERER_TYPE.PLAYWRIGHT, * enabled: true, * priority: 90, * supportedFormats: [OUTPUT_FORMAT.PDF, OUTPUT_FORMAT.PNG], * config: { * browserType: 'chromium', * keepAlive: true * } * }); * ``` */ export declare class PlaywrightRenderer extends BaseRendererAdapter { private browser?; private readonly browserType; private readonly launchOptions; private readonly keepAlive; private readonly timeout; constructor(config: StoragePlaywrightRendererConfig); /** * Render content */ render(options: StorageRenderOptions): Promise; /** * Render HTML to PDF * @private */ private renderPDF; /** * Render HTML to image * @private */ private renderImage; /** * Get or create page * @private */ private getPage; /** * Get or create browser instance * @private */ private getBrowser; /** * Convert storage PDF options to Playwright format * @private */ private convertPDFOptions; /** * Get HTML content from options * @private */ private getHtmlContent; /** * Check renderer health */ checkHealth(): Promise; /** * Cleanup resources */ destroy(): Promise; }