import type { OgImageRasterizer } from "./og.js"; /** A dependency-free shape implemented by SVG→PNG codecs such as Resvg, Satori, or a WASM backend. */ export type PngRenderer = (svg: string) => Uint8Array | Promise; export interface ResvgRenderer { render(): { asPng(): Uint8Array | Promise; }; } export type ResvgConstructor = new (svg: string) => ResvgRenderer; /** * Adapt an injected SVG→PNG renderer to `ogImageResponse`. * * The renderer stays application-owned because codec/WASM choice is runtime-specific. For example: * * ```ts * import { Resvg } from "@resvg/resvg-js" * import { createPngRasterizer } from "@nifrajs/image/og-png" * const rasterizer = createPngRasterizer((svg) => new Resvg(svg).render().asPng()) * ``` * * This is the public reference adapter; the core package remains zero-dependency and keeps SVG as its * explicit default for callers that do not opt into a codec. */ export declare function createPngRasterizer(render: PngRenderer): OgImageRasterizer; /** Reference adapter for Resvg-compatible constructors, without making the optional codec a dependency. */ export declare function createResvgRasterizer(Resvg: ResvgConstructor): OgImageRasterizer; //# sourceMappingURL=og-png.d.ts.map