import type { PdfRenderOptions } from '../types/PdfRenderOptions.js'; /** * Validates `pdfToPngConvertOptions.outputFolder` with the same sandbox-parity contract * applied to `diffsOutputFolder` and `allowedInputRoot`: * * - rejects non-string / empty / whitespace-only values * - rejects a path that already exists as a non-directory * - rejects a path whose existing chain contains any symbolic link (closes CWE-59 / * CWE-61 redirect attacks where an attacker pre-plants a symlink so the renderer * writes intermediate PNGs to a target outside the intended workspace) * - takes library ownership of leaf-directory creation for the resolved path AND the * `actual/` / `expected/` namespaces that `renderPdfPages` writes into, then re-asserts * each leaf is a real (non-symlink) directory. This closes the residual validate→render * TOCTOU window that the path walker cannot cover on its own: once a non-symlink * directory exists at every future write destination, an attacker can no longer plant a * symlink there between validation and the renderer's first write (CWE-367 / CWE-61). * * Returns the resolved absolute path so downstream renderer calls operate on a stable * location, regardless of process cwd changes between configuration and render time. * Returns `undefined` when no `outputFolder` was supplied (in-memory render). */ export declare function validateRenderOutputFolder(outputFolder: PdfRenderOptions['outputFolder']): string | undefined;