smoosic 1.0.25 → 1.0.26

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 (187) hide show
  1. package/build/smoosic.js +1 -1
  2. package/package.json +1 -1
  3. package/release/smoosic.js +1 -1
  4. package/src/application/exports.ts +1 -0
  5. package/types/src/application/application.d.ts +102 -102
  6. package/types/src/application/common.d.ts +74 -74
  7. package/types/src/application/configuration.d.ts +74 -74
  8. package/types/src/application/dom.d.ts +8 -8
  9. package/types/src/application/dynamicInit.d.ts +1 -1
  10. package/types/src/application/eventHandler.d.ts +78 -78
  11. package/types/src/application/exports.d.ts +494 -493
  12. package/types/src/application/generateVexTests.d.ts +10 -10
  13. package/types/src/application/keyCommands.d.ts +90 -90
  14. package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
  15. package/types/src/common/htmlHelpers.d.ts +105 -105
  16. package/types/src/common/jszip.d.ts +2 -2
  17. package/types/src/common/midi-parser.d.ts +38 -38
  18. package/types/src/common/promiseHelpers.d.ts +30 -30
  19. package/types/src/common/serializationHelpers.d.ts +29 -29
  20. package/types/src/common/textformatter.d.ts +140 -140
  21. package/types/src/common/vex.d.ts +222 -222
  22. package/types/src/render/audio/musicCursor.d.ts +25 -25
  23. package/types/src/render/audio/oscillator.d.ts +98 -98
  24. package/types/src/render/audio/player.d.ts +141 -141
  25. package/types/src/render/audio/samples.d.ts +56 -56
  26. package/types/src/render/sui/configuration.d.ts +12 -12
  27. package/types/src/render/sui/formatter.d.ts +151 -151
  28. package/types/src/render/sui/layoutDebug.d.ts +43 -43
  29. package/types/src/render/sui/mapper.d.ts +116 -116
  30. package/types/src/render/sui/piano.d.ts +46 -46
  31. package/types/src/render/sui/renderState.d.ts +88 -88
  32. package/types/src/render/sui/scoreRender.d.ts +93 -93
  33. package/types/src/render/sui/scoreView.d.ts +267 -267
  34. package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
  35. package/types/src/render/sui/scroller.d.ts +34 -34
  36. package/types/src/render/sui/svgHelpers.d.ts +85 -85
  37. package/types/src/render/sui/svgPageMap.d.ts +318 -318
  38. package/types/src/render/sui/textEdit.d.ts +310 -310
  39. package/types/src/render/sui/textRender.d.ts +189 -189
  40. package/types/src/render/sui/tracker.d.ts +90 -90
  41. package/types/src/render/vex/glyphDimensions.d.ts +23 -23
  42. package/types/src/render/vex/smoAdapter.d.ts +46 -46
  43. package/types/src/render/vex/toVex.d.ts +13 -13
  44. package/types/src/render/vex/vxMeasure.d.ts +95 -95
  45. package/types/src/render/vex/vxNote.d.ts +55 -55
  46. package/types/src/render/vex/vxSystem.d.ts +64 -64
  47. package/types/src/smo/data/common.d.ts +220 -220
  48. package/types/src/smo/data/measure.d.ts +510 -510
  49. package/types/src/smo/data/measureModifiers.d.ts +506 -506
  50. package/types/src/smo/data/music.d.ts +438 -438
  51. package/types/src/smo/data/note.d.ts +485 -485
  52. package/types/src/smo/data/noteModifiers.d.ts +590 -590
  53. package/types/src/smo/data/partInfo.d.ts +162 -162
  54. package/types/src/smo/data/score.d.ts +395 -395
  55. package/types/src/smo/data/scoreModifiers.d.ts +433 -433
  56. package/types/src/smo/data/scoreText.d.ts +277 -277
  57. package/types/src/smo/data/staffModifiers.d.ts +767 -767
  58. package/types/src/smo/data/systemStaff.d.ts +238 -238
  59. package/types/src/smo/data/tuplet.d.ts +146 -146
  60. package/types/src/smo/midi/midiToSmo.d.ts +198 -198
  61. package/types/src/smo/midi/smoToMidi.d.ts +23 -23
  62. package/types/src/smo/mxml/smoToXml.d.ts +165 -165
  63. package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
  64. package/types/src/smo/mxml/xmlState.d.ts +257 -257
  65. package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
  66. package/types/src/smo/xform/beamers.d.ts +46 -46
  67. package/types/src/smo/xform/copypaste.d.ts +99 -99
  68. package/types/src/smo/xform/operations.d.ts +127 -127
  69. package/types/src/smo/xform/roadmap.d.ts +70 -70
  70. package/types/src/smo/xform/selections.d.ts +153 -153
  71. package/types/src/smo/xform/tickDuration.d.ts +155 -155
  72. package/types/src/smo/xform/tickMap.d.ts +34 -34
  73. package/types/src/smo/xform/undo.d.ts +142 -142
  74. package/types/src/smo/xform/updateAudio.d.ts +9 -9
  75. package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
  76. package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
  77. package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
  78. package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
  79. package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
  80. package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
  81. package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
  82. package/types/src/ui/buttons/button.d.ts +95 -95
  83. package/types/src/ui/buttons/collapsable.d.ts +42 -42
  84. package/types/src/ui/buttons/display.d.ts +23 -23
  85. package/types/src/ui/buttons/ribbon.d.ts +76 -76
  86. package/types/src/ui/common.d.ts +45 -45
  87. package/types/src/ui/composable/draggable.d.ts +12 -12
  88. package/types/src/ui/configuration.d.ts +31 -31
  89. package/types/src/ui/dialogs/adapter.d.ts +107 -107
  90. package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
  91. package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
  92. package/types/src/ui/dialogs/articulation.d.ts +2 -2
  93. package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
  94. package/types/src/ui/dialogs/chordChange.d.ts +35 -35
  95. package/types/src/ui/dialogs/clefChange.d.ts +2 -2
  96. package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
  97. package/types/src/ui/dialogs/components/button.d.ts +54 -54
  98. package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
  99. package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
  100. package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
  101. package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
  102. package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
  103. package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
  104. package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
  105. package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
  106. package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
  107. package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
  108. package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
  109. package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
  110. package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
  111. package/types/src/ui/dialogs/components/tie.d.ts +41 -41
  112. package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
  113. package/types/src/ui/dialogs/components/tree.d.ts +46 -46
  114. package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
  115. package/types/src/ui/dialogs/dialog.d.ts +201 -201
  116. package/types/src/ui/dialogs/durations.d.ts +2 -2
  117. package/types/src/ui/dialogs/dynamics.d.ts +37 -37
  118. package/types/src/ui/dialogs/endings.d.ts +61 -61
  119. package/types/src/ui/dialogs/factory.d.ts +15 -15
  120. package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
  121. package/types/src/ui/dialogs/fonts.d.ts +2 -2
  122. package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
  123. package/types/src/ui/dialogs/gracenote.d.ts +2 -2
  124. package/types/src/ui/dialogs/hairpin.d.ts +35 -35
  125. package/types/src/ui/dialogs/instrument.d.ts +3 -3
  126. package/types/src/ui/dialogs/keySignature.d.ts +33 -33
  127. package/types/src/ui/dialogs/library.d.ts +70 -70
  128. package/types/src/ui/dialogs/lyric.d.ts +39 -39
  129. package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
  130. package/types/src/ui/dialogs/microtones.d.ts +2 -2
  131. package/types/src/ui/dialogs/noteHead.d.ts +2 -2
  132. package/types/src/ui/dialogs/ornament.d.ts +2 -2
  133. package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
  134. package/types/src/ui/dialogs/partInfo.d.ts +2 -2
  135. package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
  136. package/types/src/ui/dialogs/pitch.d.ts +2 -2
  137. package/types/src/ui/dialogs/preferences.d.ts +2 -2
  138. package/types/src/ui/dialogs/scoreId.d.ts +2 -2
  139. package/types/src/ui/dialogs/scoreView.d.ts +2 -2
  140. package/types/src/ui/dialogs/slur.d.ts +57 -57
  141. package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
  142. package/types/src/ui/dialogs/tabNote.d.ts +32 -32
  143. package/types/src/ui/dialogs/tabStave.d.ts +43 -43
  144. package/types/src/ui/dialogs/tempo.d.ts +50 -50
  145. package/types/src/ui/dialogs/textBlock.d.ts +61 -61
  146. package/types/src/ui/dialogs/textBracket.d.ts +35 -35
  147. package/types/src/ui/dialogs/tie.d.ts +41 -41
  148. package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
  149. package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
  150. package/types/src/ui/dialogs/volta.d.ts +40 -40
  151. package/types/src/ui/eventSource.d.ts +63 -63
  152. package/types/src/ui/exceptions.d.ts +12 -12
  153. package/types/src/ui/fileio/fileInput.d.ts +12 -12
  154. package/types/src/ui/fileio/library.d.ts +40 -40
  155. package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
  156. package/types/src/ui/help.d.ts +22 -22
  157. package/types/src/ui/i18n/language.d.ts +37 -37
  158. package/types/src/ui/i18n/language_ar.d.ts +5 -5
  159. package/types/src/ui/i18n/language_de.d.ts +1 -1
  160. package/types/src/ui/i18n/language_en.d.ts +18 -18
  161. package/types/src/ui/i18n/translationEditor.d.ts +14 -14
  162. package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
  163. package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
  164. package/types/src/ui/menus/beams.d.ts +13 -13
  165. package/types/src/ui/menus/edit.d.ts +8 -8
  166. package/types/src/ui/menus/file.d.ts +26 -26
  167. package/types/src/ui/menus/help.d.ts +8 -8
  168. package/types/src/ui/menus/keySignature.d.ts +13 -13
  169. package/types/src/ui/menus/language.d.ts +12 -12
  170. package/types/src/ui/menus/manager.d.ts +57 -57
  171. package/types/src/ui/menus/measure.d.ts +8 -8
  172. package/types/src/ui/menus/menu.d.ts +136 -136
  173. package/types/src/ui/menus/note.d.ts +8 -8
  174. package/types/src/ui/menus/partSelection.d.ts +19 -19
  175. package/types/src/ui/menus/parts.d.ts +50 -50
  176. package/types/src/ui/menus/score.d.ts +20 -20
  177. package/types/src/ui/menus/staffModifier.d.ts +21 -21
  178. package/types/src/ui/menus/text.d.ts +8 -8
  179. package/types/src/ui/menus/timeSignature.d.ts +12 -12
  180. package/types/src/ui/menus/tuplets.d.ts +13 -13
  181. package/types/src/ui/menus/voices.d.ts +8 -8
  182. package/types/src/ui/modalDialogs.d.ts +1 -1
  183. package/types/src/ui/navigation.d.ts +15 -15
  184. package/types/src/ui/qwerty.d.ts +41 -41
  185. package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
  186. package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
  187. package/types/typedoc.d.ts +158 -158
