smoosic 1.0.24 → 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 (189) hide show
  1. package/build/smoosic.js +1 -1
  2. package/package.json +1 -1
  3. package/release/smoosic.js +1 -1
  4. package/release/styles/ribbon.css +5 -10
  5. package/src/application/exports.ts +1 -0
  6. package/src/styles/ribbon.css +5 -10
  7. package/types/src/application/application.d.ts +102 -102
  8. package/types/src/application/common.d.ts +74 -74
  9. package/types/src/application/configuration.d.ts +74 -74
  10. package/types/src/application/dom.d.ts +8 -8
  11. package/types/src/application/dynamicInit.d.ts +1 -1
  12. package/types/src/application/eventHandler.d.ts +78 -78
  13. package/types/src/application/exports.d.ts +494 -493
  14. package/types/src/application/generateVexTests.d.ts +10 -10
  15. package/types/src/application/keyCommands.d.ts +90 -90
  16. package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
  17. package/types/src/common/htmlHelpers.d.ts +105 -105
  18. package/types/src/common/jszip.d.ts +2 -2
  19. package/types/src/common/midi-parser.d.ts +38 -38
  20. package/types/src/common/promiseHelpers.d.ts +30 -30
  21. package/types/src/common/serializationHelpers.d.ts +29 -29
  22. package/types/src/common/textformatter.d.ts +140 -140
  23. package/types/src/common/vex.d.ts +222 -222
  24. package/types/src/render/audio/musicCursor.d.ts +25 -25
  25. package/types/src/render/audio/oscillator.d.ts +98 -98
  26. package/types/src/render/audio/player.d.ts +141 -141
  27. package/types/src/render/audio/samples.d.ts +56 -56
  28. package/types/src/render/sui/configuration.d.ts +12 -12
  29. package/types/src/render/sui/formatter.d.ts +151 -151
  30. package/types/src/render/sui/layoutDebug.d.ts +43 -43
  31. package/types/src/render/sui/mapper.d.ts +116 -116
  32. package/types/src/render/sui/piano.d.ts +46 -46
  33. package/types/src/render/sui/renderState.d.ts +88 -88
  34. package/types/src/render/sui/scoreRender.d.ts +93 -93
  35. package/types/src/render/sui/scoreView.d.ts +267 -267
  36. package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
  37. package/types/src/render/sui/scroller.d.ts +34 -34
  38. package/types/src/render/sui/svgHelpers.d.ts +85 -85
  39. package/types/src/render/sui/svgPageMap.d.ts +318 -318
  40. package/types/src/render/sui/textEdit.d.ts +310 -310
  41. package/types/src/render/sui/textRender.d.ts +189 -189
  42. package/types/src/render/sui/tracker.d.ts +90 -90
  43. package/types/src/render/vex/glyphDimensions.d.ts +23 -23
  44. package/types/src/render/vex/smoAdapter.d.ts +46 -46
  45. package/types/src/render/vex/toVex.d.ts +13 -13
  46. package/types/src/render/vex/vxMeasure.d.ts +95 -95
  47. package/types/src/render/vex/vxNote.d.ts +55 -55
  48. package/types/src/render/vex/vxSystem.d.ts +64 -64
  49. package/types/src/smo/data/common.d.ts +220 -220
  50. package/types/src/smo/data/measure.d.ts +510 -510
  51. package/types/src/smo/data/measureModifiers.d.ts +506 -506
  52. package/types/src/smo/data/music.d.ts +438 -438
  53. package/types/src/smo/data/note.d.ts +485 -485
  54. package/types/src/smo/data/noteModifiers.d.ts +590 -590
  55. package/types/src/smo/data/partInfo.d.ts +162 -162
  56. package/types/src/smo/data/score.d.ts +395 -395
  57. package/types/src/smo/data/scoreModifiers.d.ts +433 -433
  58. package/types/src/smo/data/scoreText.d.ts +277 -277
  59. package/types/src/smo/data/staffModifiers.d.ts +767 -767
  60. package/types/src/smo/data/systemStaff.d.ts +238 -238
  61. package/types/src/smo/data/tuplet.d.ts +146 -146
  62. package/types/src/smo/midi/midiToSmo.d.ts +198 -198
  63. package/types/src/smo/midi/smoToMidi.d.ts +23 -23
  64. package/types/src/smo/mxml/smoToXml.d.ts +165 -165
  65. package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
  66. package/types/src/smo/mxml/xmlState.d.ts +257 -257
  67. package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
  68. package/types/src/smo/xform/beamers.d.ts +46 -46
  69. package/types/src/smo/xform/copypaste.d.ts +99 -99
  70. package/types/src/smo/xform/operations.d.ts +127 -127
  71. package/types/src/smo/xform/roadmap.d.ts +70 -70
  72. package/types/src/smo/xform/selections.d.ts +153 -153
  73. package/types/src/smo/xform/tickDuration.d.ts +155 -155
  74. package/types/src/smo/xform/tickMap.d.ts +34 -34
  75. package/types/src/smo/xform/undo.d.ts +142 -142
  76. package/types/src/smo/xform/updateAudio.d.ts +9 -9
  77. package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
  78. package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
  79. package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
  80. package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
  81. package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
  82. package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
  83. package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
  84. package/types/src/ui/buttons/button.d.ts +95 -95
  85. package/types/src/ui/buttons/collapsable.d.ts +42 -42
  86. package/types/src/ui/buttons/display.d.ts +23 -23
  87. package/types/src/ui/buttons/ribbon.d.ts +76 -76
  88. package/types/src/ui/common.d.ts +45 -45
  89. package/types/src/ui/composable/draggable.d.ts +12 -12
  90. package/types/src/ui/configuration.d.ts +31 -31
  91. package/types/src/ui/dialogs/adapter.d.ts +107 -107
  92. package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
  93. package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
  94. package/types/src/ui/dialogs/articulation.d.ts +2 -2
  95. package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
  96. package/types/src/ui/dialogs/chordChange.d.ts +35 -35
  97. package/types/src/ui/dialogs/clefChange.d.ts +2 -2
  98. package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
  99. package/types/src/ui/dialogs/components/button.d.ts +54 -54
  100. package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
  101. package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
  102. package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
  103. package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
  104. package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
  105. package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
  106. package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
  107. package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
  108. package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
  109. package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
  110. package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
  111. package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
  112. package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
  113. package/types/src/ui/dialogs/components/tie.d.ts +41 -41
  114. package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
  115. package/types/src/ui/dialogs/components/tree.d.ts +46 -46
  116. package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
  117. package/types/src/ui/dialogs/dialog.d.ts +201 -201
  118. package/types/src/ui/dialogs/durations.d.ts +2 -2
  119. package/types/src/ui/dialogs/dynamics.d.ts +37 -37
  120. package/types/src/ui/dialogs/endings.d.ts +61 -61
  121. package/types/src/ui/dialogs/factory.d.ts +15 -15
  122. package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
  123. package/types/src/ui/dialogs/fonts.d.ts +2 -2
  124. package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
  125. package/types/src/ui/dialogs/gracenote.d.ts +2 -2
  126. package/types/src/ui/dialogs/hairpin.d.ts +35 -35
  127. package/types/src/ui/dialogs/instrument.d.ts +3 -3
  128. package/types/src/ui/dialogs/keySignature.d.ts +33 -33
  129. package/types/src/ui/dialogs/library.d.ts +70 -70
  130. package/types/src/ui/dialogs/lyric.d.ts +39 -39
  131. package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
  132. package/types/src/ui/dialogs/microtones.d.ts +2 -2
  133. package/types/src/ui/dialogs/noteHead.d.ts +2 -2
  134. package/types/src/ui/dialogs/ornament.d.ts +2 -2
  135. package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
  136. package/types/src/ui/dialogs/partInfo.d.ts +2 -2
  137. package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
  138. package/types/src/ui/dialogs/pitch.d.ts +2 -2
  139. package/types/src/ui/dialogs/preferences.d.ts +2 -2
  140. package/types/src/ui/dialogs/scoreId.d.ts +2 -2
  141. package/types/src/ui/dialogs/scoreView.d.ts +2 -2
  142. package/types/src/ui/dialogs/slur.d.ts +57 -57
  143. package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
  144. package/types/src/ui/dialogs/tabNote.d.ts +32 -32
  145. package/types/src/ui/dialogs/tabStave.d.ts +43 -43
  146. package/types/src/ui/dialogs/tempo.d.ts +50 -50
  147. package/types/src/ui/dialogs/textBlock.d.ts +61 -61
  148. package/types/src/ui/dialogs/textBracket.d.ts +35 -35
  149. package/types/src/ui/dialogs/tie.d.ts +41 -41
  150. package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
  151. package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
  152. package/types/src/ui/dialogs/volta.d.ts +40 -40
  153. package/types/src/ui/eventSource.d.ts +63 -63
  154. package/types/src/ui/exceptions.d.ts +12 -12
  155. package/types/src/ui/fileio/fileInput.d.ts +12 -12
  156. package/types/src/ui/fileio/library.d.ts +40 -40
  157. package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
  158. package/types/src/ui/help.d.ts +22 -22
  159. package/types/src/ui/i18n/language.d.ts +37 -37
  160. package/types/src/ui/i18n/language_ar.d.ts +5 -5
  161. package/types/src/ui/i18n/language_de.d.ts +1 -1
  162. package/types/src/ui/i18n/language_en.d.ts +18 -18
  163. package/types/src/ui/i18n/translationEditor.d.ts +14 -14
  164. package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
  165. package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
  166. package/types/src/ui/menus/beams.d.ts +13 -13
  167. package/types/src/ui/menus/edit.d.ts +8 -8
  168. package/types/src/ui/menus/file.d.ts +26 -26
  169. package/types/src/ui/menus/help.d.ts +8 -8
  170. package/types/src/ui/menus/keySignature.d.ts +13 -13
  171. package/types/src/ui/menus/language.d.ts +12 -12
  172. package/types/src/ui/menus/manager.d.ts +57 -57
  173. package/types/src/ui/menus/measure.d.ts +8 -8
  174. package/types/src/ui/menus/menu.d.ts +136 -136
  175. package/types/src/ui/menus/note.d.ts +8 -8
  176. package/types/src/ui/menus/partSelection.d.ts +19 -19
  177. package/types/src/ui/menus/parts.d.ts +50 -50
  178. package/types/src/ui/menus/score.d.ts +20 -20
  179. package/types/src/ui/menus/staffModifier.d.ts +21 -21
  180. package/types/src/ui/menus/text.d.ts +8 -8
  181. package/types/src/ui/menus/timeSignature.d.ts +12 -12
  182. package/types/src/ui/menus/tuplets.d.ts +13 -13
  183. package/types/src/ui/menus/voices.d.ts +8 -8
  184. package/types/src/ui/modalDialogs.d.ts +1 -1
  185. package/types/src/ui/navigation.d.ts +15 -15
  186. package/types/src/ui/qwerty.d.ts +41 -41
  187. package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
  188. package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
  189. 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>;