import { R as RenderOptions } from '../render-BhplWt64.cjs'; /** * jsPDF adapter (`bidi-shaper/jspdf`). * * jsPDF draws text runs left-to-right with no shaping. Either process each * string yourself with {@link rtlText}, or call {@link installJsPdfShaper} * once so every doc.text() is processed automatically via jsPDF's * `preProcessText` plugin event. * * The output uses Arabic presentation forms (U+FB50–U+FEFF), which jsPDF's * built-in arabic parser does not touch — the two do not double-process. * Your embedded font must include those glyphs (most Arabic TTFs do). */ /** A jsPDF `preProcessText` event payload (structurally typed — no jspdf dependency). */ interface JsPdfTextPayload { text: string | string[]; } /** The static jsPDF API object (`jsPDF.API`), as far as this adapter needs it. */ interface JsPdfStaticApi { events: Array<[string, (payload: JsPdfTextPayload) => void]>; } /** Shape + reorder one string (or each string of an array) for doc.text(). */ declare function rtlText(text: string, options?: RenderOptions): string; declare function rtlText(text: string[], options?: RenderOptions): string[]; /** * Register a `preProcessText` hook on `jsPDF.API` so every subsequent * doc.text() call is shaped and reordered transparently. * * import { jsPDF } from 'jspdf'; * import { installJsPdfShaper } from 'bidi-shaper/jspdf'; * installJsPdfShaper(jsPDF.API); */ declare function installJsPdfShaper(api: JsPdfStaticApi, options?: RenderOptions): void; export { type JsPdfStaticApi, type JsPdfTextPayload, RenderOptions, installJsPdfShaper, rtlText };