@signalsandsorcery/plugin-sdk 2.35.1 → 2.35.2

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.
package/dist/index.d.mts CHANGED
@@ -86,6 +86,40 @@ interface InstrumentDescriptor {
86
86
  /** Whether this plugin is currently installed/available */
87
87
  missing?: boolean;
88
88
  }
89
+ /**
90
+ * One FX plugin in a panel bus's chain, as shown to the panel UI. The
91
+ * engine's Volume & Pan master section and level meter are filtered OUT —
92
+ * they are the strip's fader/meter, not user FX chips.
93
+ * @since SDK 2.36.0
94
+ */
95
+ interface PanelBusFxEntry {
96
+ /**
97
+ * ENGINE chain index — pass this back to remove/bypass/editor calls.
98
+ * Not necessarily contiguous from 0: hidden master-section plugins share
99
+ * the same chain.
100
+ */
101
+ index: number;
102
+ /** Scanned plugin id (the picker's `InstrumentDescriptor.pluginId`). */
103
+ pluginId: string;
104
+ /** Display name. */
105
+ name: string;
106
+ /** False when bypassed. */
107
+ enabled: boolean;
108
+ }
109
+ /**
110
+ * A panel's mix-bus state for one scene (docs/panel-bus.md §9).
111
+ * @since SDK 2.36.0
112
+ */
113
+ interface PanelBusState {
114
+ /** False = the panel has no bus in this scene (flat routing). */
115
+ engaged: boolean;
116
+ /** Master fader in dB (0 = unity). */
117
+ volume: number;
118
+ muted: boolean;
119
+ soloed: boolean;
120
+ /** User FX chain, top-to-bottom (master section excluded). */
121
+ fx: PanelBusFxEntry[];
122
+ }
89
123
  /** Every generator plugin must implement this interface. */
