import { Readable } from 'node:stream'; import { Plugin } from 'vite'; import { Page } from 'playwright'; interface Options { /** * Selector for the element to capture as the Open Graph image. * @example "#og-image" */ elementSelector: string; /** * Relative path to the directory to store generated images. * Relative to the client build assets (e.g. `/build/client`). */ outputDirectory: string; /** * Path to the debug directory to store any error-related screenshots. */ debugDirectory?: string; /** * Format of the generated image. * @default "jpeg" */ format?: 'jpeg' | 'png' | 'webp'; writeImage?: (image: { stream: Readable; }) => Promise; beforeScreenshot?: (args: { page: Page; }) => Promise; browser?: { executablePath?: string; /** * Custom media features. * Use this to force media features like `prefers-color-scheme` * or `prefers-reduced-motion`. * * @example * mediaFeatures: { * 'prefers-color-scheme': 'dark', * } */ mediaFeatures?: Parameters[0]; }; } declare function openGraphImage(options: Options): Plugin; export { openGraphImage };