/**
 * Drop C2PA (`caBX`) chunks from a PNG byte stream. Every other chunk —
 * IHDR, IDAT, IEND, ancillary metadata — is copied byte-for-byte, CRCs
 * included, so pixel data is untouched. If the buffer is not a valid
 * PNG or is malformed mid-stream, the input is returned unchanged.
 */
export declare function stripC2paFromPng(data: Buffer): Buffer;
/**
 * Decode the PNG and re-encode as JPEG quality 85. Lossy re-compression
 * disturbs pixel-domain watermarks; the decode/encode round-trip also
 * drops any non-pixel metadata that survived the chunk strip. Alpha is
 * flattened to white since JPEG has no transparency.
 */
export declare function pngToJpegQ85(pngBuffer: Buffer): Promise<Buffer>;
/**
 * End-to-end post-process: strip C2PA, then JPEG-recompress. Returns the
 * new bytes plus the file extension to use ("jpg" on success, "png" if
 * we had to fall back). On strip success but encode failure, callers
 * still benefit from the C2PA-free PNG.
 */
export declare function sanitizeGeneratedImage(raw: Buffer): Promise<{
    buffer: Buffer;
    ext: "jpg" | "png";
    note?: string;
}>;
