@jbrowse/product-core 4.2.1 → 5.0.0-beta.1

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 (133) hide show
  1. package/esm/RootModel/BaseRootModel.d.ts +629 -304
  2. package/esm/RootModel/BaseRootModel.js +138 -14
  3. package/esm/RootModel/HierarchicalConfig.d.ts +57 -21
  4. package/esm/RootModel/HierarchicalConfig.js +36 -0
  5. package/esm/RootModel/InternetAccounts.d.ts +18 -1
  6. package/esm/RootModel/InternetAccounts.js +120 -22
  7. package/esm/RootModel/PreferencesConfig.d.ts +53 -0
  8. package/esm/RootModel/PreferencesConfig.js +61 -0
  9. package/esm/RootModel/createConfigModel.d.ts +232 -0
  10. package/esm/RootModel/createConfigModel.js +56 -0
  11. package/esm/RootModel/index.d.ts +10 -5
  12. package/esm/RootModel/index.js +10 -5
  13. package/esm/RootModel/menuItems.d.ts +24 -0
  14. package/esm/RootModel/menuItems.js +143 -0
  15. package/esm/Session/BaseSession.d.ts +310 -11
  16. package/esm/Session/BaseSession.js +448 -14
  17. package/esm/Session/Connections.d.ts +114 -8
  18. package/esm/Session/Connections.js +195 -74
  19. package/esm/Session/DrawerWidgets.d.ts +115 -12
  20. package/esm/Session/DrawerWidgets.js +161 -42
  21. package/esm/Session/MultipleViews.d.ts +1266 -1128
  22. package/esm/Session/MultipleViews.js +357 -66
  23. package/esm/Session/Preferences.d.ts +1665 -0
  24. package/esm/Session/Preferences.js +54 -0
  25. package/esm/Session/ReferenceManagement.d.ts +28 -3
  26. package/esm/Session/ReferenceManagement.js +56 -41
  27. package/esm/Session/SessionTracks.d.ts +1275 -1138
  28. package/esm/Session/SessionTracks.js +532 -35
  29. package/esm/Session/Themes.d.ts +87 -2
  30. package/esm/Session/Themes.js +156 -23
  31. package/esm/Session/TrackMenu.d.ts +112 -0
  32. package/esm/Session/TrackMenu.js +200 -0
  33. package/esm/Session/TrackMenuSessionMixin.d.ts +27 -0
  34. package/esm/Session/TrackMenuSessionMixin.js +41 -0
  35. package/esm/Session/Tracks.d.ts +1169 -1117
  36. package/esm/Session/Tracks.js +160 -20
  37. package/esm/Session/assertSessionModel.d.ts +21 -0
  38. package/esm/Session/assertSessionModel.js +1 -0
  39. package/esm/Session/finalizeSession.d.ts +16 -0
  40. package/esm/Session/finalizeSession.js +29 -0
  41. package/esm/Session/index.d.ts +22 -10
  42. package/esm/Session/index.js +13 -10
  43. package/esm/Session/shareableSnapshot.d.ts +77 -0
  44. package/esm/Session/shareableSnapshot.js +196 -0
  45. package/esm/Session/temporaryAssemblyTracks.d.ts +23 -0
  46. package/esm/Session/temporaryAssemblyTracks.js +38 -0
  47. package/esm/assertExtends.d.ts +55 -0
  48. package/esm/assertExtends.js +1 -0
  49. package/esm/controllerTracks.d.ts +56 -0
  50. package/esm/controllerTracks.js +77 -0
  51. package/esm/destroyViewState.d.ts +21 -0
  52. package/esm/destroyViewState.js +29 -0
  53. package/esm/index.d.ts +31 -4
  54. package/esm/index.js +31 -4
  55. package/esm/loadPlugins.d.ts +33 -0
  56. package/esm/loadPlugins.js +38 -0
  57. package/esm/localFiles.d.ts +74 -0
  58. package/esm/localFiles.js +156 -0
  59. package/esm/observeSession.d.ts +56 -0
  60. package/esm/observeSession.js +91 -0
  61. package/esm/pluginInput.d.ts +32 -0
  62. package/esm/pluginInput.js +19 -0
  63. package/esm/pruneUnbuildableNodes.d.ts +109 -0
  64. package/esm/pruneUnbuildableNodes.js +568 -0
  65. package/esm/resolveAssemblies.d.ts +44 -0
  66. package/esm/resolveAssemblies.js +55 -0
  67. package/esm/rpcWorker.d.ts +26 -0
  68. package/esm/rpcWorker.js +96 -15
  69. package/esm/scheduleDetachedDestroy.d.ts +18 -0
  70. package/esm/scheduleDetachedDestroy.js +24 -0
  71. package/esm/sessionMigrations/index.d.ts +53 -0
  72. package/esm/sessionMigrations/index.js +432 -0
  73. package/esm/sessionUrl.d.ts +41 -0
  74. package/esm/sessionUrl.js +53 -0
  75. package/esm/sessionUtils.d.ts +69 -0
  76. package/esm/sessionUtils.js +613 -0
  77. package/esm/siblingCast.d.ts +14 -0
  78. package/esm/siblingCast.js +16 -0
  79. package/esm/snapshotUtils.d.ts +8 -0
  80. package/esm/snapshotUtils.js +12 -0
  81. package/esm/ui/AboutDialog.d.ts +3 -6
  82. package/esm/ui/AboutDialog.js +4 -4
  83. package/esm/ui/AboutDialogContents.d.ts +2 -6
  84. package/esm/ui/AboutDialogContents.js +34 -13
  85. package/esm/ui/AssemblyInfoPanel.d.ts +5 -0
  86. package/esm/ui/AssemblyInfoPanel.js +69 -0
  87. package/esm/ui/DisplayDefaultsSection.d.ts +36 -0
  88. package/esm/ui/DisplayDefaultsSection.js +65 -0
  89. package/esm/ui/Drawer.d.ts +21 -0
  90. package/esm/ui/Drawer.js +60 -0
  91. package/esm/ui/DrawerControls.d.ts +5 -0
  92. package/esm/ui/DrawerControls.js +28 -0
  93. package/esm/ui/DrawerHeader.d.ts +6 -0
  94. package/esm/ui/DrawerHeader.js +36 -0
  95. package/esm/ui/DrawerWidget.d.ts +5 -0
  96. package/esm/ui/DrawerWidget.js +12 -0
  97. package/esm/ui/DrawerWidgetSelector.d.ts +5 -0
  98. package/esm/ui/DrawerWidgetSelector.js +40 -0
  99. package/esm/ui/FileInfoPanel.d.ts +3 -6
  100. package/esm/ui/FileInfoPanel.js +35 -26
  101. package/esm/ui/HeaderButtons.d.ts +7 -1
  102. package/esm/ui/HeaderButtons.js +23 -18
  103. package/esm/ui/ModalWidget.d.ts +12 -0
  104. package/esm/ui/ModalWidget.js +33 -0
  105. package/esm/ui/ModalWidgetAppBar.d.ts +8 -0
  106. package/esm/ui/ModalWidgetAppBar.js +9 -0
  107. package/esm/ui/PreferencesDialog.d.ts +56 -0
  108. package/esm/ui/PreferencesDialog.js +145 -0
  109. package/esm/ui/PreferencesResetDialog.d.ts +8 -0
  110. package/esm/ui/PreferencesResetDialog.js +19 -0
  111. package/esm/ui/RefNameAliasesDialog.d.ts +9 -0
  112. package/esm/ui/RefNameAliasesDialog.js +65 -0
  113. package/esm/ui/RefNameInfoDialog.d.ts +3 -6
  114. package/esm/ui/RefNameInfoDialog.js +57 -63
  115. package/esm/ui/WidgetBody.d.ts +18 -0
  116. package/esm/ui/WidgetBody.js +22 -0
  117. package/esm/ui/WidgetHeading.d.ts +7 -0
  118. package/esm/ui/WidgetHeading.js +7 -0
  119. package/esm/ui/drawerLayout.d.ts +18 -0
  120. package/esm/ui/drawerLayout.js +22 -0
  121. package/esm/ui/index.d.ts +13 -1
  122. package/esm/ui/index.js +12 -1
  123. package/esm/ui/util.d.ts +37 -4
  124. package/esm/ui/util.js +35 -38
  125. package/esm/useEngineLifecycle.d.ts +13 -0
  126. package/esm/useEngineLifecycle.js +22 -0
  127. package/package.json +11 -15
  128. package/esm/RootModel/FormatAbout.d.ts +0 -12
  129. package/esm/RootModel/FormatAbout.js +0 -15
  130. package/esm/RootModel/FormatDetails.d.ts +0 -24
  131. package/esm/RootModel/FormatDetails.js +0 -27
  132. package/esm/Session/DialogQueue.d.ts +0 -17
  133. package/esm/Session/DialogQueue.js +0 -31
