///
///
///
import { QPdfCompressionFlagsP } from "../../generated_proto/ironpdfengineproto/QPdfCompressionFlagsP";
import { Readable } from "stream";
import { Buffer } from "buffer";
import { AdvancedCompressionOptions } from "../../../public/compression";
export declare function compressImage(id: string, imageQuality: number, scaleToVisibleSize?: boolean): Promise;
export declare function compressStructTree(id: string): Promise;
export declare function compressAndSaveAs(id: string, outputPath: string, imageQuality?: number): Promise;
export declare function compressInMemory(id: string, imageQuality?: number): Promise;
/**
* Map a user-facing {@link AdvancedCompressionOptions} onto the wire
* {@link QPdfCompressionFlagsP}.
*/
export declare function toFlagsProto(options: AdvancedCompressionOptions): QPdfCompressionFlagsP;
/**
* Apply the advanced compression pipeline to an open engine document and
* save the result to disk. Mirrors .NET
* {@code PdfDocument.CompressAndSaveAs(string, AdvancedCompressionOptions)}.
*
* Step 1 (optional) — pdfium image re-encoding when {@code targetImageDpi > 0}
* and {@code jpegQuality != null}.
* Step 2 (optional) — struct-tree removal when {@code removeStructureTree}.
* Step 3 — qpdf {@code QPdf_Compression_CompressAndSaveAsAdvanced}.
*/
export declare function compressAndSaveAsAdvanced(id: string, outputPath: string, options: AdvancedCompressionOptions, password?: string): Promise;
/**
* Apply the advanced compression pipeline to byte[] input and stream the
* result back. Mirrors .NET
* {@code PdfDocument.CompressAndSaveAs(byte[], string, AdvancedCompressionOptions, ...)}.
*
* Returns the compressed bytes; when {@code outputPath} is non-empty also
* writes them to disk.
*/
export declare function compressAndSaveAsAdvancedFromBytes(pdfBytes: Buffer, outputPath: string, options: AdvancedCompressionOptions, password?: string): Promise;
export declare function compressInMemoryStream(id: string, imageQuality?: number): Promise;
//# sourceMappingURL=compress.d.ts.map