@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,458 @@
1
+ import { BehaviorSubject, Observable } from "rxjs";
2
+ import { Context } from "../context";
3
+ import { Manifest } from "../types";
4
+ import { Hook } from "../types/Hook";
5
+ import { createPrePaginatedSpineItem } from "./prePaginatedSpineItem";
6
+ import { createReflowableSpineItem } from "./reflowableSpineItem";
7
+ export declare type SpineItem = {
8
+ item: Manifest[`spineItems`][number];
9
+ } & (ReturnType<typeof createPrePaginatedSpineItem> | ReturnType<typeof createReflowableSpineItem>);
10
+ export declare const createSpineItem: ({ item, context, containerElement, iframeEventBridgeElement, hooks$, viewportState$ }: {
11
+ item: Manifest[`spineItems`][number];
12
+ containerElement: HTMLElement;
13
+ iframeEventBridgeElement: HTMLElement;
14
+ context: Context;
15
+ hooks$: BehaviorSubject<Hook[]>;
16
+ viewportState$: Observable<`free` | `busy`>;
17
+ }) => {
18
+ layout: (layoutInformation: {
19
+ blankPagePosition: "none" | "before" | "after";
20
+ minimumWidth: number;
21
+ spreadPosition: "none" | "right" | "left";
22
+ }) => {
23
+ width: number;
24
+ height: number;
25
+ };
26
+ load: () => void;
27
+ adjustPositionOfElement: ({ right, left, top }: {
28
+ right?: number | undefined;
29
+ left?: number | undefined;
30
+ top?: number | undefined;
31
+ }) => void;
32
+ createLoadingElement: (containerElement: HTMLElement, item: {
33
+ id: string;
34
+ href: string;
35
+ path: string;
36
+ renditionLayout: "reflowable" | "pre-paginated";
37
+ progressionWeight: number;
38
+ pageSpreadLeft: true | undefined;
39
+ pageSpreadRight: true | undefined;
40
+ mediaType?: string | undefined;
41
+ }, context: {
42
+ load: (newManifest: Manifest, newLoadOptions: import("../types").LoadOptions) => void;
43
+ isRTL: () => boolean;
44
+ areAllItemsPrePaginated: () => boolean;
45
+ destroy: () => void;
46
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
47
+ getCalculatedInnerMargin: () => number;
48
+ getVisibleAreaRect: () => {
49
+ width: number;
50
+ height: number;
51
+ x: number;
52
+ y: number;
53
+ };
54
+ shouldDisplaySpread: () => boolean;
55
+ setHasVerticalWriting: () => void;
56
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
57
+ getManifest: () => Manifest | undefined;
58
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
59
+ getPageSize: () => {
60
+ width: number;
61
+ height: number;
62
+ };
63
+ getSettings: () => import("../settings").PublicSettings & {
64
+ computedPageTurnMode: "controlled" | "scrollable";
65
+ computedPageTurnDirection: "vertical" | "horizontal";
66
+ computedPageTurnAnimation: "none" | "fade" | "slide";
67
+ computedPageTurnAnimationDuration: number;
68
+ computedSnapAnimationDuration: number;
69
+ };
70
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
71
+ $: {
72
+ hasVerticalWriting$: Observable<boolean>;
73
+ destroy$: Observable<void>;
74
+ settings$: Observable<import("../settings").PublicSettings & {
75
+ computedPageTurnMode: "controlled" | "scrollable";
76
+ computedPageTurnDirection: "vertical" | "horizontal";
77
+ computedPageTurnAnimation: "none" | "fade" | "slide";
78
+ computedPageTurnAnimationDuration: number;
79
+ computedSnapAnimationDuration: number;
80
+ }>;
81
+ load$: Observable<Manifest>;
82
+ };
83
+ }) => HTMLDivElement;
84
+ getElementDimensions: () => {
85
+ width: number;
86
+ height: number;
87
+ };
88
+ getHtmlFromResource: (response: Response) => Promise<string>;
89
+ getResource: () => Promise<Response>;
90
+ translateFramePositionIntoPage: (position: {
91
+ clientX: number;
92
+ clientY: number;
93
+ }) => {
94
+ clientX: number;
95
+ clientY: number;
96
+ };
97
+ setLayoutDirty: () => void;
98
+ injectStyle: (cssText: string) => void;
99
+ loadContent: () => void;
100
+ unloadContent: () => void;
101
+ spineItemFrame: {
102
+ getIsLoaded: () => boolean;
103
+ getIsReady: () => boolean;
104
+ getViewportDimensions: () => {
105
+ width: number;
106
+ height: number;
107
+ } | undefined;
108
+ getFrameElement: () => HTMLIFrameElement | undefined;
109
+ getHtmlFromResource: (response: Response) => Promise<string>;
110
+ load: () => void;
111
+ unload: () => void;
112
+ staticLayout: (size: {
113
+ width: number;
114
+ height: number;
115
+ }) => void;
116
+ getManipulableFrame: () => {
117
+ frame: HTMLIFrameElement;
118
+ removeStyle: (id: string) => void;
119
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
120
+ } | undefined;
121
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
122
+ isUsingVerticalWriting: () => boolean;
123
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
124
+ destroy: () => void;
125
+ $: {
126
+ unload$: Observable<void>;
127
+ unloaded$: Observable<void>;
128
+ loaded$: Observable<HTMLIFrameElement>;
129
+ ready$: Observable<FontFaceSet | undefined>;
130
+ isReady$: Observable<boolean>;
131
+ contentLayoutChange$: Observable<{
132
+ isFirstLayout: boolean;
133
+ } | {
134
+ isFirstLayout: boolean;
135
+ }>;
136
+ };
137
+ };
138
+ element: HTMLElement;
139
+ loadingElement: HTMLDivElement;
140
+ isReflowable: boolean;
141
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
142
+ getViewPortInformation: () => {
143
+ computedScale: number;
144
+ computedWidthScale: number;
145
+ viewportDimensions: {
146
+ width: number;
147
+ height: number;
148
+ };
149
+ } | {
150
+ width?: number | undefined;
151
+ height?: number | undefined;
152
+ computedScale: number;
153
+ computedWidthScale: number;
154
+ viewportDimensions?: undefined;
155
+ };
156
+ isImageType: () => boolean | undefined;
157
+ isReady: () => boolean;
158
+ destroy: () => void;
159
+ isUsingVerticalWriting: () => boolean | undefined;
160
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
161
+ manipulateSpineItem: (cb: (options: {
162
+ container: HTMLElement;
163
+ loadingElement: HTMLElement;
164
+ item: {
165
+ id: string;
166
+ href: string;
167
+ path: string;
168
+ renditionLayout: "reflowable" | "pre-paginated";
169
+ progressionWeight: number;
170
+ pageSpreadLeft: true | undefined;
171
+ pageSpreadRight: true | undefined;
172
+ mediaType?: string | undefined;
173
+ };
174
+ overlayElement: HTMLDivElement;
175
+ } & ({
176
+ frame: HTMLIFrameElement;
177
+ removeStyle: (id: string) => void;
178
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
179
+ } | {
180
+ frame: undefined;
181
+ removeStyle: (id: string) => void;
182
+ addStyle: (id: string, style: string) => void;
183
+ })) => boolean) => boolean;
184
+ executeOnLayoutBeforeMeasurmentHook: (options: {
185
+ minimumWidth: number;
186
+ }) => void;
187
+ selectionTracker: {
188
+ track: (frameToTrack: HTMLIFrameElement) => void;
189
+ destroy: () => void;
190
+ isSelecting: () => boolean;
191
+ getSelection: () => Selection | undefined;
192
+ $: Observable<{
193
+ event: "selectionchange";
194
+ data: Selection | null;
195
+ } | {
196
+ event: "selectstart";
197
+ data: Selection | null;
198
+ } | {
199
+ event: "selectend";
200
+ data: Selection | null;
201
+ }>;
202
+ };
203
+ fingerTracker: {
204
+ track: (frame: HTMLIFrameElement) => void;
205
+ getFingerPositionInIframe(): {
206
+ x: number | undefined;
207
+ y: number | undefined;
208
+ } | undefined;
209
+ destroy: () => void;
210
+ $: Observable<{
211
+ event: "fingermove";
212
+ data: {
213
+ x: number;
214
+ y: number;
215
+ };
216
+ } | {
217
+ event: "fingerout";
218
+ data: undefined;
219
+ }>;
220
+ };
221
+ $: {
222
+ contentLayoutChangeSubject$: Observable<{
223
+ isFirstLayout: boolean;
224
+ isReady: boolean;
225
+ }>;
226
+ loaded$: Observable<HTMLIFrameElement>;
227
+ };
228
+ item: {
229
+ id: string;
230
+ href: string;
231
+ path: string;
232
+ renditionLayout: "reflowable" | "pre-paginated";
233
+ progressionWeight: number;
234
+ pageSpreadLeft: true | undefined;
235
+ pageSpreadRight: true | undefined;
236
+ mediaType?: string | undefined;
237
+ };
238
+ } | {
239
+ isReflowable: boolean;
240
+ layout: ({ blankPagePosition, minimumWidth }: {
241
+ blankPagePosition: "none" | "before" | "after";
242
+ minimumWidth: number;
243
+ }) => {
244
+ width: number;
245
+ height: number;
246
+ };
247
+ load: () => void;
248
+ adjustPositionOfElement: ({ right, left, top }: {
249
+ right?: number | undefined;
250
+ left?: number | undefined;
251
+ top?: number | undefined;
252
+ }) => void;
253
+ createLoadingElement: (containerElement: HTMLElement, item: {
254
+ id: string;
255
+ href: string;
256
+ path: string;
257
+ renditionLayout: "reflowable" | "pre-paginated";
258
+ progressionWeight: number;
259
+ pageSpreadLeft: true | undefined;
260
+ pageSpreadRight: true | undefined;
261
+ mediaType?: string | undefined;
262
+ }, context: {
263
+ load: (newManifest: Manifest, newLoadOptions: import("../types").LoadOptions) => void;
264
+ isRTL: () => boolean;
265
+ areAllItemsPrePaginated: () => boolean;
266
+ destroy: () => void;
267
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
268
+ getCalculatedInnerMargin: () => number;
269
+ getVisibleAreaRect: () => {
270
+ width: number;
271
+ height: number;
272
+ x: number;
273
+ y: number;
274
+ };
275
+ shouldDisplaySpread: () => boolean;
276
+ setHasVerticalWriting: () => void;
277
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
278
+ getManifest: () => Manifest | undefined;
279
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
280
+ getPageSize: () => {
281
+ width: number;
282
+ height: number;
283
+ };
284
+ getSettings: () => import("../settings").PublicSettings & {
285
+ computedPageTurnMode: "controlled" | "scrollable";
286
+ computedPageTurnDirection: "vertical" | "horizontal";
287
+ computedPageTurnAnimation: "none" | "fade" | "slide";
288
+ computedPageTurnAnimationDuration: number;
289
+ computedSnapAnimationDuration: number;
290
+ };
291
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
292
+ $: {
293
+ hasVerticalWriting$: Observable<boolean>;
294
+ destroy$: Observable<void>;
295
+ settings$: Observable<import("../settings").PublicSettings & {
296
+ computedPageTurnMode: "controlled" | "scrollable";
297
+ computedPageTurnDirection: "vertical" | "horizontal";
298
+ computedPageTurnAnimation: "none" | "fade" | "slide";
299
+ computedPageTurnAnimationDuration: number;
300
+ computedSnapAnimationDuration: number;
301
+ }>;
302
+ load$: Observable<Manifest>;
303
+ };
304
+ }) => HTMLDivElement;
305
+ getElementDimensions: () => {
306
+ width: number;
307
+ height: number;
308
+ };
309
+ getHtmlFromResource: (response: Response) => Promise<string>;
310
+ getResource: () => Promise<Response>;
311
+ translateFramePositionIntoPage: (position: {
312
+ clientX: number;
313
+ clientY: number;
314
+ }) => {
315
+ clientX: number;
316
+ clientY: number;
317
+ };
318
+ setLayoutDirty: () => void;
319
+ injectStyle: (cssText: string) => void;
320
+ loadContent: () => void;
321
+ unloadContent: () => void;
322
+ spineItemFrame: {
323
+ getIsLoaded: () => boolean;
324
+ getIsReady: () => boolean;
325
+ getViewportDimensions: () => {
326
+ width: number;
327
+ height: number;
328
+ } | undefined;
329
+ getFrameElement: () => HTMLIFrameElement | undefined;
330
+ getHtmlFromResource: (response: Response) => Promise<string>;
331
+ load: () => void;
332
+ unload: () => void;
333
+ staticLayout: (size: {
334
+ width: number;
335
+ height: number;
336
+ }) => void;
337
+ getManipulableFrame: () => {
338
+ frame: HTMLIFrameElement;
339
+ removeStyle: (id: string) => void;
340
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
341
+ } | undefined;
342
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
343
+ isUsingVerticalWriting: () => boolean;
344
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
345
+ destroy: () => void;
346
+ $: {
347
+ unload$: Observable<void>;
348
+ unloaded$: Observable<void>;
349
+ loaded$: Observable<HTMLIFrameElement>;
350
+ ready$: Observable<FontFaceSet | undefined>;
351
+ isReady$: Observable<boolean>;
352
+ contentLayoutChange$: Observable<{
353
+ isFirstLayout: boolean;
354
+ } | {
355
+ isFirstLayout: boolean;
356
+ }>;
357
+ };
358
+ };
359
+ element: HTMLElement;
360
+ loadingElement: HTMLDivElement;
361
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
362
+ getViewPortInformation: () => {
363
+ computedScale: number;
364
+ computedWidthScale: number;
365
+ viewportDimensions: {
366
+ width: number;
367
+ height: number;
368
+ };
369
+ } | {
370
+ width?: number | undefined;
371
+ height?: number | undefined;
372
+ computedScale: number;
373
+ computedWidthScale: number;
374
+ viewportDimensions?: undefined;
375
+ };
376
+ isImageType: () => boolean | undefined;
377
+ isReady: () => boolean;
378
+ destroy: () => void;
379
+ isUsingVerticalWriting: () => boolean | undefined;
380
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
381
+ manipulateSpineItem: (cb: (options: {
382
+ container: HTMLElement;
383
+ loadingElement: HTMLElement;
384
+ item: {
385
+ id: string;
386
+ href: string;
387
+ path: string;
388
+ renditionLayout: "reflowable" | "pre-paginated";
389
+ progressionWeight: number;
390
+ pageSpreadLeft: true | undefined;
391
+ pageSpreadRight: true | undefined;
392
+ mediaType?: string | undefined;
393
+ };
394
+ overlayElement: HTMLDivElement;
395
+ } & ({
396
+ frame: HTMLIFrameElement;
397
+ removeStyle: (id: string) => void;
398
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
399
+ } | {
400
+ frame: undefined;
401
+ removeStyle: (id: string) => void;
402
+ addStyle: (id: string, style: string) => void;
403
+ })) => boolean) => boolean;
404
+ executeOnLayoutBeforeMeasurmentHook: (options: {
405
+ minimumWidth: number;
406
+ }) => void;
407
+ selectionTracker: {
408
+ track: (frameToTrack: HTMLIFrameElement) => void;
409
+ destroy: () => void;
410
+ isSelecting: () => boolean;
411
+ getSelection: () => Selection | undefined;
412
+ $: Observable<{
413
+ event: "selectionchange";
414
+ data: Selection | null;
415
+ } | {
416
+ event: "selectstart";
417
+ data: Selection | null;
418
+ } | {
419
+ event: "selectend";
420
+ data: Selection | null;
421
+ }>;
422
+ };
423
+ fingerTracker: {
424
+ track: (frame: HTMLIFrameElement) => void;
425
+ getFingerPositionInIframe(): {
426
+ x: number | undefined;
427
+ y: number | undefined;
428
+ } | undefined;
429
+ destroy: () => void;
430
+ $: Observable<{
431
+ event: "fingermove";
432
+ data: {
433
+ x: number;
434
+ y: number;
435
+ };
436
+ } | {
437
+ event: "fingerout";
438
+ data: undefined;
439
+ }>;
440
+ };
441
+ $: {
442
+ contentLayoutChangeSubject$: Observable<{
443
+ isFirstLayout: boolean;
444
+ isReady: boolean;
445
+ }>;
446
+ loaded$: Observable<HTMLIFrameElement>;
447
+ };
448
+ item: {
449
+ id: string;
450
+ href: string;
451
+ path: string;
452
+ renditionLayout: "reflowable" | "pre-paginated";
453
+ progressionWeight: number;
454
+ pageSpreadLeft: true | undefined;
455
+ pageSpreadRight: true | undefined;
456
+ mediaType?: string | undefined;
457
+ };
458
+ };
@@ -0,0 +1,27 @@
1
+ import { Context } from "../context";
2
+ import { SpineItem } from "./createSpineItem";
3
+ declare type SpineItemPosition = {
4
+ x: number;
5
+ y: number;
6
+ };
7
+ export declare const createLocationResolver: ({ context }: {
8
+ context: Context;
9
+ }) => {
10
+ getSpineItemPositionFromNode: (node: Node, offset: number, spineItem: SpineItem) => {
11
+ x: number;
12
+ y: number;
13
+ } | undefined;
14
+ getSpineItemPositionFromPageIndex: (pageIndex: number, spineItem: SpineItem) => SpineItemPosition;
15
+ getSpineItemOffsetFromAnchor: (anchor: string, spineItem: SpineItem) => number;
16
+ getSpineItemPageIndexFromPosition: (position: SpineItemPosition, spineItem: SpineItem) => number;
17
+ getSpineItemPageIndexFromNode: (node: Node, offset: number, spineItem: SpineItem) => number | undefined;
18
+ getSpineItemClosestPositionFromUnsafePosition: (unsafePosition: SpineItemPosition, spineItem: SpineItem) => {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ getFirstNodeOrRangeAtPage: (pageIndex: number, spineItem: SpineItem) => {
23
+ node: Node;
24
+ offset: number;
25
+ } | undefined;
26
+ };
27
+ export {};
@@ -0,0 +1,23 @@
1
+ import { SpineItem } from "./createSpineItem";
2
+ import { Context } from "../context";
3
+ declare type SpineItemPosition = {
4
+ x: number;
5
+ y: number;
6
+ };
7
+ export declare const createNavigationResolver: ({ context }: {
8
+ context: Context;
9
+ }) => {
10
+ getNavigationForLeftPage: (position: SpineItemPosition, spineItem: SpineItem) => SpineItemPosition;
11
+ getNavigationForRightPage: (position: SpineItemPosition, spineItem: SpineItem) => SpineItemPosition;
12
+ getNavigationForLastPage: (spineItem: SpineItem) => SpineItemPosition;
13
+ getNavigationForPage: (pageIndex: number, spineItem: SpineItem) => SpineItemPosition;
14
+ getNavigationForPosition: (spineItem: SpineItem, position: SpineItemPosition) => {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ getNavigationFromNode: (spineItem: SpineItem, node: Node, offset: number) => {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ };
23
+ export {};