@@ -1,35 +1,334 @@
1
1
  import type { BaseRootModelType } from '../RootModel/BaseRootModel.ts';
2
+ import type { HeldNode } from '../pruneUnbuildableNodes.ts';
2
3
  import type PluginManager from '@jbrowse/core/PluginManager';
3
- import type { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager';
4
+ import type { BaseAssemblyConfigModel } from '@jbrowse/core/assemblyManager';
4
5
  import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
6
+ import type { AnimationMode, DialogComponentType, TrackConfigChange } from '@jbrowse/core/util';
5
7
  import type { IAnyStateTreeNode, Instance } from '@jbrowse/mobx-state-tree';
6
- export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelType, JB_CONFIG_SCHEMA extends AnyConfigurationSchemaType>(_pluginManager: PluginManager): import("@jbrowse/mobx-state-tree").IModelType<{
8
+ type DoneCallback = (doneCallback: () => void) => [DialogComponentType, Record<string, unknown>];
9
+ /**
10
+ * #stateModel BaseSessionModel
11
+ *
12
+ * base session shared by all JBrowse products. Be careful what you include
13
+ * here, everything will use it.
14
+ */
15
+ export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelType, JB_CONFIG_SCHEMA extends AnyConfigurationSchemaType>(_pluginManager: PluginManager): import("@jbrowse/mobx-state-tree").IModelType<Omit<{
16
+ /**
17
+ * #property
18
+ */
7
19
  id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
20
+ /**
21
+ * #property
22
+ */
8
23
  name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
9
- margin: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
10
- }, {
24
+ /**
25
+ * #property
26
+ * used to keep track of which view is in focus
27
+ */
28
+ focusedViewId: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
29
+ /**
30
+ * #property
31
+ * one session-wide toggle for all region highlight bands (URL/view
32
+ * highlights and bookmark overlays)
33
+ */
34
+ highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
35
+ /**
36
+ * #property
37
+ * views, tracks, displays and widgets `pruneUnbuildableNodes` took out of
38
+ * the tree because this build has no plugin for their type, each with the
39
+ * anchor that puts it back. Opaque here on purpose — nothing in the
40
+ * session reads it, and the shape belongs to that module.
41
+ *
42
+ * It is a **declared property** rather than data riding along in the
43
+ * snapshot because MST silently drops an undeclared key: without this
44
+ * line the held nodes survive the prune and then vanish the moment
45
+ * `setSession` builds the tree, and every unit test of the prune still
46
+ * passes. `heldNodesSurviveTheSession.test.ts` is the canary.
47
+ */
48
+ heldForMissingPlugins: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<HeldNode[] | undefined, HeldNode[] | undefined, HeldNode[] | undefined>, [undefined]>;
49
+ }, never>, {
50
+ /**
51
+ * #volatile
52
+ * this is the globally "selected" object. can be anything. code that
53
+ * wants to deal with this should examine it to see what kind of thing it
54
+ * is.
55
+ */
11
56
  selection: unknown;
57
+ /**
58
+ * #volatile
59
+ * this is the globally "hovered" object. can be anything. code that
60
+ * wants to deal with this should examine it to see what kind of thing it
61
+ * is.
62
+ */
12
63
  hovered: unknown;
64
+ /**
65
+ * #volatile
66
+ */
67
+ queueOfDialogs: [DialogComponentType, Record<string, unknown>][];
68
+ /**
69
+ * #volatile
70
+ * runtime user-preference overrides keyed by preference id, resolved by
71
+ * `getPreference` against the `configuration.preferences` admin defaults.
72
+ * Empty here (config-only); products that let users edit preferences load
73
+ * and persist these via localStorage. A runtime override map layered over
74
+ * config defaults, kept off the snapshot since prefs are local UI.
75
+ *
76
+ * An `observable.map` (not a plain object reassigned wholesale) so each
77
+ * preference is its own tracked key: writing one (`setScrollZoom`) can't
78
+ * invalidate a reader of another (`getDisplayTypeDefault` in a track's
79
+ * `rpcProps`). A single spread-replaced object made every setter wake
80
+ * every reader, so toggling scroll-to-zoom re-fetched every track. For the
81
+ * same reason each promoted per-display-type default is a flat composite
82
+ * key (see `displayTypeDefaultKey`), not a single nested `displayTypeDefaults`
83
+ * object — promoting one default can't wake readers of a different one.
84
+ *
85
+ * `deep: false` is load-bearing, not a micro-optimization. The default
86
+ * enhancer wraps an object/array value in a MobX Proxy on `set`, and a
87
+ * promoted default is handed straight back out by `getConf` — so an
88
+ * object-valued promotable slot (alignments `colorBy`) put a Proxy into
89
+ * `rpcProps()`, and V8's structured-clone serializer rejects a Proxy:
90
+ * `worker.postMessage` threw `DataCloneError` on the next fetch of any
91
+ * track following that default (electron IPC and `structuredClone` in the
92
+ * share bake likewise). The map still notifies per key on `set`, so shallow
93
+ * values lose no reactivity — and nothing can mutate a preference in place,
94
+ * because `setPreferenceOverride` freezes what it stores.
95
+ */
96
+ preferencesOverrides: import("mobx").ObservableMap<string, unknown>;
13
97
  } & {
98
+ /**
99
+ * #getter
100
+ */
14
101
  readonly root: import("@jbrowse/mobx-state-tree").TypeOrStateTreeNodeToStateTreeNode<ROOT_MODEL_TYPE>;
15
102
  } & {
103
+ /**
104
+ * #getter
105
+ */
16
106
  readonly jbrowse: any;
107
+ /**
108
+ * #getter
109
+ */
17
110
  readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
111
+ /**
112
+ * #getter
113
+ */
18
114
  readonly configuration: Instance<JB_CONFIG_SCHEMA>;
115
+ /**
116
+ * #getter
117
+ */
19
118
  readonly adminMode: boolean;
20
- readonly textSearchManager: import("@jbrowse/core/util").TextSearchManager;
119
+ /**
120
+ * #getter
121
+ */
122
+ readonly textSearchManager: import("@jbrowse/core/TextSearch/TextSearchManager").default;
21
123
  } & {
22
- readonly assemblies: Instance<BaseAssemblyConfigSchema>[];
124
+ /**
125
+ * #getter
126
+ */
127
+ readonly assemblies: BaseAssemblyConfigModel[];
128
+ /**
129
+ * #getter
130
+ */
131
+ readonly DialogComponent: DialogComponentType | undefined;
132
+ /**
133
+ * #getter
134
+ */
135
+ readonly DialogProps: Record<string, unknown> | undefined;
23
136
  } & {
137
+ /**
138
+ * #method
139
+ * the admin/embedder `configuration.preferences` value for a key, ignoring
140
+ * any runtime override — i.e. what a reset falls back to. Exposed rather
141
+ * than inlined because "differs from the default" is a question the
142
+ * Preferences reset diff asks about settings this map doesn't hold (see
143
+ * `defaultUseWorkspaces`).
144
+ */
145
+ getPreferenceDefault(key: string): unknown;
146
+ /**
147
+ * #method
148
+ * resolved value of a user preference: a runtime override if the user set
149
+ * one, otherwise the admin/embedder `configuration.preferences` default.
150
+ * The override map is empty unless the product loads it (web/desktop).
151
+ */
152
+ getPreference(key: string): unknown;
153
+ /**
154
+ * #method
155
+ * resolved value of a per-display-type slot default the user promoted
156
+ * (see `setDisplayTypeDefault`); undefined when nothing was promoted.
157
+ */
158
+ getDisplayTypeDefault(displayType: string, slot: string): unknown;
159
+ /**
160
+ * #method
161
+ * every per-display-type default the user has promoted, as
162
+ * `{ displayType, slot, value }` — the inventory the Preferences dialog
163
+ * lists and clears one at a time (`setDisplayTypeDefault(…, undefined)`).
164
+ *
165
+ * Here rather than filtered out of `getPreferenceChanges` by the dialog,
166
+ * because the composite-key layout is this file's: a consumer that
167
+ * recognized these rows by matching the path head is exactly the coupling
168
+ * `DISPLAY_TYPE_DEFAULTS_PATH_HEAD` stopped being exported over, where a
169
+ * rename on one side alone silently no-ops the other.
170
+ */
171
+ getDisplayTypeDefaults(): {
172
+ displayType: string;
173
+ slot: string;
174
+ value: unknown;
175
+ }[];
176
+ /**
177
+ * #method
178
+ * every runtime preference-override that currently differs from its
179
+ * config/admin default, as `{ path, from, to }` rows — the exact set
180
+ * `clearPreferenceOverrides` reverts. Backs the confirmation diff shown
181
+ * before "Reset to defaults" (mirrors the per-track changes dialog). A
182
+ * scalar pref (animationMode, scrollZoom) whose override equals the
183
+ * default is omitted (reverting it is a no-op); each promoted
184
+ * per-display-type default is always a difference from the un-promoted
185
+ * state, so `from` reads "(default)".
186
+ */
187
+ getPreferenceChanges(): TrackConfigChange[];
188
+ } & {
189
+ /**
190
+ * #getter
191
+ * resolved feature-layout animation mode (never undefined)
192
+ */
193
+ readonly animationMode: AnimationMode;
194
+ /**
195
+ * #getter
196
+ * resolved scroll-to-zoom preference. Global and personal (never shared in
197
+ * a session snapshot); every wheel-zoom view reads this single value.
198
+ */
199
+ readonly scrollZoom: boolean;
200
+ /**
201
+ * #getter
202
+ * resolved thousand-separator preference. Read for display in the
203
+ * Preferences dialog; the formatter itself reads a plain module variable
204
+ * set at startup in each realm (see `setNumberGrouping`), because worker-
205
+ * built strings can't see a main-thread observable.
206
+ */
207
+ readonly numberGrouping: boolean;
208
+ } & {
209
+ afterAttach(): void;
210
+ /**
211
+ * #action
212
+ * set the global selection, i.e. the globally-selected object. can be a
213
+ * feature, a view, just about anything
214
+ *
215
+ * A feature is unwrapped on the way in, so app state never holds a
216
+ * jexlFeatureProxy. `isFeature` accepts a proxy, but on one `id` is a
217
+ * data field rather than the method the Feature type promises — every
218
+ * consumer doing `isFeature(selection) ? selection.id() : …` would throw.
219
+ */
24
220
  setSelection(thing: unknown): void;
221
+ /**
222
+ * #action
223
+ * clears the global selection
224
+ */
25
225
  clearSelection(): void;
226
+ /**
227
+ * #action
228
+ */
26
229
  setHovered(thing: unknown): void;
27
- }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
28
- id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
29
- name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
30
- margin: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
31
- }>>;
230
+ /**
231
+ * #action
232
+ * toggle all region highlight bands across every view
233
+ */
234
+ setHighlightsVisible(arg: boolean): void;
235
+ /**
236
+ * #action
237
+ * turn highlight bands back on, so a newly made highlight or bookmark is
238
+ * never silently swallowed by an earlier "highlights off"
239
+ */
240
+ revealHighlights(): void;
241
+ /**
242
+ * #action
243
+ * set a runtime user-preference override (see `getPreference`). Mutates
244
+ * volatile state; products persist these to localStorage. An `undefined`
245
+ * value deletes the key (rather than leaving a phantom entry that
246
+ * `getPreference` reads as absent) so the store never holds dead keys.
247
+ */
248
+ setPreferenceOverride(key: string, value: unknown): void;
249
+ /**
250
+ * #action
251
+ * clear every runtime preference override at once — scrollZoom,
252
+ * animationMode, and every promoted per-display-type default (see
253
+ * `setDisplayTypeDefault`) — so each falls back to its config/admin
254
+ * default. Backs the Preferences dialog "Reset to defaults" button.
255
+ */
256
+ clearPreferenceOverrides(): void;
257
+ /**
258
+ * #action
259
+ * clear a single runtime preference override (see `getPreference`) so it
260
+ * falls back to its config/admin default. Backs the per-entry reset in the
261
+ * Preferences dialog "Reset to defaults" confirmation.
262
+ */
263
+ clearPreferenceOverride(key: string): void;
264
+ /**
265
+ * #action
266
+ * revert one row emitted by `getPreferenceChanges`, addressed by its
267
+ * display `path`. Backs the per-entry reset in the Preferences dialog's
268
+ * "Reset to defaults" confirmation.
269
+ *
270
+ * Lives here rather than in that dialog because this model owns both path
271
+ * shapes it has to undo: a promoted per-display-type default, whose row
272
+ * path is a readable label over a flat composite storage key, and every
273
+ * other override, whose path *is* its key. The dialog used to re-derive
274
+ * the first case from an exported path-head constant.
275
+ */
276
+ resetPreferenceChange(path: string[]): void;
277
+ /**
278
+ * #action
279
+ * set the global scroll-to-zoom preference (see the `scrollZoom` getter)
280
+ */
281
+ setScrollZoom(flag: boolean): void;
282
+ /**
283
+ * #action
284
+ * promote (or, with `value` undefined, clear) a per-display-type slot
285
+ * default. Just a preference override under one flat composite key (see
286
+ * `displayTypeDefaultKey`), so it persists and independently tracks like
287
+ * any other pref, and clearing deletes only that key.
288
+ */
289
+ setDisplayTypeDefault(displayType: string, slot: string, value: unknown): void;
290
+ /**
291
+ * #action
292
+ */
293
+ setName(str: string): void;
294
+ /**
295
+ * #action
296
+ * `undefined` is "no view is focused", which the property has always been
297
+ * able to hold (`types.maybe`) and this had no way to spell. Nothing
298
+ * cleared it on teardown as a result: a view that was focused when it left
299
+ * the session left its id behind, and since every consumer compares
300
+ * `focusedViewId === view.id`, the id matched nothing, the focus ring
301
+ * vanished with nothing to say why, and the dead id persisted into a saved
302
+ * or shared session. `takeOut` clears it now.
303
+ */
304
+ setFocusedViewId(viewId: string | undefined): void;
305
+ /**
306
+ * #action
307
+ */
308
+ removeActiveDialog(): void;
309
+ /**
310
+ * #action
311
+ */
312
+ queueDialog(doneCallback: DoneCallback): void;
313
+ } & {
314
+ snackbarMessages: import("mobx").IObservableArray<import("@jbrowse/core/ui/SnackbarModel").SnackbarMessage>;
315
+ errorDialog: import("@jbrowse/core/ui/SnackbarModel").ErrorDialogState | undefined;
316
+ } & {
317
+ readonly snackbarMessageSet: Map<string, import("@jbrowse/core/ui/SnackbarModel").SnackbarMessage>;
318
+ } & {
319
+ notify(message: string, level?: import("@jbrowse/core/util").NotificationLevel, action?: import("@jbrowse/core/util").SnackAction | import("@jbrowse/core/util").SnackAction[]): void;
320
+ notifyError(errorMessage: string, error?: unknown, extra?: unknown, action?: import("@jbrowse/core/util").SnackAction): void;
321
+ setErrorDialog(state: import("@jbrowse/core/ui/SnackbarModel").ErrorDialogState | undefined): void;
322
+ pushSnackbarMessage(message: string, level?: import("@jbrowse/core/util").NotificationLevel, actions?: import("@jbrowse/core/util").SnackAction[]): void;
323
+ popSnackbarMessage(): import("@jbrowse/core/ui/SnackbarModel").SnackbarMessage | undefined;
324
+ removeSnackbarMessage(message: string): void;
325
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
326
+ /** Session mixin MST type for the most basic session */
32
327
  export type BaseSessionType = ReturnType<typeof BaseSessionModel>;
328
+ /** Instance of the most basic possible session */
33
329
  export type BaseSession = Instance<BaseSessionType>;
330
+ /** Type guard for BaseSession */
34
331
  export declare function isBaseSession(thing: IAnyStateTreeNode): thing is BaseSession;
332
+ /** Type guard for whether a thing is JBrowse session */
35
333
  export declare function isSession(thing: unknown): thing is BaseSession;
334
+ export {};