import { ReadStream } from 'fs';
import { Metadata, PdfFormat, type PdfEngineStamp, type PdfEngineWatermark } from '../../common';
import { DownloadFrom, PdfEngineRotate, Split, WebhookOptions } from '../../common/types';
type FileExtension = '123' | '602' | 'abw' | 'bib' | 'bmp' | 'cdr' | 'cgm' | 'cmx' | 'csv' | 'cwk' | 'dbf' | 'dif' | 'doc' | 'docm' | 'docx' | 'dot' | 'dotm' | 'dotx' | 'dxf' | 'emf' | 'eps' | 'epub' | 'fodg' | 'fodp' | 'fods' | 'fodt' | 'fopd' | 'gif' | 'htm' | 'html' | 'hwp' | 'jpeg' | 'jpg' | 'key' | 'ltx' | 'lwp' | 'mcw' | 'met' | 'mml' | 'mw' | 'numbers' | 'odd' | 'odg' | 'odm' | 'odp' | 'ods' | 'odt' | 'otg' | 'oth' | 'otp' | 'ots' | 'ott' | 'pages' | 'pbm' | 'pcd' | 'pct' | 'pcx' | 'pdb' | 'pdf' | 'pgm' | 'png' | 'pot' | 'potm' | 'potx' | 'ppm' | 'pps' | 'ppt' | 'pptm' | 'pptx' | 'psd' | 'psw' | 'pub' | 'pwp' | 'pxl' | 'ras' | 'rtf' | 'sda' | 'sdc' | 'sdd' | 'sdp' | 'sdw' | 'sgl' | 'slk' | 'smf' | 'stc' | 'std' | 'sti' | 'stw' | 'svg' | 'svm' | 'swf' | 'sxc' | 'sxd' | 'sxg' | 'sxi' | 'sxm' | 'sxw' | 'tga' | 'tif' | 'tiff' | 'txt' | 'uof' | 'uop' | 'uos' | 'uot' | 'vdx' | 'vor' | 'vsd' | 'vsdm' | 'vsdx' | 'wb2' | 'wk1' | 'wks' | 'wmf' | 'wpd' | 'wpg' | 'wps' | 'xbm' | 'xhtml' | 'xls' | 'xlsb' | 'xlsm' | 'xlsx' | 'xlt' | 'xltm' | 'xltx' | 'xlw' | 'xml' | 'xpm' | 'zabw';
type FileInfo = {
    data: Buffer | ReadStream;
    ext: FileExtension;
};
export type PathLikeOrReadStream = string | FileInfo;
export type PageProperties = {
    password?: string;
    landscape?: boolean;
    nativePageRanges?: {
        from: number;
        to: number;
    };
    exportFormFields?: boolean;
    singlePageSheets?: boolean;
    allowDuplicateFieldNames?: boolean;
    exportBookmarks?: boolean;
    exportBookmarksToPdfDestination?: boolean;
    exportPlaceholders?: boolean;
    exportNotes?: boolean;
    exportNotesPages?: boolean;
    exportOnlyNotesPages?: boolean;
    exportNotesInMargin?: boolean;
    convertOooTargetToPdfTarget?: boolean;
    exportLinksRelativeFsys?: boolean;
    exportHiddenSlides?: boolean;
    skipEmptyPages?: boolean;
    addOriginalDocumentAsStream?: boolean;
};
export type ConversionOptions = {
    properties?: PageProperties;
    merge?: boolean;
    pdfa?: PdfFormat;
    pdfUA?: boolean;
    metadata?: Metadata;
    losslessImageCompression?: boolean;
    reduceImageResolution?: boolean;
    quality?: number;
    maxImageResolution?: 75 | 150 | 300 | 600 | 1200;
    initialView?: number;
    initialPage?: number;
    magnification?: number;
    zoom?: number;
    pageLayout?: number;
    firstPageOnLeft?: boolean;
    resizeWindowToInitialPage?: boolean;
    centerWindow?: boolean;
    openInFullScreenMode?: boolean;
    displayPDFDocumentTitle?: boolean;
    hideViewerMenubar?: boolean;
    hideViewerToolbar?: boolean;
    hideViewerWindowControls?: boolean;
    useTransitionEffects?: boolean;
    openBookmarkLevels?: number;
    downloadFrom?: DownloadFrom;
    webhook?: WebhookOptions;
    split?: Split;
    flatten?: boolean;
    userPassword?: string;
    ownerPassword?: string;
    embeds?: PathLikeOrReadStream[];
    /** LibreOffice single-line text watermark during export */
    nativeWatermarkText?: string;
    /** Decimal RGB (e.g. 16711680 for red) */
    nativeWatermarkColor?: number;
    /** Font height in points; 0 = auto */
    nativeWatermarkFontHeight?: number;
    /** Rotation in tenths of a degree (e.g. 450 = 45°) */
    nativeWatermarkRotateAngle?: number;
    nativeWatermarkFontName?: string;
    nativeTiledWatermarkText?: string;
    /** PDF-engine post-processing watermark; `file` may be a LibreOffice PathLikeOrReadStream */
    watermark?: Omit<PdfEngineWatermark, 'file'> & {
        file?: PathLikeOrReadStream | Buffer;
    };
    /** PDF-engine post-processing stamp */
    stamp?: Omit<PdfEngineStamp, 'file'> & {
        file?: PathLikeOrReadStream | Buffer;
    };
    /** PDF-engine post-process page rotation */
    rotate?: PdfEngineRotate;
};
export {};
