import { Component } from '../../component';
import { PdfContext } from './PdfViewer';
import { PdfBrowserDOMApi } from './pdf-api';
/**
 * PDF Renderer for GXT
 *
 * A PDF document generation renderer inspired by react-pdf.
 * Allows building PDF documents using a declarative component-based API.
 *
 * @example
 * ```gts
 * import { PdfViewer, PdfDocument, PdfPage, PdfView, PdfText, StyleSheet } from '@gxt/pdf';
 *
 * const styles = StyleSheet.create({
 *   page: { padding: 30 },
 *   title: { fontSize: 24, marginBottom: 10 },
 *   text: { fontSize: 12, color: '#333' },
 * });
 *
 * <template>
 *   <PdfViewer>
 *     <PdfDocument title="My Document" author="GXT">
 *       <PdfPage size="A4" style={{styles.page}}>
 *         <PdfView>
 *           <PdfText style={{styles.title}}>Hello World</PdfText>
 *           <PdfText style={{styles.text}}>This is a PDF document.</PdfText>
 *         </PdfView>
 *       </PdfPage>
 *     </PdfDocument>
 *   </PdfViewer>
 * </template>
 * ```
 */
export type { PageSize, PageOrientation, PageMode, PageLayout, PdfStyle, DocumentProps, PageProps, ViewProps, TextProps, ImageProps, LinkProps, CanvasProps, NoteProps, ImageSource, PdfPaintContext, PdfElementType, PdfElementNode, PdfRenderOptions, PdfContext as PdfContextType, FontData, ImageData, } from './types';
export { PdfBaseElement, PdfDocument, PdfPage, PdfView, PdfText, PdfTextNode, PdfImage, PdfLink, PdfCanvas, PdfNote, PdfComment, PdfFragment, DESTROYED_NODES, isPdfElement, isPdfDocument, isPdfPage, isPdfView, isPdfText, isPdfTextNode, isPdfImage, isPdfLink, isPdfCanvas, isPdfNote, isPdfComment, isPdfFragment, } from './elements';
export { PdfBrowserDOMApi, createPdfApi, } from './pdf-api';
export { PdfViewer, PdfDownloadLink, BlobProvider, PDF_CONTEXT, createPdfContextState, type PdfViewerProps, type PdfDownloadLinkProps, type BlobProviderProps, type PdfContext, } from './PdfViewer';
export { StyleSheet, PageSizes, getPageSize, parseUnit, type StyleSheetStyles, } from './StyleSheet';
/**
 * Get the PDF context from a component
 */
export declare function usePdf(ctx: Component<any>): PdfContext | null;
/**
 * Get the PDF API from a component
 */
export declare function usePdfApi(ctx: Component<any>): PdfBrowserDOMApi | null;
export { PdfBrowserDOMApi as PdfApi };
