import type { Slide, SlideTheme } from '../types/slides'; import { type FikaExportMediaResolver } from '../configs/exportMediaResolver'; import { type FikaExportWatermarkResolver } from '../configs/exportWatermark'; /** A per-call deck snapshot: exporting never mounts or mutates an editor. */ export interface PresentationExportState { slides: Slide[]; theme: SlideTheme; viewportRatio: number; viewportSize: number; title: string; } export interface PresentationExportOptions { /** Only the live editor can certify the retained source package is unchanged. */ preserveSourcePackage?: boolean; hiddenElementIds?: string[]; mediaResolver?: FikaExportMediaResolver | null; watermark?: FikaExportWatermarkResolver | null; } export declare function createPresentationExporter({ slides, theme, viewportRatio, title, viewportSize }: PresentationExportState, options?: PresentationExportOptions, job?: import("../utils/jobProgress").JobProgress): { exporting: boolean; exportProgress: number; exportSlide: number; exportSlideTotal: number; exportImage: (domRef: HTMLElement, format: string, quality: number, ignoreWebfont?: boolean) => void; exportImagePPTX: (domRefs: NodeListOf) => void; exportJSON: () => void; exportSpecificFile: (_slides: Slide[]) => void; exportPPTX: (_slides: Slide[], masterOverwrite?: boolean, ignoreMedia?: boolean) => Promise; }; export default function useExport(): { exporting: boolean; exportProgress: number; exportSlide: number; exportSlideTotal: number; exportImage: (domRef: HTMLElement, format: string, quality: number, ignoreWebfont?: boolean) => void; exportImagePPTX: (domRefs: NodeListOf) => void; exportJSON: () => void; exportSpecificFile: (_slides: Slide[]) => void; exportPDF: () => Promise; exportPPTX: (slides: Slide[], masterOverwrite?: boolean, ignoreMedia?: boolean) => Promise; };