@prose-reader/core 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cfi.d.ts +74 -0
  2. package/dist/constants.d.ts +5 -0
  3. package/dist/context.d.ts +48 -0
  4. package/dist/createReaderWithEnhancer.d.ts +2242 -0
  5. package/dist/enhancers/accessibility.d.ts +2 -0
  6. package/dist/enhancers/chrome.d.ts +2 -0
  7. package/dist/enhancers/composeEnhancer.d.ts +21 -0
  8. package/dist/enhancers/firefox.d.ts +2 -0
  9. package/dist/enhancers/fonts.d.ts +12 -0
  10. package/dist/enhancers/hotkeys.d.ts +2 -0
  11. package/dist/enhancers/layoutEnhancer/createMovingSafePan$.d.ts +3 -0
  12. package/dist/enhancers/layoutEnhancer/layoutEnhancer.d.ts +10 -0
  13. package/dist/enhancers/links.d.ts +12 -0
  14. package/dist/enhancers/media.d.ts +2 -0
  15. package/dist/enhancers/navigation.d.ts +5 -0
  16. package/dist/enhancers/pagination.d.ts +46 -0
  17. package/dist/enhancers/progression.d.ts +15 -0
  18. package/dist/enhancers/resources/index.d.ts +2 -0
  19. package/dist/enhancers/resources/indexedDB.d.ts +6 -0
  20. package/dist/enhancers/resources/resourcesManager.d.ts +6 -0
  21. package/dist/enhancers/theme.d.ts +22 -0
  22. package/dist/enhancers/types.d.ts +28 -0
  23. package/dist/enhancers/utils.d.ts +6 -0
  24. package/dist/enhancers/webkit.d.ts +2 -0
  25. package/dist/enhancers/zoom.d.ts +16 -0
  26. package/dist/frames.d.ts +5 -0
  27. package/dist/index.d.ts +10 -0
  28. package/dist/index.js +701 -0
  29. package/dist/index.js.LICENSE.txt +385 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/pagination.d.ts +65 -0
  32. package/dist/reader.d.ts +63 -0
  33. package/dist/report.d.ts +26 -0
  34. package/dist/selection.d.ts +6 -0
  35. package/dist/settings.d.ts +37 -0
  36. package/dist/spine/cfiLocator.d.ts +257 -0
  37. package/dist/spine/createSpine.d.ts +896 -0
  38. package/dist/spine/eventsHelper.d.ts +11 -0
  39. package/dist/spine/locationResolver.d.ts +479 -0
  40. package/dist/spine/navigationResolver.d.ts +48 -0
  41. package/dist/spine/viewportNavigator/manualViewportNavigator.d.ts +99 -0
  42. package/dist/spine/viewportNavigator/panViewportNavigator.d.ts +50 -0
  43. package/dist/spine/viewportNavigator/scrollViewportNavigator.d.ts +23 -0
  44. package/dist/spine/viewportNavigator/viewportNavigator.d.ts +85 -0
  45. package/dist/spineItem/commonSpineItem.d.ts +160 -0
  46. package/dist/spineItem/createSpineItem.d.ts +458 -0
  47. package/dist/spineItem/frameItem/createFrame$.d.ts +1 -0
  48. package/dist/spineItem/frameItem/createFrameManipulator.d.ts +5 -0
  49. package/dist/spineItem/frameItem/createHtmlPageFromResource.d.ts +2 -0
  50. package/dist/spineItem/frameItem/frameItem.d.ts +49 -0
  51. package/dist/spineItem/frameItem/loader.d.ts +27 -0
  52. package/dist/spineItem/index.d.ts +458 -0
  53. package/dist/spineItem/locationResolver.d.ts +27 -0
  54. package/dist/spineItem/navigationResolver.d.ts +23 -0
  55. package/dist/spineItem/prePaginatedSpineItem.d.ts +223 -0
  56. package/dist/spineItem/reflowableSpineItem.d.ts +222 -0
  57. package/dist/spineItem/trackers.d.ts +34 -0
  58. package/dist/spineItemManager.d.ts +264 -0
  59. package/dist/tryEnhancer/compose.d.ts +20 -0
  60. package/dist/tryEnhancer/createReader.d.ts +3 -0
  61. package/dist/tryEnhancer/enhancer.d.ts +24 -0
  62. package/dist/tryEnhancer/index.d.ts +1 -0
  63. package/dist/types/Hook.d.ts +70 -0
  64. package/dist/types/index.d.ts +16 -0
  65. package/dist/utils/compose.d.ts +8 -0
  66. package/dist/utils/contentType.d.ts +2 -0
  67. package/dist/utils/dom.d.ts +19 -0
  68. package/dist/utils/manifest.d.ts +2 -0
  69. package/dist/utils/objects.d.ts +6 -0
  70. package/dist/utils/objects.test.d.ts +1 -0
  71. package/dist/utils/rxjs.d.ts +4 -0
  72. package/dist/utils/url.d.ts +1 -0
  73. package/package.json +44 -0