@@ -1,220 +1,220 @@
1
- /**
2
- * definitions shared by all SMO types
3
- * @module /smo/data/common
4
- */
5
- export declare const SmoNamespace: {
6
- value: string;
7
- };
8
- export type dynamicCtor = (params: any) => any;
9
- export declare const SmoDynamicCtor: Record<string, dynamicCtor>;
10
- /**
11
- * Same as attrs object in Vex objects.
12
- * @category SmoObject
13
- * @param id - unique identifier, can be used in DOM elements
14
- * @param type - a little bit redundate with `ctor` in `SmoObjectParams`
15
- */
16
- export interface SmoAttrs {
17
- id: string;
18
- type: string;
19
- }
20
- /**
21
- * @internal
22
- */
23
- export interface SmoXmlSerializable {
24
- serializeXml: (namespace: string, parentElement: Element, tag: string) => Element;
25
- ctor: string;
26
- }
27
- export declare function createXmlAttributes(element: Element, obj: any): void;
28
- export declare function createXmlAttribute(element: Element, name: string, value: any): void;
29
- export declare const getId: () => string;
30
- /**
31
- * All note, measure, staff, and score objects have
32
- * a serialize method and are deserializable with constructor `ctor`
33
- * @category SmoObject
34
- */
35
- export interface SmoObjectParams {
36
- ctor: string;
37
- attrs?: SmoAttrs;
38
- }
39
- /**
40
- * Note duration. The same abstraction used by vex, except here denominator is
41
- * always 1. remainder is used to reconstruct non-tuplets from tuplets.
42
- * @category SmoObject
43
- * @param numerator - duration, 4096 is 1/4 note
44
- * @param denominator - always 1 for SMO objects
45
- * @param remainder - used for tuplets whose duration doesn't divide evenly
46
- */
47
- export interface Ticks {
48
- numerator: number;
49
- denominator: number;
50
- remainder: number;
51
- }
52
- export type ElementLike = SVGSVGElement | SVGGElement | SVGGraphicsElement | null;
53
- export declare const RemoveElementLike: (e: ElementLike) => void;
54
- /**
55
- * constraint for SmoPitch.letter value, in lower case
56
- */
57
- export type PitchLetter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g';
58
- export declare function IsPitchLetter(letter: PitchLetter | string): letter is PitchLetter;
59
- /**
60
- * PitchKey is a SmoPitch, without the octave
61
- * @category SmoObject
62
- * @param letter - letter note
63
- * @param accidental - an accidental or microtone
64
- */
65
- export interface PitchKey {
66
- letter: PitchLetter;
67
- accidental: string;
68
- }
69
- /**
70
- * Represents a single pitch in Smo object model.
71
- * @category SmoObject
72
- * @param letter - letter note
73
- * @param accidental - an accidental or microtone
74
- * @param octave - standard octave
75
- * @param cautionary? - can be used for courtesy accidental
76
- */
77
- export interface Pitch {
78
- letter: PitchLetter;
79
- accidental: string;
80
- octave: number;
81
- cautionary?: boolean;
82
- forced?: boolean;
83
- role?: string;
84
- }
85
- /**
86
- * A tuple indicating measure location in the score:
87
- * @category SmoObject
88
- * @param measureIndex - the actual offset from the first measure
89
- * @param localIndex - the index as shown to the user, considers renumbering
90
- * @param sytemIndex - which bar (column) of a system this measure is
91
- * @param staffId - which staff (row) of a system this measure is
92
- */
93
- export interface MeasureNumber {
94
- measureIndex: number;
95
- localIndex: number;
96
- systemIndex: number;
97
- staffId: number;
98
- }
99
- /**
100
- * musical artifacts can contain temporary svg information for
101
- * mapping the UI.
102
- * @internal
103
- */
104
- export declare class SvgPoint {
105
- x: number;
106
- y: number;
107
- static get default(): {
108
- x: number;
109
- y: number;
110
- };
111
- constructor();
112
- }
113
- /**
114
- * musical artifacts can contain temporary svg information for
115
- * mapping the UI.
116
- * @internal
117
- */
118
- export declare class SvgBox {
119
- x: number;
120
- y: number;
121
- width: number;
122
- height: number;
123
- static get default(): SvgBox;
124
- constructor();
125
- }
126
- /**
127
- * kind of a pointless class...
128
- * @internal
129
- */
130
- export interface SvgDimensions {
131
- width: number;
132
- height: number;
133
- }
134
- /**
135
- * A `Transposable` is an abstraction of a note.
136
- * Can be passed into methods that transform pitches for both
137
- * grace notes and normal notes.
138
- * @category SmoObject
139
- * @param pitches - SMO pitch type
140
- * @param noteType - same convention as VexFlow, 'n' for note, 'r' for rest
141
- * @param renderId - ID for the containing SVG group, used to map UI elements
142
- * @param renderedBox - bounding box in client coordinates
143
- * @param logicalBox - bounding box in SVG coordinates
144
- */
145
- export interface Transposable {
146
- pitches: Pitch[];
147
- noteType: string;
148
- renderId: string | null;
149
- logicalBox: SvgBox | null;
150
- }
151
- /**
152
- * All note, measure etc. modifiers have these attributes. The SVG info
153
- * is for the tracker to track the artifacts in the UI (mouse events, etc)
154
- * @category SmoObject
155
- * @param ctor - constructor name for deserialize
156
- * @param logicalBox - bounding box in SVG coordinates
157
- * @param attr - unique ID, simlar to vex object attrs field
158
- */
159
- export interface SmoModifierBase {
160
- ctor: string;
161
- logicalBox: SvgBox | null;
162
- attrs: SmoAttrs;
163
- serialize: () => any;
164
- }
165
- /**
166
- * Renderable is just a thing that has a bounding box
167
- * @internal
168
- */
169
- export interface Renderable {
170
- logicalBox: SvgBox | null | undefined;
171
- }
172
- /**
173
- * Restriction from string to supported clefs
174
- */
175
- export type Clef = 'treble' | 'bass' | 'tenor' | 'alto' | 'soprano' | 'percussion' | 'mezzo-soprano' | 'baritone-c' | 'baritone-f' | 'subbass' | 'french';
176
- export declare var Clefs: Clef[];
177
- export declare function IsClef(clef: Clef | string): clef is Clef;
178
- /**
179
- * Most event handling in SMO is an 'any' from jquery, but
180
- * key events are sometimes narrowed to the common browser key event
181
- * @internal
182
- */
183
- export interface KeyEvent {
184
- type: string;
185
- shiftKey: boolean;
186
- ctrlKey: boolean;
187
- altKey: boolean;
188
- key: string;
189
- keyCode: number | string;
190
- code: string;
191
- event: string | null;
192
- }
193
- export declare function defaultKeyEvent(): KeyEvent;
194
- export declare function keyEventMatch(ev1: KeyEvent, ev2: KeyEvent): boolean;
195
- export type keyHandler = (key?: KeyEvent) => void;
196
- /**
197
- * @internal
198
- */
199
- export interface TickAccidental {
200
- duration: number;
201
- pitch: Pitch;
202
- }
203
- /**
204
- * @internal
205
- * Used to create {@link MeasureTickmaps}
206
- */
207
- export interface AccidentalArray {
208
- duration: string | number;
209
- pitches: Record<string, TickAccidental>;
210
- }
211
- /**
212
- * @internal
213
- */
214
- export interface AccidentalDisplay {
215
- symbol: string;
216
- courtesy: boolean;
217
- forced: boolean;
218
- }
219
- export declare const reverseStaticMaps: Record<string, Record<string, string>>;
220
- export declare function reverseStaticMap(name: string, o: Record<string, string>): Record<string, string>;
1
+ /**
2
+ * definitions shared by all SMO types
3
+ * @module /smo/data/common
4
+ */
5
+ export declare const SmoNamespace: {
6
+ value: string;
7
+ };
8
+ export type dynamicCtor = (params: any) => any;
9
+ export declare const SmoDynamicCtor: Record<string, dynamicCtor>;
10
+ /**
11
+ * Same as attrs object in Vex objects.
12
+ * @category SmoObject
13
+ * @param id - unique identifier, can be used in DOM elements
14
+ * @param type - a little bit redundate with `ctor` in `SmoObjectParams`
15
+ */
16
+ export interface SmoAttrs {
17
+ id: string;
18
+ type: string;
19
+ }
20
+ /**
21
+ * @internal
22
+ */
23
+ export interface SmoXmlSerializable {
24
+ serializeXml: (namespace: string, parentElement: Element, tag: string) => Element;
25
+ ctor: string;
26
+ }
27
+ export declare function createXmlAttributes(element: Element, obj: any): void;
28
+ export declare function createXmlAttribute(element: Element, name: string, value: any): void;
29
+ export declare const getId: () => string;
30
+ /**
31
+ * All note, measure, staff, and score objects have
32
+ * a serialize method and are deserializable with constructor `ctor`
33
+ * @category SmoObject
34
+ */
35
+ export interface SmoObjectParams {
36
+ ctor: string;
37
+ attrs?: SmoAttrs;
38
+ }
39
+ /**
40
+ * Note duration. The same abstraction used by vex, except here denominator is
41
+ * always 1. remainder is used to reconstruct non-tuplets from tuplets.
42
+ * @category SmoObject
43
+ * @param numerator - duration, 4096 is 1/4 note
44
+ * @param denominator - always 1 for SMO objects
45
+ * @param remainder - used for tuplets whose duration doesn't divide evenly
46
+ */
47
+ export interface Ticks {
48
+ numerator: number;
49
+ denominator: number;
50
+ remainder: number;
51
+ }
52
+ export type ElementLike = SVGSVGElement | SVGGElement | SVGGraphicsElement | null;
53
+ export declare const RemoveElementLike: (e: ElementLike) => void;
54
+ /**
55
+ * constraint for SmoPitch.letter value, in lower case
56
+ */
57
+ export type PitchLetter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g';
58
+ export declare function IsPitchLetter(letter: PitchLetter | string): letter is PitchLetter;
59
+ /**
60
+ * PitchKey is a SmoPitch, without the octave
61
+ * @category SmoObject
62
+ * @param letter - letter note
63
+ * @param accidental - an accidental or microtone
64
+ */
65
+ export interface PitchKey {
66
+ letter: PitchLetter;
67
+ accidental: string;
68
+ }
69
+ /**
70
+ * Represents a single pitch in Smo object model.
71
+ * @category SmoObject
72
+ * @param letter - letter note
73
+ * @param accidental - an accidental or microtone
74
+ * @param octave - standard octave
75
+ * @param cautionary? - can be used for courtesy accidental
76
+ */
77
+ export interface Pitch {
78
+ letter: PitchLetter;
79
+ accidental: string;
80
+ octave: number;
81
+ cautionary?: boolean;
82
+ forced?: boolean;
83
+ role?: string;
84
+ }
85
+ /**
86
+ * A tuple indicating measure location in the score:
87
+ * @category SmoObject
88
+ * @param measureIndex - the actual offset from the first measure
89
+ * @param localIndex - the index as shown to the user, considers renumbering
90
+ * @param sytemIndex - which bar (column) of a system this measure is
91
+ * @param staffId - which staff (row) of a system this measure is
92
+ */
93
+ export interface MeasureNumber {
94
+ measureIndex: number;
95
+ localIndex: number;
96
+ systemIndex: number;
97
+ staffId: number;
98
+ }
99
+ /**
100
+ * musical artifacts can contain temporary svg information for
101
+ * mapping the UI.
102
+ * @internal
103
+ */
104
+ export declare class SvgPoint {
105
+ x: number;
106
+ y: number;
107
+ static get default(): {
108
+ x: number;
109
+ y: number;
110
+ };
111
+ constructor();
112
+ }
113
+ /**
114
+ * musical artifacts can contain temporary svg information for
115
+ * mapping the UI.
116
+ * @internal
117
+ */
118
+ export declare class SvgBox {
119
+ x: number;
120
+ y: number;
121
+ width: number;
122
+ height: number;
123
+ static get default(): SvgBox;
124
+ constructor();
125
+ }
126
+ /**
127
+ * kind of a pointless class...
128
+ * @internal
129
+ */
130
+ export interface SvgDimensions {
131
+ width: number;
132
+ height: number;
133
+ }
134
+ /**
135
+ * A `Transposable` is an abstraction of a note.
136
+ * Can be passed into methods that transform pitches for both
137
+ * grace notes and normal notes.
138
+ * @category SmoObject
139
+ * @param pitches - SMO pitch type
140
+ * @param noteType - same convention as VexFlow, 'n' for note, 'r' for rest
141
+ * @param renderId - ID for the containing SVG group, used to map UI elements
142
+ * @param renderedBox - bounding box in client coordinates
143
+ * @param logicalBox - bounding box in SVG coordinates
144
+ */
145
+ export interface Transposable {
146
+ pitches: Pitch[];
147
+ noteType: string;
148
+ renderId: string | null;
149
+ logicalBox: SvgBox | null;
150
+ }
151
+ /**
152
+ * All note, measure etc. modifiers have these attributes. The SVG info
153
+ * is for the tracker to track the artifacts in the UI (mouse events, etc)
154
+ * @category SmoObject
155
+ * @param ctor - constructor name for deserialize
156
+ * @param logicalBox - bounding box in SVG coordinates
157
+ * @param attr - unique ID, simlar to vex object attrs field
158
+ */
159
+ export interface SmoModifierBase {
160
+ ctor: string;
161
+ logicalBox: SvgBox | null;
162
+ attrs: SmoAttrs;
163
+ serialize: () => any;
164
+ }
165
+ /**
166
+ * Renderable is just a thing that has a bounding box
167
+ * @internal
168
+ */
169
+ export interface Renderable {
170
+ logicalBox: SvgBox | null | undefined;
171
+ }
172
+ /**
173
+ * Restriction from string to supported clefs
174
+ */
175
+ export type Clef = 'treble' | 'bass' | 'tenor' | 'alto' | 'soprano' | 'percussion' | 'mezzo-soprano' | 'baritone-c' | 'baritone-f' | 'subbass' | 'french';
176
+ export declare var Clefs: Clef[];
177
+ export declare function IsClef(clef: Clef | string): clef is Clef;
178
+ /**
179
+ * Most event handling in SMO is an 'any' from jquery, but
180
+ * key events are sometimes narrowed to the common browser key event
181
+ * @internal
182
+ */
183
+ export interface KeyEvent {
184
+ type: string;
185
+ shiftKey: boolean;
186
+ ctrlKey: boolean;
187
+ altKey: boolean;
188
+ key: string;
189
+ keyCode: number | string;
190
+ code: string;
191
+ event: string | null;
192
+ }
193
+ export declare function defaultKeyEvent(): KeyEvent;
194
+ export declare function keyEventMatch(ev1: KeyEvent, ev2: KeyEvent): boolean;
195
+ export type keyHandler = (key?: KeyEvent) => void;
196
+ /**
197
+ * @internal
198
+ */
199
+ export interface TickAccidental {
200
+ duration: number;
201
+ pitch: Pitch;
202
+ }
203
+ /**
204
+ * @internal
205
+ * Used to create {@link MeasureTickmaps}
206
+ */
207
+ export interface AccidentalArray {
208
+ duration: string | number;
209
+ pitches: Record<string, TickAccidental>;
210
+ }
211
+ /**
212
+ * @internal
213
+ */
214
+ export interface AccidentalDisplay {
215
+ symbol: string;
216
+ courtesy: boolean;
217
+ forced: boolean;
218
+ }
219
+ export declare const reverseStaticMaps: Record<string, Record<string, string>>;
220
+ export declare function reverseStaticMap(name: string, o: Record<string, string>): Record<string, string>;