/// declare module 'googlephotos'; declare module 'react-image-lightbox-with-rotate'; declare module 'kill-port'; declare module 'ipc-event-emitter'; declare module 'cors'; declare module '@react-pdf/renderer' { import * as React from 'react'; namespace ReactPDF { interface Style { [property: string]: any; } interface Styles { [key: string]: Style; } type Orientation = 'portrait' | 'landscape'; interface DocumentProps { title?: string; author?: string; subject?: string; keywords?: string; creator?: string; producer?: string; onRender?: () => any; } /** * This component represent the PDF document itself. It must be the root * of your tree element structure, and under no circumstances should it be * used as children of another react-pdf component. In addition, it should * only have childs of type . */ class Document extends React.Component { } interface NodeProps { style?: Style | Style[]; /** * Render component in all wrapped pages. * @see https://react-pdf.org/advanced#fixed-components */ fixed?: boolean; /** * Force the wrapping algorithm to start a new page when rendering the * element. * @see https://react-pdf.org/advanced#page-breaks */ break?: boolean; } interface PageProps extends NodeProps { /** * Enable page wrapping for this page. * @see https://react-pdf.org/components#page-wrapping */ wrap?: boolean; debug?: boolean; size?: string | [number, number] | { width: number; height: number }; orientation?: Orientation; ruler?: boolean; rulerSteps?: number; verticalRuler?: boolean; verticalRulerSteps?: number; horizontalRuler?: boolean; horizontalRulerSteps?: number; ref?: Page; } /** * Represents single page inside the PDF document, or a subset of them if * using the wrapping feature. A can contain as many pages as * you want, but ensure not rendering a page inside any component besides * Document. */ class Page extends React.Component { } interface ViewProps extends NodeProps { /** * Enable/disable page wrapping for element. * @see https://react-pdf.org/components#page-wrapping */ wrap?: boolean; debug?: boolean; render?: (props: { pageNumber: number }) => React.ReactNode; children?: React.ReactNode; } /** * The most fundamental component for building a UI and is designed to be * nested inside other views and can have 0 to many children. */ class View extends React.Component { } interface ImageProps extends NodeProps { debug?: boolean; src: string | { data: Buffer; format: 'png' | 'jpg' }; cache?: boolean; } /** * A React component for displaying network or local (Node only) JPG or * PNG images, as well as base64 encoded image strings. */ class Image extends React.Component { } interface TextProps extends NodeProps { /** * Enable/disable page wrapping for element. * @see https://react-pdf.org/components#page-wrapping */ wrap?: boolean; debug?: boolean; render?: ( props: { pageNumber: number; totalPages: number }, ) => React.ReactNode; children?: React.ReactNode; /** * How much hyphenated breaks should be avoided. */ hyphenationCallback?: number; } /** * A React component for displaying text. Text supports nesting of other * Text or Link components to create inline styling. */ class Text extends React.Component { } interface LinkProps extends NodeProps { /** * Enable/disable page wrapping for element. * @see https://react-pdf.org/components#page-wrapping */ wrap?: boolean; debug?: boolean; src: string; children?: React.ReactNode; } /** * A React component for displaying an hyperlink. Link’s can be nested * inside a Text component, or being inside any other valid primitive. */ class Link extends React.Component { } interface NoteProps extends NodeProps { children: string; } class Note extends React.Component { } interface BlobProviderParams { blob: Blob | null; url: string | null; loading: boolean; error: Error | null; } interface BlobProviderProps { document: React.ReactElement; children: (params: BlobProviderParams) => React.ReactNode; } /** * Easy and declarative way of getting document's blob data without * showing it on screen. * @see https://react-pdf.org/advanced#on-the-fly-rendering * @platform web */ class BlobProvider extends React.Component { } interface PDFViewerProps { width?: number; height?: number; style?: Style | Style[]; className?: string; children?: React.ReactElement; } /** * Iframe PDF viewer for client-side generated documents. * @platform web */ class PDFViewer extends React.Component { } interface PDFDownloadLinkProps { document: React.ReactElement; fileName?: string; style?: Style | Style[]; className?: string; children?: | React.ReactNode | ((params: BlobProviderParams) => React.ReactNode); } /** * Anchor tag to enable generate and download PDF documents on the fly. * @see https://react-pdf.org/advanced#on-the-fly-rendering * @platform web */ class PDFDownloadLink extends React.Component { } interface EmojiSource { url: string; format: string; } interface RegisteredFont { src: string; loaded: boolean; loading: boolean; data: any; [key: string]: any; } type HyphenationCallback = ( words: string[], glyphString: { [key: string]: any }, ) => string[]; const Font: { register: ( src: string, options: { family: string;[key: string]: any }, ) => void; getEmojiSource: () => EmojiSource; getRegisteredFonts: () => string[]; registerEmojiSource: (emojiSource: EmojiSource) => void; registerHyphenationCallback: ( hyphenationCallback: HyphenationCallback, ) => void; getHyphenationCallback: () => HyphenationCallback; getFont: (fontFamily: string) => RegisteredFont | undefined; load: ( fontFamily: string, document: React.ReactElement, ) => Promise; clear: () => void; reset: () => void; }; const StyleSheet: { hairlineWidth: number; create: (styles: TStyles) => TStyles; resolve: ( style: Style, container: { width: number; height: number; orientation: Orientation; }, ) => Style; flatten: (...styles: Style[]) => Style; absoluteFillObject: { position: 'absolute'; left: 0; right: 0; top: 0; bottom: 0; }; }; const version: any; const PDFRenderer: any; const createInstance: ( element: { type: string; props: { [key: string]: any }; }, root?: any, ) => any; const pdf: ( document: React.ReactElement, ) => { isDirty: () => boolean; updateContainer: (document: React.ReactElement) => void; toBuffer: () => NodeJS.ReadableStream; toBlob: () => Blob; toString: () => string; }; const renderToStream: ( document: React.ReactElement, ) => NodeJS.ReadableStream; const renderToFile: ( document: React.ReactElement, filePath: string, callback?: (output: NodeJS.ReadableStream, filePath: string) => any, ) => Promise; const render: typeof renderToFile; } const Document: typeof ReactPDF.Document; const Page: typeof ReactPDF.Page; const View: typeof ReactPDF.View; const Image: typeof ReactPDF.Image; const Text: typeof ReactPDF.Text; const Link: typeof ReactPDF.Link; const Note: typeof ReactPDF.Note; const Font: typeof ReactPDF.Font; const StyleSheet: typeof ReactPDF.StyleSheet; const createInstance: typeof ReactPDF.createInstance; const PDFRenderer: typeof ReactPDF.PDFRenderer; const version: typeof ReactPDF.version; const pdf: typeof ReactPDF.pdf; export default ReactPDF; export { Document, Page, View, Image, Text, Link, Note, Font, StyleSheet, createInstance, PDFRenderer, version, pdf, }; }