@@ -0,0 +1,65 @@
1
+ import { Context } from "./context";
2
+ import { SpineItem } from "./spineItem/createSpineItem";
3
+ import { SpineItemManager } from "./spineItemManager";
4
+ declare type PaginationInfo = {
5
+ beginPageIndex: number | undefined;
6
+ beginNumberOfPages: number;
7
+ beginCfi: string | undefined;
8
+ beginSpineItemIndex: number | undefined;
9
+ endPageIndex: number | undefined;
10
+ endNumberOfPages: number;
11
+ endCfi: string | undefined;
12
+ endSpineItemIndex: number | undefined;
13
+ };
14
+ export declare const createPagination: ({ context }: {
15
+ context: Context;
16
+ spineItemManager: SpineItemManager;
17
+ }) => {
18
+ destroy: () => void;
19
+ updateBeginAndEnd: ((begin: {
20
+ spineItem: SpineItem;
21
+ pageIndex: number;
22
+ cfi: string | undefined;
23
+ options: {
24
+ isAtEndOfChapter?: boolean;
25
+ };
26
+ } & {
27
+ spineItemIndex: number;
28
+ }, end: {
29
+ spineItem: SpineItem;
30
+ pageIndex: number;
31
+ cfi: string | undefined;
32
+ options: {
33
+ isAtEndOfChapter?: boolean;
34
+ };
35
+ } & {
36
+ spineItemIndex: number;
37
+ }) => void) | ((begin: {
38
+ spineItem: SpineItem;
39
+ pageIndex: number;
40
+ cfi: string | undefined;
41
+ options: {
42
+ isAtEndOfChapter?: boolean;
43
+ };
44
+ } & {
45
+ spineItemIndex: number;
46
+ }, end: {
47
+ spineItem: SpineItem;
48
+ pageIndex: number;
49
+ cfi: string | undefined;
50
+ options: {
51
+ isAtEndOfChapter?: boolean;
52
+ };
53
+ } & {
54
+ spineItemIndex: number;
55
+ }) => void);
56
+ getInfo: () => PaginationInfo;
57
+ $: {
58
+ info$: import("rxjs").Observable<PaginationInfo>;
59
+ };
60
+ };
61
+ export declare type Pagination = ReturnType<typeof createPagination>;
62
+ export declare const getItemOffsetFromPageIndex: (pageWidth: number, pageIndex: number, itemWidth: number) => number;
63
+ export declare const getNumberOfPages: (itemWidth: number, pageWidth: number) => number;
64
+ export declare const getClosestValidOffsetFromApproximateOffsetInPages: (offset: number, pageWidth: number, itemWidth: number) => number;
65
+ export {};
@@ -0,0 +1,63 @@
1
+ import { Observable } from "rxjs";
2
+ import { createContext as createBookContext } from "./context";
3
+ import { Pagination } from "./pagination";
4
+ import { Spine } from "./spine/createSpine";
5
+ import { LoadOptions, Manifest } from "./types";
6
+ import { createSelection } from "./selection";
7
+ import { SpineItemManager } from "./spineItemManager";
8
+ import { Hook, RegisterHook } from "./types/Hook";
9
+ declare type Context = ReturnType<typeof createBookContext>;
10
+ declare type ContextSettings = Parameters<Context[`setSettings`]>[0];
11
+ declare type CreateReaderOptions = {
12
+ hooks?: Hook[];
13
+ containerElement: HTMLElement;
14
+ } & Pick<ContextSettings, `forceSinglePageMode` | `pageTurnAnimation` | `pageTurnDirection` | `pageTurnMode`>;
15
+ export declare type Reader = {
16
+ context: Context;
17
+ registerHook: RegisterHook;
18
+ spine: Spine;
19
+ manipulateSpineItems: Spine[`manipulateSpineItems`];
20
+ manipulateContainer: (cb: (container: HTMLElement) => boolean) => void;
21
+ moveTo: Spine[`viewportNavigator`][`moveTo`];
22
+ turnLeft: Spine[`viewportNavigator`][`turnLeft`];
23
+ turnRight: Spine[`viewportNavigator`][`turnRight`];
24
+ goToPageOfCurrentChapter: Spine[`viewportNavigator`][`goToPageOfCurrentChapter`];
25
+ goToPage: Spine[`viewportNavigator`][`goToPage`];
26
+ goToUrl: Spine[`viewportNavigator`][`goToUrl`];
27
+ goToCfi: Spine[`viewportNavigator`][`goToCfi`];
28
+ goToSpineItem: Spine[`viewportNavigator`][`goToSpineItem`];
29
+ getFocusedSpineItemIndex: SpineItemManager[`getFocusedSpineItemIndex`];
30
+ getSpineItem: SpineItemManager[`get`];
31
+ getSpineItems: SpineItemManager[`getAll`];
32
+ getAbsolutePositionOf: SpineItemManager[`getAbsolutePositionOf`];
33
+ getSelection: Spine[`getSelection`];
34
+ isSelecting: Spine[`isSelecting`];
35
+ normalizeEventForViewport: Spine[`normalizeEventForViewport`];
36
+ getCfiMetaInformation: Spine[`cfiLocator`][`getCfiMetaInformation`];
37
+ resolveCfi: Spine[`cfiLocator`][`resolveCfi`];
38
+ generateCfi: Spine[`cfiLocator`][`generateFromRange`];
39
+ locator: Spine[`locator`];
40
+ getCurrentNavigationPosition: Spine[`viewportNavigator`][`getCurrentNavigationPosition`];
41
+ getCurrentViewportPosition: Spine[`viewportNavigator`][`getCurrentViewportPosition`];
42
+ layout: () => void;
43
+ load: (manifest: Manifest, loadOptions?: LoadOptions) => void;
44
+ destroy: () => void;
45
+ setSettings: Context[`setSettings`];
46
+ $: {
47
+ pagination$: Pagination[`$`][`info$`];
48
+ settings$: Context[`$`][`settings$`];
49
+ state$: Observable<{
50
+ supportedPageTurnAnimation: NonNullable<ContextSettings[`pageTurnAnimation`]>[];
51
+ supportedPageTurnMode: NonNullable<ContextSettings[`pageTurnMode`]>[];
52
+ supportedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
53
+ supportedComputedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
54
+ }>;
55
+ ready$: Observable<void>;
56
+ selection$: Observable<ReturnType<typeof createSelection> | null>;
57
+ viewportState$: Spine[`$`][`viewportState$`];
58
+ layout$: Spine[`$`][`layout$`];
59
+ destroy$: Observable<void>;
60
+ };
61
+ };
62
+ export declare const createReader: ({ containerElement, hooks: initialHooks, ...settings }: CreateReaderOptions) => Reader;
63
+ export {};
@@ -0,0 +1,26 @@
1
+ export declare const Report: {
2
+ namespace: (namespace: string) => {
3
+ log: (...data: any[]) => void;
4
+ warn: (...data: any[]) => void;
5
+ error: (...data: any[]) => void;
6
+ time: (name: string, targetDuration?: number) => () => void;
7
+ logMetric: (performanceEntry: PerformanceEntry | {
8
+ name: string;
9
+ duration: number;
10
+ }, targetDuration?: number) => void;
11
+ measurePerformance: <F extends (...args: any[]) => any>(name: string, targetDuration: number | undefined, functionToMeasure: F, { disable }?: {
12
+ disable?: boolean | undefined;
13
+ }) => F | ((...args: Parameters<F>) => ReturnType<F>);
14
+ };
15
+ log: (...data: any[]) => void;
16
+ warn: (...data: any[]) => void;
17
+ error: (...data: any[]) => void;
18
+ time: (name: string, targetDuration?: number) => () => void;
19
+ logMetric: (performanceEntry: PerformanceEntry | {
20
+ name: string;
21
+ duration: number;
22
+ }, targetDuration?: number) => void;
23
+ measurePerformance: <F extends (...args: any[]) => any>(name: string, targetDuration: number | undefined, functionToMeasure: F, { disable }?: {
24
+ disable?: boolean | undefined;
25
+ }) => F | ((...args: Parameters<F>) => ReturnType<F>);
26
+ };
@@ -0,0 +1,6 @@
1
+ import { Manifest } from "./types";
2
+ export declare const createSelection: (selection: Selection, item: Manifest[`spineItems`][number]) => {
3
+ toString: () => string;
4
+ getAnchorCfi: () => string | undefined;
5
+ getFocusCfi: () => string | undefined;
6
+ };
@@ -0,0 +1,37 @@
1
+ import { Manifest } from "./types";
2
+ export declare type PublicSettings = {
3
+ forceSinglePageMode: boolean;
4
+ pageTurnAnimation: `none` | `fade` | `slide`;
5
+ pageTurnAnimationDuration: undefined | number;
6
+ pageTurnDirection: `vertical` | `horizontal`;
7
+ pageTurnMode: `controlled` | `scrollable`;
8
+ };
9
+ declare type InnerSettings = PublicSettings & {
10
+ computedPageTurnMode: PublicSettings[`pageTurnMode`];
11
+ computedPageTurnDirection: PublicSettings[`pageTurnDirection`];
12
+ computedPageTurnAnimation: PublicSettings[`pageTurnAnimation`];
13
+ computedPageTurnAnimationDuration: number;
14
+ computedSnapAnimationDuration: number;
15
+ };
16
+ export declare const createSettings: (initialSettings: Partial<PublicSettings>) => {
17
+ getSettings: () => InnerSettings;
18
+ setSettings: (newSettings: Partial<PublicSettings>, options: {
19
+ hasVerticalWritingSubject: boolean;
20
+ manifest: Manifest | undefined;
21
+ }) => void;
22
+ recompute: (options: {
23
+ hasVerticalWritingSubject: boolean;
24
+ manifest: Manifest | undefined;
25
+ }) => void;
26
+ destroy: () => void;
27
+ $: {
28
+ settings$: import("rxjs").Observable<PublicSettings & {
29
+ computedPageTurnMode: PublicSettings[`pageTurnMode`];
30
+ computedPageTurnDirection: PublicSettings[`pageTurnDirection`];
31
+ computedPageTurnAnimation: PublicSettings[`pageTurnAnimation`];
32
+ computedPageTurnAnimationDuration: number;
33
+ computedSnapAnimationDuration: number;
34
+ }>;
35
+ };
36
+ };
37
+ export {};
@@ -0,0 +1,257 @@
1
+ import { Context } from "../context";
2
+ import { SpineItem } from "../spineItem/createSpineItem";
3
+ import { createLocationResolver } from "../spineItem/locationResolver";
4
+ import { SpineItemManager } from "../spineItemManager";
5
+ import { Manifest } from "../types";
6
+ export declare const createCfiLocator: ({ spineItemManager, spineItemLocator }: {
7
+ spineItemManager: SpineItemManager;
8
+ context: Context;
9
+ spineItemLocator: ReturnType<typeof createLocationResolver>;
10
+ }) => {
11
+ getSpineItemFromCfi: (cfi: string) => ({
12
+ item: {
13
+ id: string;
14
+ href: string;
15
+ path: string;
16
+ renditionLayout: "reflowable" | "pre-paginated";
17
+ progressionWeight: number;
18
+ pageSpreadLeft: true | undefined;
19
+ pageSpreadRight: true | undefined;
20
+ mediaType?: string | undefined;
21
+ };
22
+ } & {
23
+ layout: (layoutInformation: {
24
+ blankPagePosition: "after" | "before" | "none";
25
+ minimumWidth: number;
26
+ spreadPosition: "right" | "left" | "none";
27
+ }) => {
28
+ width: number;
29
+ height: number;
30
+ };
31
+ load: () => void;
32
+ adjustPositionOfElement: ({ right, left, top }: {
33
+ right?: number | undefined;
34
+ left?: number | undefined;
35
+ top?: number | undefined;
36
+ }) => void;
37
+ createLoadingElement: (containerElement: HTMLElement, item: {
38
+ id: string;
39
+ href: string;
40
+ path: string;
41
+ renditionLayout: "reflowable" | "pre-paginated";
42
+ progressionWeight: number;
43
+ pageSpreadLeft: true | undefined;
44
+ pageSpreadRight: true | undefined;
45
+ mediaType?: string | undefined;
46
+ }, context: {
47
+ load: (newManifest: Manifest, newLoadOptions: import("../types").LoadOptions) => void;
48
+ isRTL: () => boolean;
49
+ areAllItemsPrePaginated: () => boolean;
50
+ destroy: () => void;
51
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
52
+ getCalculatedInnerMargin: () => number;
53
+ getVisibleAreaRect: () => {
54
+ width: number;
55
+ height: number;
56
+ x: number;
57
+ y: number;
58
+ };
59
+ shouldDisplaySpread: () => boolean;
60
+ setHasVerticalWriting: () => void;
61
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
62
+ getManifest: () => Manifest | undefined;
63
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
64
+ getPageSize: () => {
65
+ width: number;
66
+ height: number;
67
+ };
68
+ getSettings: () => import("../settings").PublicSettings & {
69
+ computedPageTurnMode: "controlled" | "scrollable";
70
+ computedPageTurnDirection: "vertical" | "horizontal";
71
+ computedPageTurnAnimation: "none" | "fade" | "slide";
72
+ computedPageTurnAnimationDuration: number;
73
+ computedSnapAnimationDuration: number;
74
+ };
75
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
76
+ $: {
77
+ hasVerticalWriting$: import("rxjs").Observable<boolean>;
78
+ destroy$: import("rxjs").Observable<void>;
79
+ settings$: import("rxjs").Observable<import("../settings").PublicSettings & {
80
+ computedPageTurnMode: "controlled" | "scrollable";
81
+ computedPageTurnDirection: "vertical" | "horizontal";
82
+ computedPageTurnAnimation: "none" | "fade" | "slide";
83
+ computedPageTurnAnimationDuration: number;
84
+ computedSnapAnimationDuration: number;
85
+ }>;
86
+ load$: import("rxjs").Observable<Manifest>;
87
+ };
88
+ }) => HTMLDivElement;
89
+ getElementDimensions: () => {
90
+ width: number;
91
+ height: number;
92
+ };
93
+ getHtmlFromResource: (response: Response) => Promise<string>;
94
+ getResource: () => Promise<Response>;
95
+ translateFramePositionIntoPage: (position: {
96
+ clientX: number;
97
+ clientY: number;
98
+ }) => {
99
+ clientX: number;
100
+ clientY: number;
101
+ };
102
+ setLayoutDirty: () => void;
103
+ injectStyle: (cssText: string) => void;
104
+ loadContent: () => void;
105
+ unloadContent: () => void;
106
+ spineItemFrame: {
107
+ getIsLoaded: () => boolean;
108
+ getIsReady: () => boolean;
109
+ getViewportDimensions: () => {
110
+ width: number;
111
+ height: number;
112
+ } | undefined;
113
+ getFrameElement: () => HTMLIFrameElement | undefined;
114
+ getHtmlFromResource: (response: Response) => Promise<string>;
115
+ load: () => void;
116
+ unload: () => void;
117
+ staticLayout: (size: {
118
+ width: number;
119
+ height: number;
120
+ }) => void;
121
+ getManipulableFrame: () => {
122
+ frame: HTMLIFrameElement;
123
+ removeStyle: (id: string) => void;
124
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
125
+ } | undefined;
126
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
127
+ isUsingVerticalWriting: () => boolean;
128
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
129
+ destroy: () => void;
130
+ $: {
131
+ unload$: import("rxjs").Observable<void>;
132
+ unloaded$: import("rxjs").Observable<void>;
133
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
134
+ ready$: import("rxjs").Observable<FontFaceSet | undefined>;
135
+ isReady$: import("rxjs").Observable<boolean>;
136
+ contentLayoutChange$: import("rxjs").Observable<{
137
+ isFirstLayout: boolean;
138
+ } | {
139
+ isFirstLayout: boolean;
140
+ }>;
141
+ };
142
+ };
143
+ element: HTMLElement;
144
+ loadingElement: HTMLDivElement;
145
+ isReflowable: boolean;
146
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
147
+ getViewPortInformation: () => {
148
+ computedScale: number;
149
+ computedWidthScale: number;
150
+ viewportDimensions: {
151
+ width: number;
152
+ height: number;
153
+ };
154
+ } | {
155
+ width?: number | undefined;
156
+ height?: number | undefined;
157
+ computedScale: number;
158
+ computedWidthScale: number;
159
+ viewportDimensions?: undefined;
160
+ };
161
+ isImageType: () => boolean | undefined;
162
+ isReady: () => boolean;
163
+ destroy: () => void;
164
+ isUsingVerticalWriting: () => boolean | undefined;
165
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
166
+ manipulateSpineItem: (cb: (options: {
167
+ container: HTMLElement;
168
+ loadingElement: HTMLElement;
169
+ item: {
170
+ id: string;
171
+ href: string;
172
+ path: string;
173
+ renditionLayout: "reflowable" | "pre-paginated";
174
+ progressionWeight: number;
175
+ pageSpreadLeft: true | undefined;
176
+ pageSpreadRight: true | undefined;
177
+ mediaType?: string | undefined;
178
+ };
179
+ overlayElement: HTMLDivElement;
180
+ } & ({
181
+ frame: HTMLIFrameElement;
182
+ removeStyle: (id: string) => void;
183
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
184
+ } | {
185
+ frame: undefined;
186
+ removeStyle: (id: string) => void;
187
+ addStyle: (id: string, style: string) => void;
188
+ })) => boolean) => boolean;
189
+ executeOnLayoutBeforeMeasurmentHook: (options: {
190
+ minimumWidth: number;
191
+ }) => void;
192
+ selectionTracker: {
193
+ track: (frameToTrack: HTMLIFrameElement) => void;
194
+ destroy: () => void;
195
+ isSelecting: () => boolean;
196
+ getSelection: () => Selection | undefined;
197
+ $: import("rxjs").Observable<{
198
+ event: "selectionchange";
199
+ data: Selection | null;
200
+ } | {
201
+ event: "selectstart";
202
+ data: Selection | null;
203
+ } | {
204
+ event: "selectend";
205
+ data: Selection | null;
206
+ }>;
207
+ };
208
+ fingerTracker: {
209
+ track: (frame: HTMLIFrameElement) => void;
210
+ getFingerPositionInIframe(): {
211
+ x: number | undefined;
212
+ y: number | undefined;
213
+ } | undefined;
214
+ destroy: () => void;
215
+ $: import("rxjs").Observable<{
216
+ event: "fingermove";
217
+ data: {
218
+ x: number;
219
+ y: number;
220
+ };
221
+ } | {
222
+ event: "fingerout";
223
+ data: undefined;
224
+ }>;
225
+ };
226
+ $: {
227
+ contentLayoutChangeSubject$: import("rxjs").Observable<{
228
+ isFirstLayout: boolean;
229
+ isReady: boolean;
230
+ }>;
231
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
232
+ };
233
+ }) | undefined;
234
+ getCfiMetaInformation: (cfi: string) => {
235
+ spineItemIndex: number | undefined;
236
+ } | undefined;
237
+ getCfi: ((pageIndex: number, spineItem: SpineItem) => string) | ((pageIndex: number, spineItem: SpineItem) => string);
238
+ getRootCfi: (spineItem: SpineItem) => string;
239
+ resolveCfi: (cfiString: string) => {
240
+ node: Node | undefined;
241
+ offset: number | undefined;
242
+ spineItemIndex: number;
243
+ } | {
244
+ spineItemIndex: number;
245
+ node?: undefined;
246
+ offset?: undefined;
247
+ } | undefined;
248
+ generateFromRange: ({ startNode, start, end, endNode }: {
249
+ startNode: Node;
250
+ start: number;
251
+ endNode: Node;
252
+ end: number;
253
+ }, item: Manifest[`spineItems`][number]) => {
254
+ start: string;
255
+ end: string;
256
+ };
257
+ };