90
124
  interface GeneratorPlugin {
91
125
  /** Unique ID, npm-style scope: '@sas/synth-generator', '@user/my-plugin' */
@@ -565,6 +599,43 @@ interface PluginHost {
565
599
  * origin/target scenes). Optional — callers MUST null-check. @since SDK 2.26.0
566
600
  */
567
601
  getSceneName?(sceneDbId: string): Promise<string | null>;
602
+ /**
603
+ * FX plugins available for the bus picker (scanned, non-instrument).
604
+ * Same descriptor shape as `getAvailableInstruments` by design — the SDK
605
+ * picker components consume one type.
606
+ */
607
+ getAvailableFx?(): Promise<InstrumentDescriptor[]>;
608
+ /**
609
+ * The panel's bus state for a scene. `{ engaged: false, … }` when the
610
+ * panel has no bus there — reading NEVER creates one. When engaged, this
611
+ * also (re)realizes the bus in the engine (adopt-by-marker; rebuild from
612
+ * the persisted blob only after a `.sasproj` import) and routes any
613
+ * not-yet-routed panel tracks through it, so calling it from `loadTracks`
614
+ * is the panel's whole reload story.
615
+ */
616
+ getPanelBusState?(sceneId: string): Promise<PanelBusState>;
617
+ /** Master fader in dB (engages the bus on first use). */
618
+ setPanelBusVolume?(sceneId: string, volumeDb: number): Promise<void>;
619
+ /** Bus mute — silences the whole panel (multiplies with per-track mutes). */
620
+ setPanelBusMute?(sceneId: string, muted: boolean): Promise<void>;
621
+ /** Panel solo — composes with track solo via the engine's solo rules. */
622
+ setPanelBusSolo?(sceneId: string, soloed: boolean): Promise<void>;
623
+ /**
624
+ * Add an FX plugin (by scanned pluginId) to the bus chain, engaging the
625
+ * bus if needed. Instruments are rejected engine-side.
626
+ */
627
+ loadPanelBusFx?(sceneId: string, pluginId: string): Promise<PanelBusFxEntry>;
628
+ /** Remove a bus FX by its `PanelBusFxEntry.index`. */
629
+ removePanelBusFx?(sceneId: string, fxIndex: number): Promise<void>;
630
+ /** Bypass toggle for a bus FX by its `PanelBusFxEntry.index`. */
631
+ setPanelBusFxEnabled?(sceneId: string, fxIndex: number, enabled: boolean): Promise<void>;
632
+ /** Open the native editor window for a bus FX. */
633
+ showPanelBusFxEditor?(sceneId: string, fxIndex: number): Promise<void>;
634
+ /**
635
+ * Disengage the bus: FX chain removed, tracks reparented back under the
636
+ * scene, persisted state deleted. The panel returns to flat routing.
637
+ */
638
+ disengagePanelBus?(sceneId: string): Promise<void>;
568
639
  /** Subscribe to transport state changes. Returns unsubscribe function. */
569
640
  onTransportEvent(listener: TransportEventListener): UnsubscribeFn;
570
641
  /** Subscribe to deck boundary events. Returns unsubscribe function. */
@@ -3528,6 +3599,87 @@ interface VolumeSliderProps {
3528
3599
  }
3529
3600
  declare const VolumeSlider: React$1.FC<VolumeSliderProps>;
3530
3601
 
3602
+ /**
3603
+ * PanelMasterStrip — the panel's mix-bus master section (docs/panel-bus.md §10).
3604
+ *
3605
+ * One compact strip: BUS label + master fader + M/S + the bus FX chain as
3606
+ * chips (bypass toggle, remove, optional native-editor open) + an "FX +"
3607
+ * picker that reuses the TrackDrawer Pick-tab grid idiom over FX descriptors.
3608
+ *
3609
+ * Fully CONTROLLED and presentational: the panel owns `bus` (from
3610
+ * `host.getPanelBusState`), the picker-open flag, and wires every callback to
3611
+ * the corresponding `host.*PanelBus*` method. A disengaged bus renders the
3612
+ * same strip at neutral values — the first interaction engages it host-side,
3613
+ * so there is no separate "create bus" affordance to learn.
3614
+ */
3615
+
3616
+ interface PanelMasterStripProps {
3617
+ /** Bus state from `host.getPanelBusState(sceneId)`. */
3618
+ bus: PanelBusState;
3619
+ /** FX descriptors from `host.getAvailableFx()` (lazy-load on picker open). */
3620
+ availableFx?: InstrumentDescriptor[];
3621
+ /** True while `availableFx` is loading. */
3622
+ fxLoading?: boolean;
3623
+ /**
3624
+ * Another panel/track solo is active and this bus is NOT soloed — render
3625
+ * dimmed, mirroring TrackRow's soloed-out treatment. Feed
3626
+ * `anySolo && !bus.soloed` from the panel's `useAnySolo(host)` hook.
3627
+ */
3628
+ soloedOut?: boolean;
3629
+ /** Disable all controls (e.g. while the panel is generating). */
3630
+ disabled?: boolean;
3631
+ /** Controlled FX-picker visibility. */
3632
+ fxPickerOpen: boolean;
3633
+ onToggleFxPicker: (open: boolean) => void;
3634
+ /** Re-scan / refresh the FX list. */
3635
+ onRefreshFx?: () => void;
3636
+ onVolumeChange: (volumeDb: number) => void;
3637
+ onMuteToggle: () => void;
3638
+ onSoloToggle: () => void;
3639
+ onAddFx: (pluginId: string) => void;
3640
+ onRemoveFx: (fxIndex: number) => void;
3641
+ onToggleFxEnabled: (fxIndex: number, enabled: boolean) => void;
3642
+ /** Optional: open the FX plugin's native editor window. */
3643
+ onShowFxEditor?: (fxIndex: number) => void;
3644
+ }
3645
+ declare function PanelMasterStrip({ bus, availableFx, fxLoading, soloedOut, disabled, fxPickerOpen, onToggleFxPicker, onRefreshFx, onVolumeChange, onMuteToggle, onSoloToggle, onAddFx, onRemoveFx, onToggleFxEnabled, onShowFxEditor, }: PanelMasterStripProps): React$1.ReactElement;
3646
+
3647
+ /**
3648
+ * usePanelBus — panel-side state + handlers for the PanelMasterStrip
3649
+ * (docs/panel-bus.md §11).
3650
+ *
3651
+ * Feature-gated: `supported` is false on hosts without the panel-bus surface
3652
+ * (older app builds), and every consumer should render nothing in that case —
3653
+ * the strip must never appear on a host that can't back it. Reading state
3654
+ * NEVER engages a bus; the first mutation (fader move / FX add) does, host-side.
3655
+ *
3656
+ * Reload story: state re-reads on scene change and after every mutation.
3657
+ * `getPanelBusState` host-side also (re)realizes the bus (adopt-by-marker)
3658
+ * and routes not-yet-routed panel tracks, so calling `reload()` from the
3659
+ * panel's track-reload path keeps everything converged with zero extra wiring.
3660
+ */
3661
+
3662
+ interface UsePanelBusResult {
3663
+ /** False on pre-2.36 hosts — render no strip. */
3664
+ supported: boolean;
3665
+ /** Null until the first load completes for the current scene. */
3666
+ bus: PanelBusState | null;
3667
+ availableFx: InstrumentDescriptor[];
3668
+ fxLoading: boolean;
3669
+ fxPickerOpen: boolean;
3670
+ setFxPickerOpen: (open: boolean) => void;
3671
+ refreshFx: () => void;
3672
+ reload: () => Promise<void>;
3673
+ onVolumeChange: (volumeDb: number) => void;
3674
+ onMuteToggle: () => void;
3675
+ onSoloToggle: () => void;
3676
+ onAddFx: (pluginId: string) => void;
3677
+ onRemoveFx: (fxIndex: number) => void;
3678
+ onToggleFxEnabled: (fxIndex: number, enabled: boolean) => void;
3679
+ onShowFxEditor: (fxIndex: number) => void;
3680
+ }
3681
+ declare function usePanelBus(host: PluginHost, activeSceneId: string | null): UsePanelBusResult;
3682
+
3531
3683
  /**
3532
3684
  * PanSlider Component
3533
3685
  *
@@ -4658,7 +4810,7 @@ declare function useAnySolo(host: Pick<PluginHost, 'isAnySoloActive' | 'onTrackS
4658
4810
  * Registry checks semver.gte(PLUGIN_SDK_VERSION, manifest.minHostVersion)
4659
4811
  * during activation and marks incompatible plugins accordingly.
4660
4812
  */
4661
- declare const PLUGIN_SDK_VERSION = "2.35.0";
4813
+ declare const PLUGIN_SDK_VERSION = "2.37.0";
4662
4814
 
4663
4815
  /**
4664
4816
  * FX Preset Definitions
@@ -4806,4 +4958,4 @@ interface PickTopKOptions {
4806
4958
  */
4807
4959
  declare function pickTopKWeighted<T>(scored: ReadonlyArray<ScoredCandidate<T>>, options?: PickTopKOptions): T | null;
4808
4960
 
4809
- export { AUDIO_EFFECTS, AUDIO_EFFECT_LABEL, type AudioEffect, type AudioInputDevice, type BulkAddPlaceholderTrack, type ComposeProgressEvent, type ComposeProgressListener, type ComposeSceneOptions, type ComposeSceneResult, ConfirmDialog, type ConfirmDialogProps, type CoreTrackHandlers, type CreateTrackOptions, type CrossfadeInpaintInput, type CrossfadeLayer, type CrossfadeMeta, CrossfadeModal, type CrossfadeModalProps, type CrossfadePairMeta, type CrossfadeSelection, type CrossfadeSlot, CrossfadeTrackRow, type CrossfadeTrackRowProps, type CrossfadeVolumeCurves, DB_MAX, DB_MIN, DEFAULT_FX_CATEGORY_DETAIL, DEFAULT_FX_DRY_WET, DRAG_DEAD_ZONE, type DeckBoundaryEvent, type DeckBoundaryListener, type DesignerRowSlots, DownloadPackButton, type DownloadPackButtonProps, type DownloadPackButtonVariant, type DrawerTab, type DrumKit, EMPTY_FX_DETAIL_STATE, EMPTY_FX_STATE, EQUAL_POWER_GAIN, type ExportMidiBundleOptions, type ExportMidiBundleResult, type ExportedPluginData, FX_CATEGORIES, FX_CHAIN_ORDER, FX_DISPLAY_LABELS, FX_ENGINE_PLUGIN_NAMES, FX_PRESET_CONFIGS, type FadeDirection, type FadeEntry, type FadeGesture, type FadeLayer, type FadeMeta, FadeModal, type FadeModalProps, type FadeSelection, FadeTrackRow, type FadeTrackRowProps, type FxCategory, type FxCategoryDetailState, type FxPreset, type FxPresetConfig, type FxPresetData, type FxPresetDataEntry, FxToggleBar, type FxToggleBarProps, GUTTER_W, type GenerationServices, type GeneratorPanelAdapter, type GeneratorPanelCore, GeneratorPanelShell, type GeneratorPanelShellProps, type GeneratorPanelSlots, type GeneratorPlugin, type GeneratorTrackState, type GeneratorType, type GroupParseSpec, type GroupRenderContext, type ImportCandidateScene, type ImportCandidateTrack, ImportTrackModal, type ImportTrackModalProps, type InstrumentDescriptor, TrackDrawer as InstrumentDrawer, type TrackDrawerProps as InstrumentDrawerProps, type InstrumentSampler, type InstrumentZone, type LLMCandidate, type LLMContent, type LLMFunctionDeclaration, type LLMGenerationConfig, type LLMGenerationRequest, type LLMGenerationResult, type LLMNoteResponse, type LLMPart, type LLMSystemInstruction, type LLMTool, type LLMToolUseRequest, type LLMToolUseResponse, type LLMUsageMetadata, LevelMeter, type LevelMeterProps, type ListAudioFilesOptions, type ListImportableTracksOptions, type MidiClipData, type MidiWriteResult, type MixInterpolation, Modal, type ModalProps, type MusicalContext, OffsetScrubber, type OffsetScrubberProps, PLUGIN_SDK_VERSION, PX_PER_BEAT, PanSlider, type PanelFeatureFlags, type PanelGenerationStrategy, type PanelGroupExtension, type PanelIdentity, type PanelShuffleAdapter, type PanelSoundAdapter, type PeakAnalysis, PianoRollEditor, type PianoRollEditorProps, type PickTopKOptions, type PluginAppTool, type PluginAppToolInputSchema, type PluginAppToolResult, type PluginAudioTextureRequest, type PluginAudioTextureResult, type PluginCapabilities, type PluginChordSegment, type PluginChordTiming, type PluginConcurrentTrackInfo, type PluginCuePoints, type PluginDownloadOptions, PluginError, type PluginErrorCode, type PluginFileDialogOptions, type PluginFxCategoryDetailState, type PluginGenerationContext, type PluginHost, type PluginHttpRequestOptions, type PluginHttpResponse, type PluginManifest, type PluginMidiNote, type PluginPresetData, type PluginPresetInfo, type PluginRegistration, type PluginSampleFilter, type PluginSampleImportResult, type PluginSampleInfo, type PluginSampleTrackInfo, type PluginSceneContext, type PluginSceneInfo, type PluginSettingsSchema, type PluginSettingsStore, type PluginSkill, type PluginSkillInputSchema, type PluginStatus, type PluginStemSplitResult, type PluginStemTrackInfo, type PluginSynthInfo, type PluginTrackFxDetailState, type PluginTrackHandle, type PluginTrackInfo, type PluginTrackLevel, type PluginTrackRuntimeState, type PluginTransportState, type PluginTrimWindow, type PluginUIProps, type PostProcessOptions, RESIZE_HANDLE_PX, ROW_HEIGHT, type ReadMidiClip, type ReadMidiResult, type RecordingChunkFinalizedEvent, type RecordingTargetInfo, type ResolveGroupsOptions, type ResolvedCrossfadePair, type ResolvedFade, type ResolvedGroupsResult, type ResolvedTrackGroup, type SDKTrackRowProps, SLIDER_UNITY, SamplePackCTACard, type SamplePackCTACardProps, type SamplePackCTACardStatus, type SamplePackCardInfo, type SavePluginPresetOptions, type SceneChangeListener, type SceneFamilyTrack, type ScoredCandidate, ScrollingWaveform, type ScrollingWaveformProps, type SettingDefinition, type ShufflePresetResult, SorceryProgressBar, type SoundHistoryEntry, type StemType, type SurgeSoundAdapterOverrides, type SynthesizeCuePointsOptions, TEXTURAL_ROLES, TRANSITION_DESIGNER_DRAFT_KEY, TrackDrawer, type TrackDrawerProps, type TrackFxDetailState, type TrackFxState, type TrackGroupMember, type TrackGroupMeta, type TrackLevelsHandle, TrackMeterStrip, type TrackMeterStripProps, type TrackMeterView, TrackRow, type TrackRowDragProps, type TrackSoundHistory, type TrackSoundSnapshot, type TrackStateChangeListener, TransitionDesigner, type TransitionDesignerDraft, type TransitionDesignerProps, type TransitionOps, type TransitionRowType, type TransportEvent, type TransportEventListener, type UnsubscribeFn, type UseGeneratorPanelCoreOptions, type UseSoundHistoryOptions, type UseSoundHistoryResult, type UseTrackReorderOptions, type UseTrackReorderResult, type UseTransitionOpsInputs, type VolumeAutomationPoint, VolumeSlider, type WaveformPeaks, WaveformView, type WaveformViewProps, analyzeWavPeak, asAudioEffect, asCrossfadeMeta, asFadeMeta, asTransitionDesignerDraft, buildCrossfadeInpaintPrompt, buildCrossfadeVolumeCurves, buildFadeVolumeCurve, buildRowSlots, calculateTimeBasedTarget, cellToPx, centerScrollTop, computePeaks, createSurgeSoundAdapter, dbIdsFromKeys, dbToSlider, defaultFadeGesture, drawWaveform, formatConcurrentTracks, hashString, moveItem, newTrackState, normalizeSlots, padPair, padSlots, parseCrossfadePairs, parseFades, parseLLMNoteResponse, parseTrackGroups, pickTopKWeighted, pitchToName, pluginFxToToggleFx, pxToCell, reconcileSlots, resizeNoteDuration, resolveTrackGroups, rowKey, rowType, scorePromptMatch, sliderToDb, slotsEqual, soundIdentity, synthesizeCuePoints, tokenizePrompt, trackDataKey, transposeNotes, useAnySolo, useGeneratorPanelCore, useSceneState, useSoundHistory, useTrackLevel, useTrackLevels, useTrackMeter, useTrackReorder, useTransitionOps, useTransportPlaying };
4961
+ export { AUDIO_EFFECTS, AUDIO_EFFECT_LABEL, type AudioEffect, type AudioInputDevice, type BulkAddPlaceholderTrack, type ComposeProgressEvent, type ComposeProgressListener, type ComposeSceneOptions, type ComposeSceneResult, ConfirmDialog, type ConfirmDialogProps, type CoreTrackHandlers, type CreateTrackOptions, type CrossfadeInpaintInput, type CrossfadeLayer, type CrossfadeMeta, CrossfadeModal, type CrossfadeModalProps, type CrossfadePairMeta, type CrossfadeSelection, type CrossfadeSlot, CrossfadeTrackRow, type CrossfadeTrackRowProps, type CrossfadeVolumeCurves, DB_MAX, DB_MIN, DEFAULT_FX_CATEGORY_DETAIL, DEFAULT_FX_DRY_WET, DRAG_DEAD_ZONE, type DeckBoundaryEvent, type DeckBoundaryListener, type DesignerRowSlots, DownloadPackButton, type DownloadPackButtonProps, type DownloadPackButtonVariant, type DrawerTab, type DrumKit, EMPTY_FX_DETAIL_STATE, EMPTY_FX_STATE, EQUAL_POWER_GAIN, type ExportMidiBundleOptions, type ExportMidiBundleResult, type ExportedPluginData, FX_CATEGORIES, FX_CHAIN_ORDER, FX_DISPLAY_LABELS, FX_ENGINE_PLUGIN_NAMES, FX_PRESET_CONFIGS, type FadeDirection, type FadeEntry, type FadeGesture, type FadeLayer, type FadeMeta, FadeModal, type FadeModalProps, type FadeSelection, FadeTrackRow, type FadeTrackRowProps, type FxCategory, type FxCategoryDetailState, type FxPreset, type FxPresetConfig, type FxPresetData, type FxPresetDataEntry, FxToggleBar, type FxToggleBarProps, GUTTER_W, type GenerationServices, type GeneratorPanelAdapter, type GeneratorPanelCore, GeneratorPanelShell, type GeneratorPanelShellProps, type GeneratorPanelSlots, type GeneratorPlugin, type GeneratorTrackState, type GeneratorType, type GroupParseSpec, type GroupRenderContext, type ImportCandidateScene, type ImportCandidateTrack, ImportTrackModal, type ImportTrackModalProps, type InstrumentDescriptor, TrackDrawer as InstrumentDrawer, type TrackDrawerProps as InstrumentDrawerProps, type InstrumentSampler, type InstrumentZone, type LLMCandidate, type LLMContent, type LLMFunctionDeclaration, type LLMGenerationConfig, type LLMGenerationRequest, type LLMGenerationResult, type LLMNoteResponse, type LLMPart, type LLMSystemInstruction, type LLMTool, type LLMToolUseRequest, type LLMToolUseResponse, type LLMUsageMetadata, LevelMeter, type LevelMeterProps, type ListAudioFilesOptions, type ListImportableTracksOptions, type MidiClipData, type MidiWriteResult, type MixInterpolation, Modal, type ModalProps, type MusicalContext, OffsetScrubber, type OffsetScrubberProps, PLUGIN_SDK_VERSION, PX_PER_BEAT, PanSlider, type PanelBusFxEntry, type PanelBusState, type PanelFeatureFlags, type PanelGenerationStrategy, type PanelGroupExtension, type PanelIdentity, PanelMasterStrip, type PanelMasterStripProps, type PanelShuffleAdapter, type PanelSoundAdapter, type PeakAnalysis, PianoRollEditor, type PianoRollEditorProps, type PickTopKOptions, type PluginAppTool, type PluginAppToolInputSchema, type PluginAppToolResult, type PluginAudioTextureRequest, type PluginAudioTextureResult, type PluginCapabilities, type PluginChordSegment, type PluginChordTiming, type PluginConcurrentTrackInfo, type PluginCuePoints, type PluginDownloadOptions, PluginError, type PluginErrorCode, type PluginFileDialogOptions, type PluginFxCategoryDetailState, type PluginGenerationContext, type PluginHost, type PluginHttpRequestOptions, type PluginHttpResponse, type PluginManifest, type PluginMidiNote, type PluginPresetData, type PluginPresetInfo, type PluginRegistration, type PluginSampleFilter, type PluginSampleImportResult, type PluginSampleInfo, type PluginSampleTrackInfo, type PluginSceneContext, type PluginSceneInfo, type PluginSettingsSchema, type PluginSettingsStore, type PluginSkill, type PluginSkillInputSchema, type PluginStatus, type PluginStemSplitResult, type PluginStemTrackInfo, type PluginSynthInfo, type PluginTrackFxDetailState, type PluginTrackHandle, type PluginTrackInfo, type PluginTrackLevel, type PluginTrackRuntimeState, type PluginTransportState, type PluginTrimWindow, type PluginUIProps, type PostProcessOptions, RESIZE_HANDLE_PX, ROW_HEIGHT, type ReadMidiClip, type ReadMidiResult, type RecordingChunkFinalizedEvent, type RecordingTargetInfo, type ResolveGroupsOptions, type ResolvedCrossfadePair, type ResolvedFade, type ResolvedGroupsResult, type ResolvedTrackGroup, type SDKTrackRowProps, SLIDER_UNITY, SamplePackCTACard, type SamplePackCTACardProps, type SamplePackCTACardStatus, type SamplePackCardInfo, type SavePluginPresetOptions, type SceneChangeListener, type SceneFamilyTrack, type ScoredCandidate, ScrollingWaveform, type ScrollingWaveformProps, type SettingDefinition, type ShufflePresetResult, SorceryProgressBar, type SoundHistoryEntry, type StemType, type SurgeSoundAdapterOverrides, type SynthesizeCuePointsOptions, TEXTURAL_ROLES, TRANSITION_DESIGNER_DRAFT_KEY, TrackDrawer, type TrackDrawerProps, type TrackFxDetailState, type TrackFxState, type TrackGroupMember, type TrackGroupMeta, type TrackLevelsHandle, TrackMeterStrip, type TrackMeterStripProps, type TrackMeterView, TrackRow, type TrackRowDragProps, type TrackSoundHistory, type TrackSoundSnapshot, type TrackStateChangeListener, TransitionDesigner, type TransitionDesignerDraft, type TransitionDesignerProps, type TransitionOps, type TransitionRowType, type TransportEvent, type TransportEventListener, type UnsubscribeFn, type UseGeneratorPanelCoreOptions, type UsePanelBusResult, type UseSoundHistoryOptions, type UseSoundHistoryResult, type UseTrackReorderOptions, type UseTrackReorderResult, type UseTransitionOpsInputs, type VolumeAutomationPoint, VolumeSlider, type WaveformPeaks, WaveformView, type WaveformViewProps, analyzeWavPeak, asAudioEffect, asCrossfadeMeta, asFadeMeta, asTransitionDesignerDraft, buildCrossfadeInpaintPrompt, buildCrossfadeVolumeCurves, buildFadeVolumeCurve, buildRowSlots, calculateTimeBasedTarget, cellToPx, centerScrollTop, computePeaks, createSurgeSoundAdapter, dbIdsFromKeys, dbToSlider, defaultFadeGesture, drawWaveform, formatConcurrentTracks, hashString, moveItem, newTrackState, normalizeSlots, padPair, padSlots, parseCrossfadePairs, parseFades, parseLLMNoteResponse, parseTrackGroups, pickTopKWeighted, pitchToName, pluginFxToToggleFx, pxToCell, reconcileSlots, resizeNoteDuration, resolveTrackGroups, rowKey, rowType, scorePromptMatch, sliderToDb, slotsEqual, soundIdentity, synthesizeCuePoints, tokenizePrompt, trackDataKey, transposeNotes, useAnySolo, useGeneratorPanelCore, usePanelBus, useSceneState, useSoundHistory, useTrackLevel, useTrackLevels, useTrackMeter, useTrackReorder, useTransitionOps, useTransportPlaying };
package/dist/index.d.ts CHANGED
@@ -86,6 +86,40 @@ interface InstrumentDescriptor {
86
86
  /** Whether this plugin is currently installed/available */
87
87
  missing?: boolean;
88
88
  }
89
+ /**
90
+ * One FX plugin in a panel bus's chain, as shown to the panel UI. The
91
+ * engine's Volume & Pan master section and level meter are filtered OUT —
92
+ * they are the strip's fader/meter, not user FX chips.
93
+ * @since SDK 2.36.0
94
+ */
95
+ interface PanelBusFxEntry {
96
+ /**
97
+ * ENGINE chain index — pass this back to remove/bypass/editor calls.
98
+ * Not necessarily contiguous from 0: hidden master-section plugins share
99
+ * the same chain.
100
+ */
101
+ index: number;
102
+ /** Scanned plugin id (the picker's `InstrumentDescriptor.pluginId`). */
103
+ pluginId: string;
104
+ /** Display name. */
105
+ name: string;
106
+ /** False when bypassed. */
107
+ enabled: boolean;
108
+ }
109
+ /**
110
+ * A panel's mix-bus state for one scene (docs/panel-bus.md §9).
111
+ * @since SDK 2.36.0
112
+ */
113
+ interface PanelBusState {
114
+ /** False = the panel has no bus in this scene (flat routing). */
115
+ engaged: boolean;
116
+ /** Master fader in dB (0 = unity). */
117
+ volume: number;
118
+ muted: boolean;
119
+ soloed: boolean;
120
+ /** User FX chain, top-to-bottom (master section excluded). */
121
+ fx: PanelBusFxEntry[];
122
+ }
89
123
  /** Every generator plugin must implement this interface. */
90
124
  interface GeneratorPlugin {
91
125
  /** Unique ID, npm-style scope: '@sas/synth-generator', '@user/my-plugin' */
@@ -565,6 +599,43 @@ interface PluginHost {
565
599
  * origin/target scenes). Optional — callers MUST null-check. @since SDK 2.26.0
566
600
  */
567
601
  getSceneName?(sceneDbId: string): Promise<string | null>;
602
+ /**
603
+ * FX plugins available for the bus picker (scanned, non-instrument).
604
+ * Same descriptor shape as `getAvailableInstruments` by design — the SDK
605
+ * picker components consume one type.
606
+ */
607
+ getAvailableFx?(): Promise<InstrumentDescriptor[]>;
608
+ /**
609
+ * The panel's bus state for a scene. `{ engaged: false, … }` when the
610
+ * panel has no bus there — reading NEVER creates one. When engaged, this
611
+ * also (re)realizes the bus in the engine (adopt-by-marker; rebuild from
612
+ * the persisted blob only after a `.sasproj` import) and routes any
613
+ * not-yet-routed panel tracks through it, so calling it from `loadTracks`
614
+ * is the panel's whole reload story.
615
+ */
616
+ getPanelBusState?(sceneId: string): Promise<PanelBusState>;
617
+ /** Master fader in dB (engages the bus on first use). */
618
+ setPanelBusVolume?(sceneId: string, volumeDb: number): Promise<void>;
619
+ /** Bus mute — silences the whole panel (multiplies with per-track mutes). */
620
+ setPanelBusMute?(sceneId: string, muted: boolean): Promise<void>;
621
+ /** Panel solo — composes with track solo via the engine's solo rules. */
622
+ setPanelBusSolo?(sceneId: string, soloed: boolean): Promise<void>;
623
+ /**
624
+ * Add an FX plugin (by scanned pluginId) to the bus chain, engaging the
625
+ * bus if needed. Instruments are rejected engine-side.
626
+ */
627
+ loadPanelBusFx?(sceneId: string, pluginId: string): Promise<PanelBusFxEntry>;
628
+ /** Remove a bus FX by its `PanelBusFxEntry.index`. */
629
+ removePanelBusFx?(sceneId: string, fxIndex: number): Promise<void>;
630
+ /** Bypass toggle for a bus FX by its `PanelBusFxEntry.index`. */
631
+ setPanelBusFxEnabled?(sceneId: string, fxIndex: number, enabled: boolean): Promise<void>;
632
+ /** Open the native editor window for a bus FX. */
633
+ showPanelBusFxEditor?(sceneId: string, fxIndex: number): Promise<void>;
634
+ /**
635
+ * Disengage the bus: FX chain removed, tracks reparented back under the
636
+ * scene, persisted state deleted. The panel returns to flat routing.
637
+ */
638
+ disengagePanelBus?(sceneId: string): Promise<void>;
568
639
  /** Subscribe to transport state changes. Returns unsubscribe function. */
569
640
  onTransportEvent(listener: TransportEventListener): UnsubscribeFn;
570
641
  /** Subscribe to deck boundary events. Returns unsubscribe function. */
@@ -3528,6 +3599,87 @@ interface VolumeSliderProps {
3528
3599
  }
3529
3600
  declare const VolumeSlider: React$1.FC<VolumeSliderProps>;
3530
3601
 
3602
+ /**
3603
+ * PanelMasterStrip — the panel's mix-bus master section (docs/panel-bus.md §10).
3604
+ *
3605
+ * One compact strip: BUS label + master fader + M/S + the bus FX chain as
3606
+ * chips (bypass toggle, remove, optional native-editor open) + an "FX +"
3607
+ * picker that reuses the TrackDrawer Pick-tab grid idiom over FX descriptors.
3608
+ *
3609
+ * Fully CONTROLLED and presentational: the panel owns `bus` (from
3610
+ * `host.getPanelBusState`), the picker-open flag, and wires every callback to
3611
+ * the corresponding `host.*PanelBus*` method. A disengaged bus renders the
3612
+ * same strip at neutral values — the first interaction engages it host-side,
3613
+ * so there is no separate "create bus" affordance to learn.
3614
+ */
3615
+
3616
+ interface PanelMasterStripProps {
3617
+ /** Bus state from `host.getPanelBusState(sceneId)`. */
3618
+ bus: PanelBusState;
3619
+ /** FX descriptors from `host.getAvailableFx()` (lazy-load on picker open). */
3620
+ availableFx?: InstrumentDescriptor[];
3621
+ /** True while `availableFx` is loading. */
3622
+ fxLoading?: boolean;
3623
+ /**
3624
+ * Another panel/track solo is active and this bus is NOT soloed — render
3625
+ * dimmed, mirroring TrackRow's soloed-out treatment. Feed
3626
+ * `anySolo && !bus.soloed` from the panel's `useAnySolo(host)` hook.
3627
+ */
3628
+ soloedOut?: boolean;
3629
+ /** Disable all controls (e.g. while the panel is generating). */
3630
+ disabled?: boolean;
3631
+ /** Controlled FX-picker visibility. */
3632
+ fxPickerOpen: boolean;
3633
+ onToggleFxPicker: (open: boolean) => void;
3634
+ /** Re-scan / refresh the FX list. */
3635
+ onRefreshFx?: () => void;
3636
+ onVolumeChange: (volumeDb: number) => void;
3637
+ onMuteToggle: () => void;
3638
+ onSoloToggle: () => void;
3639
+ onAddFx: (pluginId: string) => void;
3640
+ onRemoveFx: (fxIndex: number) => void;
3641
+ onToggleFxEnabled: (fxIndex: number, enabled: boolean) => void;
3642
+ /** Optional: open the FX plugin's native editor window. */
3643
+ onShowFxEditor?: (fxIndex: number) => void;
3644
+ }
3645
+ declare function PanelMasterStrip({ bus, availableFx, fxLoading, soloedOut, disabled, fxPickerOpen, onToggleFxPicker, onRefreshFx, onVolumeChange, onMuteToggle, onSoloToggle, onAddFx, onRemoveFx, onToggleFxEnabled, onShowFxEditor, }: PanelMasterStripProps): React$1.ReactElement;
3646
+
3647
+ /**
3648
+ * usePanelBus — panel-side state + handlers for the PanelMasterStrip
3649
+ * (docs/panel-bus.md §11).
3650
+ *
3651
+ * Feature-gated: `supported` is false on hosts without the panel-bus surface
3652
+ * (older app builds), and every consumer should render nothing in that case —
3653
+ * the strip must never appear on a host that can't back it. Reading state
3654
+ * NEVER engages a bus; the first mutation (fader move / FX add) does, host-side.
3655
+ *
3656
+ * Reload story: state re-reads on scene change and after every mutation.
3657
+ * `getPanelBusState` host-side also (re)realizes the bus (adopt-by-marker)
3658
+ * and routes not-yet-routed panel tracks, so calling `reload()` from the
3659
+ * panel's track-reload path keeps everything converged with zero extra wiring.
3660
+ */
3661
+
3662
+ interface UsePanelBusResult {
3663
+ /** False on pre-2.36 hosts — render no strip. */
3664
+ supported: boolean;
3665
+ /** Null until the first load completes for the current scene. */
3666
+ bus: PanelBusState | null;
3667
+ availableFx: InstrumentDescriptor[];
3668
+ fxLoading: boolean;
3669
+ fxPickerOpen: boolean;
3670
+ setFxPickerOpen: (open: boolean) => void;
3671
+ refreshFx: () => void;
3672
+ reload: () => Promise<void>;
3673
+ onVolumeChange: (volumeDb: number) => void;
3674
+ onMuteToggle: () => void;
3675
+ onSoloToggle: () => void;
3676
+ onAddFx: (pluginId: string) => void;
3677
+ onRemoveFx: (fxIndex: number) => void;
3678
+ onToggleFxEnabled: (fxIndex: number, enabled: boolean) => void;
3679
+ onShowFxEditor: (fxIndex: number) => void;
3680
+ }
3681
+ declare function usePanelBus(host: PluginHost, activeSceneId: string | null): UsePanelBusResult;
3682
+
3531
3683
  /**
3532
3684
  * PanSlider Component
3533
3685
  *
@@ -4658,7 +4810,7 @@ declare function useAnySolo(host: Pick<PluginHost, 'isAnySoloActive' | 'onTrackS
4658
4810
  * Registry checks semver.gte(PLUGIN_SDK_VERSION, manifest.minHostVersion)
4659
4811
  * during activation and marks incompatible plugins accordingly.
4660
4812
  */
4661
- declare const PLUGIN_SDK_VERSION = "2.35.0";
4813
+ declare const PLUGIN_SDK_VERSION = "2.37.0";
4662
4814
 
4663
4815
  /**
4664
4816
  * FX Preset Definitions
@@ -4806,4 +4958,4 @@ interface PickTopKOptions {
4806
4958
  */
4807
4959
  declare function pickTopKWeighted<T>(scored: ReadonlyArray<ScoredCandidate<T>>, options?: PickTopKOptions): T | null;
4808
4960
 
4809
- export { AUDIO_EFFECTS, AUDIO_EFFECT_LABEL, type AudioEffect, type AudioInputDevice, type BulkAddPlaceholderTrack, type ComposeProgressEvent, type ComposeProgressListener, type ComposeSceneOptions, type ComposeSceneResult, ConfirmDialog, type ConfirmDialogProps, type CoreTrackHandlers, type CreateTrackOptions, type CrossfadeInpaintInput, type CrossfadeLayer, type CrossfadeMeta, CrossfadeModal, type CrossfadeModalProps, type CrossfadePairMeta, type CrossfadeSelection, type CrossfadeSlot, CrossfadeTrackRow, type CrossfadeTrackRowProps, type CrossfadeVolumeCurves, DB_MAX, DB_MIN, DEFAULT_FX_CATEGORY_DETAIL, DEFAULT_FX_DRY_WET, DRAG_DEAD_ZONE, type DeckBoundaryEvent, type DeckBoundaryListener, type DesignerRowSlots, DownloadPackButton, type DownloadPackButtonProps, type DownloadPackButtonVariant, type DrawerTab, type DrumKit, EMPTY_FX_DETAIL_STATE, EMPTY_FX_STATE, EQUAL_POWER_GAIN, type ExportMidiBundleOptions, type ExportMidiBundleResult, type ExportedPluginData, FX_CATEGORIES, FX_CHAIN_ORDER, FX_DISPLAY_LABELS, FX_ENGINE_PLUGIN_NAMES, FX_PRESET_CONFIGS, type FadeDirection, type FadeEntry, type FadeGesture, type FadeLayer, type FadeMeta, FadeModal, type FadeModalProps, type FadeSelection, FadeTrackRow, type FadeTrackRowProps, type FxCategory, type FxCategoryDetailState, type FxPreset, type FxPresetConfig, type FxPresetData, type FxPresetDataEntry, FxToggleBar, type FxToggleBarProps, GUTTER_W, type GenerationServices, type GeneratorPanelAdapter, type GeneratorPanelCore, GeneratorPanelShell, type GeneratorPanelShellProps, type GeneratorPanelSlots, type GeneratorPlugin, type GeneratorTrackState, type GeneratorType, type GroupParseSpec, type GroupRenderContext, type ImportCandidateScene, type ImportCandidateTrack, ImportTrackModal, type ImportTrackModalProps, type InstrumentDescriptor, TrackDrawer as InstrumentDrawer, type TrackDrawerProps as InstrumentDrawerProps, type InstrumentSampler, type InstrumentZone, type LLMCandidate, type LLMContent, type LLMFunctionDeclaration, type LLMGenerationConfig, type LLMGenerationRequest, type LLMGenerationResult, type LLMNoteResponse, type LLMPart, type LLMSystemInstruction, type LLMTool, type LLMToolUseRequest, type LLMToolUseResponse, type LLMUsageMetadata, LevelMeter, type LevelMeterProps, type ListAudioFilesOptions, type ListImportableTracksOptions, type MidiClipData, type MidiWriteResult, type MixInterpolation, Modal, type ModalProps, type MusicalContext, OffsetScrubber, type OffsetScrubberProps, PLUGIN_SDK_VERSION, PX_PER_BEAT, PanSlider, type PanelFeatureFlags, type PanelGenerationStrategy, type PanelGroupExtension, type PanelIdentity, type PanelShuffleAdapter, type PanelSoundAdapter, type PeakAnalysis, PianoRollEditor, type PianoRollEditorProps, type PickTopKOptions, type PluginAppTool, type PluginAppToolInputSchema, type PluginAppToolResult, type PluginAudioTextureRequest, type PluginAudioTextureResult, type PluginCapabilities, type PluginChordSegment, type PluginChordTiming, type PluginConcurrentTrackInfo, type PluginCuePoints, type PluginDownloadOptions, PluginError, type PluginErrorCode, type PluginFileDialogOptions, type PluginFxCategoryDetailState, type PluginGenerationContext, type PluginHost, type PluginHttpRequestOptions, type PluginHttpResponse, type PluginManifest, type PluginMidiNote, type PluginPresetData, type PluginPresetInfo, type PluginRegistration, type PluginSampleFilter, type PluginSampleImportResult, type PluginSampleInfo, type PluginSampleTrackInfo, type PluginSceneContext, type PluginSceneInfo, type PluginSettingsSchema, type PluginSettingsStore, type PluginSkill, type PluginSkillInputSchema, type PluginStatus, type PluginStemSplitResult, type PluginStemTrackInfo, type PluginSynthInfo, type PluginTrackFxDetailState, type PluginTrackHandle, type PluginTrackInfo, type PluginTrackLevel, type PluginTrackRuntimeState, type PluginTransportState, type PluginTrimWindow, type PluginUIProps, type PostProcessOptions, RESIZE_HANDLE_PX, ROW_HEIGHT, type ReadMidiClip, type ReadMidiResult, type RecordingChunkFinalizedEvent, type RecordingTargetInfo, type ResolveGroupsOptions, type ResolvedCrossfadePair, type ResolvedFade, type ResolvedGroupsResult, type ResolvedTrackGroup, type SDKTrackRowProps, SLIDER_UNITY, SamplePackCTACard, type SamplePackCTACardProps, type SamplePackCTACardStatus, type SamplePackCardInfo, type SavePluginPresetOptions, type SceneChangeListener, type SceneFamilyTrack, type ScoredCandidate, ScrollingWaveform, type ScrollingWaveformProps, type SettingDefinition, type ShufflePresetResult, SorceryProgressBar, type SoundHistoryEntry, type StemType, type SurgeSoundAdapterOverrides, type SynthesizeCuePointsOptions, TEXTURAL_ROLES, TRANSITION_DESIGNER_DRAFT_KEY, TrackDrawer, type TrackDrawerProps, type TrackFxDetailState, type TrackFxState, type TrackGroupMember, type TrackGroupMeta, type TrackLevelsHandle, TrackMeterStrip, type TrackMeterStripProps, type TrackMeterView, TrackRow, type TrackRowDragProps, type TrackSoundHistory, type TrackSoundSnapshot, type TrackStateChangeListener, TransitionDesigner, type TransitionDesignerDraft, type TransitionDesignerProps, type TransitionOps, type TransitionRowType, type TransportEvent, type TransportEventListener, type UnsubscribeFn, type UseGeneratorPanelCoreOptions, type UseSoundHistoryOptions, type UseSoundHistoryResult, type UseTrackReorderOptions, type UseTrackReorderResult, type UseTransitionOpsInputs, type VolumeAutomationPoint, VolumeSlider, type WaveformPeaks, WaveformView, type WaveformViewProps, analyzeWavPeak, asAudioEffect, asCrossfadeMeta, asFadeMeta, asTransitionDesignerDraft, buildCrossfadeInpaintPrompt, buildCrossfadeVolumeCurves, buildFadeVolumeCurve, buildRowSlots, calculateTimeBasedTarget, cellToPx, centerScrollTop, computePeaks, createSurgeSoundAdapter, dbIdsFromKeys, dbToSlider, defaultFadeGesture, drawWaveform, formatConcurrentTracks, hashString, moveItem, newTrackState, normalizeSlots, padPair, padSlots, parseCrossfadePairs, parseFades, parseLLMNoteResponse, parseTrackGroups, pickTopKWeighted, pitchToName, pluginFxToToggleFx, pxToCell, reconcileSlots, resizeNoteDuration, resolveTrackGroups, rowKey, rowType, scorePromptMatch, sliderToDb, slotsEqual, soundIdentity, synthesizeCuePoints, tokenizePrompt, trackDataKey, transposeNotes, useAnySolo, useGeneratorPanelCore, useSceneState, useSoundHistory, useTrackLevel, useTrackLevels, useTrackMeter, useTrackReorder, useTransitionOps, useTransportPlaying };
4961
+ export { AUDIO_EFFECTS, AUDIO_EFFECT_LABEL, type AudioEffect, type AudioInputDevice, type BulkAddPlaceholderTrack, type ComposeProgressEvent, type ComposeProgressListener, type ComposeSceneOptions, type ComposeSceneResult, ConfirmDialog, type ConfirmDialogProps, type CoreTrackHandlers, type CreateTrackOptions, type CrossfadeInpaintInput, type CrossfadeLayer, type CrossfadeMeta, CrossfadeModal, type CrossfadeModalProps, type CrossfadePairMeta, type CrossfadeSelection, type CrossfadeSlot, CrossfadeTrackRow, type CrossfadeTrackRowProps, type CrossfadeVolumeCurves, DB_MAX, DB_MIN, DEFAULT_FX_CATEGORY_DETAIL, DEFAULT_FX_DRY_WET, DRAG_DEAD_ZONE, type DeckBoundaryEvent, type DeckBoundaryListener, type DesignerRowSlots, DownloadPackButton, type DownloadPackButtonProps, type DownloadPackButtonVariant, type DrawerTab, type DrumKit, EMPTY_FX_DETAIL_STATE, EMPTY_FX_STATE, EQUAL_POWER_GAIN, type ExportMidiBundleOptions, type ExportMidiBundleResult, type ExportedPluginData, FX_CATEGORIES, FX_CHAIN_ORDER, FX_DISPLAY_LABELS, FX_ENGINE_PLUGIN_NAMES, FX_PRESET_CONFIGS, type FadeDirection, type FadeEntry, type FadeGesture, type FadeLayer, type FadeMeta, FadeModal, type FadeModalProps, type FadeSelection, FadeTrackRow, type FadeTrackRowProps, type FxCategory, type FxCategoryDetailState, type FxPreset, type FxPresetConfig, type FxPresetData, type FxPresetDataEntry, FxToggleBar, type FxToggleBarProps, GUTTER_W, type GenerationServices, type GeneratorPanelAdapter, type GeneratorPanelCore, GeneratorPanelShell, type GeneratorPanelShellProps, type GeneratorPanelSlots, type GeneratorPlugin, type GeneratorTrackState, type GeneratorType, type GroupParseSpec, type GroupRenderContext, type ImportCandidateScene, type ImportCandidateTrack, ImportTrackModal, type ImportTrackModalProps, type InstrumentDescriptor, TrackDrawer as InstrumentDrawer, type TrackDrawerProps as InstrumentDrawerProps, type InstrumentSampler, type InstrumentZone, type LLMCandidate, type LLMContent, type LLMFunctionDeclaration, type LLMGenerationConfig, type LLMGenerationRequest, type LLMGenerationResult, type LLMNoteResponse, type LLMPart, type LLMSystemInstruction, type LLMTool, type LLMToolUseRequest, type LLMToolUseResponse, type LLMUsageMetadata, LevelMeter, type LevelMeterProps, type ListAudioFilesOptions, type ListImportableTracksOptions, type MidiClipData, type MidiWriteResult, type MixInterpolation, Modal, type ModalProps, type MusicalContext, OffsetScrubber, type OffsetScrubberProps, PLUGIN_SDK_VERSION, PX_PER_BEAT, PanSlider, type PanelBusFxEntry, type PanelBusState, type PanelFeatureFlags, type PanelGenerationStrategy, type PanelGroupExtension, type PanelIdentity, PanelMasterStrip, type PanelMasterStripProps, type PanelShuffleAdapter, type PanelSoundAdapter, type PeakAnalysis, PianoRollEditor, type PianoRollEditorProps, type PickTopKOptions, type PluginAppTool, type PluginAppToolInputSchema, type PluginAppToolResult, type PluginAudioTextureRequest, type PluginAudioTextureResult, type PluginCapabilities, type PluginChordSegment, type PluginChordTiming, type PluginConcurrentTrackInfo, type PluginCuePoints, type PluginDownloadOptions, PluginError, type PluginErrorCode, type PluginFileDialogOptions, type PluginFxCategoryDetailState, type PluginGenerationContext, type PluginHost, type PluginHttpRequestOptions, type PluginHttpResponse, type PluginManifest, type PluginMidiNote, type PluginPresetData, type PluginPresetInfo, type PluginRegistration, type PluginSampleFilter, type PluginSampleImportResult, type PluginSampleInfo, type PluginSampleTrackInfo, type PluginSceneContext, type PluginSceneInfo, type PluginSettingsSchema, type PluginSettingsStore, type PluginSkill, type PluginSkillInputSchema, type PluginStatus, type PluginStemSplitResult, type PluginStemTrackInfo, type PluginSynthInfo, type PluginTrackFxDetailState, type PluginTrackHandle, type PluginTrackInfo, type PluginTrackLevel, type PluginTrackRuntimeState, type PluginTransportState, type PluginTrimWindow, type PluginUIProps, type PostProcessOptions, RESIZE_HANDLE_PX, ROW_HEIGHT, type ReadMidiClip, type ReadMidiResult, type RecordingChunkFinalizedEvent, type RecordingTargetInfo, type ResolveGroupsOptions, type ResolvedCrossfadePair, type ResolvedFade, type ResolvedGroupsResult, type ResolvedTrackGroup, type SDKTrackRowProps, SLIDER_UNITY, SamplePackCTACard, type SamplePackCTACardProps, type SamplePackCTACardStatus, type SamplePackCardInfo, type SavePluginPresetOptions, type SceneChangeListener, type SceneFamilyTrack, type ScoredCandidate, ScrollingWaveform, type ScrollingWaveformProps, type SettingDefinition, type ShufflePresetResult, SorceryProgressBar, type SoundHistoryEntry, type StemType, type SurgeSoundAdapterOverrides, type SynthesizeCuePointsOptions, TEXTURAL_ROLES, TRANSITION_DESIGNER_DRAFT_KEY, TrackDrawer, type TrackDrawerProps, type TrackFxDetailState, type TrackFxState, type TrackGroupMember, type TrackGroupMeta, type TrackLevelsHandle, TrackMeterStrip, type TrackMeterStripProps, type TrackMeterView, TrackRow, type TrackRowDragProps, type TrackSoundHistory, type TrackSoundSnapshot, type TrackStateChangeListener, TransitionDesigner, type TransitionDesignerDraft, type TransitionDesignerProps, type TransitionOps, type TransitionRowType, type TransportEvent, type TransportEventListener, type UnsubscribeFn, type UseGeneratorPanelCoreOptions, type UsePanelBusResult, type UseSoundHistoryOptions, type UseSoundHistoryResult, type UseTrackReorderOptions, type UseTrackReorderResult, type UseTransitionOpsInputs, type VolumeAutomationPoint, VolumeSlider, type WaveformPeaks, WaveformView, type WaveformViewProps, analyzeWavPeak, asAudioEffect, asCrossfadeMeta, asFadeMeta, asTransitionDesignerDraft, buildCrossfadeInpaintPrompt, buildCrossfadeVolumeCurves, buildFadeVolumeCurve, buildRowSlots, calculateTimeBasedTarget, cellToPx, centerScrollTop, computePeaks, createSurgeSoundAdapter, dbIdsFromKeys, dbToSlider, defaultFadeGesture, drawWaveform, formatConcurrentTracks, hashString, moveItem, newTrackState, normalizeSlots, padPair, padSlots, parseCrossfadePairs, parseFades, parseLLMNoteResponse, parseTrackGroups, pickTopKWeighted, pitchToName, pluginFxToToggleFx, pxToCell, reconcileSlots, resizeNoteDuration, resolveTrackGroups, rowKey, rowType, scorePromptMatch, sliderToDb, slotsEqual, soundIdentity, synthesizeCuePoints, tokenizePrompt, trackDataKey, transposeNotes, useAnySolo, useGeneratorPanelCore, usePanelBus, useSceneState, useSoundHistory, useTrackLevel, useTrackLevels, useTrackMeter, useTrackReorder, useTransitionOps, useTransportPlaying };