@grafana/scenes 6.40.0--canary.1278.18560955561.0 → 6.40.0--canary.1265.18596374903.0

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 (143) hide show
  1. package/dist/esm/behaviors/SceneInteractionTracker.js.map +1 -1
  2. package/dist/esm/behaviors/SceneQueryController.js.map +1 -1
  3. package/dist/esm/components/SceneRefreshPicker.js +1 -1
  4. package/dist/esm/components/SceneRefreshPicker.js.map +1 -1
  5. package/dist/esm/components/VizPanel/VizPanel.js +26 -0
  6. package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
  7. package/dist/esm/components/VizPanel/VizPanelRenderer.js +20 -18
  8. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
  9. package/dist/esm/core/SceneTimeRange.js +1 -1
  10. package/dist/esm/core/SceneTimeRange.js.map +1 -1
  11. package/dist/esm/core/sceneGraph/index.js +1 -1
  12. package/dist/esm/index.js +6 -4
  13. package/dist/esm/index.js.map +1 -1
  14. package/dist/esm/locales/cs-CZ/grafana-scenes.json.js +4 -0
  15. package/dist/esm/locales/cs-CZ/grafana-scenes.json.js.map +1 -1
  16. package/dist/esm/locales/de-DE/grafana-scenes.json.js +4 -0
  17. package/dist/esm/locales/de-DE/grafana-scenes.json.js.map +1 -1
  18. package/dist/esm/locales/es-ES/grafana-scenes.json.js +4 -0
  19. package/dist/esm/locales/es-ES/grafana-scenes.json.js.map +1 -1
  20. package/dist/esm/locales/fr-FR/grafana-scenes.json.js +4 -0
  21. package/dist/esm/locales/fr-FR/grafana-scenes.json.js.map +1 -1
  22. package/dist/esm/locales/hu-HU/grafana-scenes.json.js +4 -0
  23. package/dist/esm/locales/hu-HU/grafana-scenes.json.js.map +1 -1
  24. package/dist/esm/locales/id-ID/grafana-scenes.json.js +4 -0
  25. package/dist/esm/locales/id-ID/grafana-scenes.json.js.map +1 -1
  26. package/dist/esm/locales/it-IT/grafana-scenes.json.js +4 -0
  27. package/dist/esm/locales/it-IT/grafana-scenes.json.js.map +1 -1
  28. package/dist/esm/locales/ja-JP/grafana-scenes.json.js +4 -0
  29. package/dist/esm/locales/ja-JP/grafana-scenes.json.js.map +1 -1
  30. package/dist/esm/locales/ko-KR/grafana-scenes.json.js +4 -0
  31. package/dist/esm/locales/ko-KR/grafana-scenes.json.js.map +1 -1
  32. package/dist/esm/locales/nl-NL/grafana-scenes.json.js +4 -0
  33. package/dist/esm/locales/nl-NL/grafana-scenes.json.js.map +1 -1
  34. package/dist/esm/locales/pl-PL/grafana-scenes.json.js +4 -0
  35. package/dist/esm/locales/pl-PL/grafana-scenes.json.js.map +1 -1
  36. package/dist/esm/locales/pt-BR/grafana-scenes.json.js +4 -0
  37. package/dist/esm/locales/pt-BR/grafana-scenes.json.js.map +1 -1
  38. package/dist/esm/locales/pt-PT/grafana-scenes.json.js +4 -0
  39. package/dist/esm/locales/pt-PT/grafana-scenes.json.js.map +1 -1
  40. package/dist/esm/locales/ru-RU/grafana-scenes.json.js +4 -0
  41. package/dist/esm/locales/ru-RU/grafana-scenes.json.js.map +1 -1
  42. package/dist/esm/locales/sv-SE/grafana-scenes.json.js +4 -0
  43. package/dist/esm/locales/sv-SE/grafana-scenes.json.js.map +1 -1
  44. package/dist/esm/locales/tr-TR/grafana-scenes.json.js +4 -0
  45. package/dist/esm/locales/tr-TR/grafana-scenes.json.js.map +1 -1
  46. package/dist/esm/locales/zh-Hans/grafana-scenes.json.js +4 -0
  47. package/dist/esm/locales/zh-Hans/grafana-scenes.json.js.map +1 -1
  48. package/dist/esm/locales/zh-Hant/grafana-scenes.json.js +4 -0
  49. package/dist/esm/locales/zh-Hant/grafana-scenes.json.js.map +1 -1
  50. package/dist/esm/{behaviors → performance}/LongFrameDetector.js +11 -11
  51. package/dist/esm/performance/LongFrameDetector.js.map +1 -0
  52. package/dist/esm/performance/PanelProfilingManager.js +65 -0
  53. package/dist/esm/performance/PanelProfilingManager.js.map +1 -0
  54. package/dist/esm/performance/ScenePerformanceTracker.js +78 -0
  55. package/dist/esm/performance/ScenePerformanceTracker.js.map +1 -0
  56. package/dist/esm/{behaviors → performance}/SceneRenderProfiler.js +87 -132
  57. package/dist/esm/performance/SceneRenderProfiler.js.map +1 -0
  58. package/dist/esm/performance/VizPanelRenderProfiler.js +320 -0
  59. package/dist/esm/performance/VizPanelRenderProfiler.js.map +1 -0
  60. package/dist/esm/performance/index.js +7 -0
  61. package/dist/esm/performance/index.js.map +1 -0
  62. package/dist/esm/performance/interactionConstants.js +14 -0
  63. package/dist/esm/performance/interactionConstants.js.map +1 -0
  64. package/dist/esm/querying/SceneDataTransformer.js +57 -0
  65. package/dist/esm/querying/SceneDataTransformer.js.map +1 -1
  66. package/dist/esm/querying/SceneQueryRunner.js +11 -6
  67. package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
  68. package/dist/esm/querying/registerQueryWithController.js +49 -2
  69. package/dist/esm/querying/registerQueryWithController.js.map +1 -1
  70. package/dist/esm/utils/findPanelProfiler.js +18 -0
  71. package/dist/esm/utils/findPanelProfiler.js.map +1 -0
  72. package/dist/esm/utils/writePerformanceLog.js +12 -0
  73. package/dist/esm/utils/writePerformanceLog.js.map +1 -0
  74. package/dist/esm/utils/writeSceneLog.js +1 -10
  75. package/dist/esm/utils/writeSceneLog.js.map +1 -1
  76. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +1 -1
  77. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
  78. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +9 -12
  79. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
  80. package/dist/esm/variables/components/VariableValueSelect.js +1 -1
  81. package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
  82. package/dist/esm/variables/groupby/GroupByVariable.js +7 -13
  83. package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
  84. package/dist/esm/variables/variants/MultiValueVariable.js +1 -1
  85. package/dist/esm/variables/variants/MultiValueVariable.js.map +1 -1
  86. package/dist/esm/variables/variants/ScopesVariable.js +1 -1
  87. package/dist/esm/variables/variants/ScopesVariable.js.map +1 -1
  88. package/dist/{grafana-scenes-CfoPR_PZ.js → grafana-scenes-BH2OEiLz.js} +5 -1
  89. package/dist/{grafana-scenes-BbJq3cEa.js.map → grafana-scenes-BH2OEiLz.js.map} +1 -1
  90. package/dist/{grafana-scenes-cTJt4LR7.js → grafana-scenes-BLJV6eE3.js} +5 -1
  91. package/dist/{grafana-scenes-BbRDYrqK.js.map → grafana-scenes-BLJV6eE3.js.map} +1 -1
  92. package/dist/{grafana-scenes-CqMfWT-f.js → grafana-scenes-BrExMMR1.js} +5 -1
  93. package/dist/{grafana-scenes-BcDO8gk4.js.map → grafana-scenes-BrExMMR1.js.map} +1 -1
  94. package/dist/{grafana-scenes-CzZTvOrf.js → grafana-scenes-BrpU2VxI.js} +5 -1
  95. package/dist/{grafana-scenes-BtGEpoZT.js.map → grafana-scenes-BrpU2VxI.js.map} +1 -1
  96. package/dist/{grafana-scenes-zGpJY4O3.js → grafana-scenes-CRkk3i3Y.js} +5 -1
  97. package/dist/grafana-scenes-CRkk3i3Y.js.map +1 -0
  98. package/dist/{grafana-scenes-kfW02M-K.js → grafana-scenes-CfuUpx6R.js} +5 -1
  99. package/dist/grafana-scenes-CfuUpx6R.js.map +1 -0
  100. package/dist/{grafana-scenes-CMtHJ23j.js → grafana-scenes-Cl-piLdF.js} +5 -1
  101. package/dist/grafana-scenes-Cl-piLdF.js.map +1 -0
  102. package/dist/{grafana-scenes-CS09sc_L.js → grafana-scenes-D-DPZiBx.js} +5 -1
  103. package/dist/grafana-scenes-D-DPZiBx.js.map +1 -0
  104. package/dist/{grafana-scenes-CixWq8rH.js → grafana-scenes-D1jd3aZp.js} +5 -1
  105. package/dist/grafana-scenes-D1jd3aZp.js.map +1 -0
  106. package/dist/{grafana-scenes-CoXR5Z7T.js → grafana-scenes-DNMnQEFs.js} +5 -1
  107. package/dist/grafana-scenes-DNMnQEFs.js.map +1 -0
  108. package/dist/{grafana-scenes-BwQ_A3lk.js → grafana-scenes-DPbgWPLH.js} +5 -1
  109. package/dist/grafana-scenes-DPbgWPLH.js.map +1 -0
  110. package/dist/{grafana-scenes-BbRDYrqK.js → grafana-scenes-DTn3nyOX.js} +5 -1
  111. package/dist/grafana-scenes-DTn3nyOX.js.map +1 -0
  112. package/dist/{grafana-scenes-VOzZRdKp.js → grafana-scenes-DaO9TTTj.js} +5 -1
  113. package/dist/grafana-scenes-DaO9TTTj.js.map +1 -0
  114. package/dist/{grafana-scenes-C-CibbsO.js → grafana-scenes-DoKV4lED.js} +5 -1
  115. package/dist/grafana-scenes-DoKV4lED.js.map +1 -0
  116. package/dist/{grafana-scenes-BcDO8gk4.js → grafana-scenes-DpvJWDGo.js} +5 -1
  117. package/dist/grafana-scenes-DpvJWDGo.js.map +1 -0
  118. package/dist/{grafana-scenes-naZktXG6.js → grafana-scenes-Kqjin1Vr.js} +5 -1
  119. package/dist/grafana-scenes-Kqjin1Vr.js.map +1 -0
  120. package/dist/{grafana-scenes-BbJq3cEa.js → grafana-scenes-OEGPBO01.js} +5 -1
  121. package/dist/grafana-scenes-OEGPBO01.js.map +1 -0
  122. package/dist/{grafana-scenes-BtGEpoZT.js → grafana-scenes-qNHDZUAZ.js} +5 -1
  123. package/dist/grafana-scenes-qNHDZUAZ.js.map +1 -0
  124. package/dist/index.d.ts +460 -105
  125. package/dist/index.js +7827 -7266
  126. package/dist/index.js.map +1 -1
  127. package/package.json +2 -2
  128. package/dist/esm/behaviors/LongFrameDetector.js.map +0 -1
  129. package/dist/esm/behaviors/SceneRenderProfiler.js.map +0 -1
  130. package/dist/grafana-scenes-BwQ_A3lk.js.map +0 -1
  131. package/dist/grafana-scenes-C-CibbsO.js.map +0 -1
  132. package/dist/grafana-scenes-CMtHJ23j.js.map +0 -1
  133. package/dist/grafana-scenes-CS09sc_L.js.map +0 -1
  134. package/dist/grafana-scenes-CfoPR_PZ.js.map +0 -1
  135. package/dist/grafana-scenes-CixWq8rH.js.map +0 -1
  136. package/dist/grafana-scenes-CoXR5Z7T.js.map +0 -1
  137. package/dist/grafana-scenes-CqMfWT-f.js.map +0 -1
  138. package/dist/grafana-scenes-CzZTvOrf.js.map +0 -1
  139. package/dist/grafana-scenes-VOzZRdKp.js.map +0 -1
  140. package/dist/grafana-scenes-cTJt4LR7.js.map +0 -1
  141. package/dist/grafana-scenes-kfW02M-K.js.map +0 -1
  142. package/dist/grafana-scenes-naZktXG6.js.map +0 -1
  143. package/dist/grafana-scenes-zGpJY4O3.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as _grafana_data from '@grafana/data';
2
- import { BusEventWithPayload, EventBus, BusEvent, BusEventType, BusEventHandler, PanelMenuItem, FieldConfigSource, PanelPlugin, AbsoluteTimeRange, PanelData, InterpolateFunction, PanelModel, TimeRange, DataTransformContext, DataFrame, DataQueryRequest, DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions, IconName, PageLayoutType, UrlQueryMap, DataQuery as DataQuery$1, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, GrafanaTheme2, GetTagResponse, MetricFindValue, SelectableValue, DrilldownsApplicability, VariableRefresh as VariableRefresh$1, VariableSort, Scope, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, TimeOption, FieldConfig, FieldType, FieldValueMatcherConfig, ScopedVar, RawTimeRange } from '@grafana/data';
2
+ import { BusEventWithPayload, EventBus, BusEvent, BusEventType, BusEventHandler, PanelMenuItem, DataQueryRequest, FieldConfigSource, PanelPlugin, AbsoluteTimeRange, PanelData, InterpolateFunction, PanelModel, TimeRange, DataTransformContext, DataFrame, DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions, IconName, PageLayoutType, UrlQueryMap, DataQuery as DataQuery$1, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, GetTagResponse, MetricFindValue, SelectableValue, VariableRefresh as VariableRefresh$1, VariableSort, DrilldownsApplicability, Scope, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, TimeOption, FieldConfig, FieldType, FieldValueMatcherConfig, ScopedVar, RawTimeRange } from '@grafana/data';
3
+ import * as _grafana_schema from '@grafana/schema';
4
+ import { VariableType, VariableHide, LoadingState, TimeZone, DataQuery, DataTopic, DataSourceRef, VariableRefresh, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
3
5
  import * as React$1 from 'react';
4
6
  import React__default, { ComponentType, CSSProperties, PointerEvent, ForwardRefExoticComponent } from 'react';
5
7
  import * as rxjs from 'rxjs';
6
8
  import { Observable, Subscription, Unsubscribable, MonoTypeOperatorFunction, ReplaySubject } from 'rxjs';
7
- import * as _grafana_schema from '@grafana/schema';
8
- import { VariableType, VariableHide, TimeZone, DataQuery, DataTopic, DataSourceRef, VariableRefresh, LoadingState, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
9
9
  import { PanelContext, WeekStart, IconName as IconName$1 } from '@grafana/ui';
10
10
  import { LocationService, VariableInterpolation, ScopesContextValue } from '@grafana/runtime';
11
11
  import { Location } from 'history';
@@ -315,6 +315,170 @@ declare class VariableDependencyConfig<TState extends SceneObjectState> implemen
315
315
  private handleTimeMacros;
316
316
  }
317
317
 
318
+ interface LongFrameEvent {
319
+ duration: number;
320
+ timestamp: number;
321
+ method: 'manual' | 'loaf';
322
+ }
323
+ type LongFrameCallback = (event: LongFrameEvent) => void;
324
+ /**
325
+ * LongFrameDetector is a module for detecting long animation frames.
326
+ *
327
+ * It supports two detection methods with automatic fallback:
328
+ * 1. LoAF API (default when available): Uses Long Animation Frame API with 50ms threshold
329
+ * 2. Manual tracking (fallback): Uses requestAnimationFrame with configurable threshold (default: 50ms)
330
+ *
331
+ * The detector automatically uses LoAF when available for better attribution and performance,
332
+ * falling back to manual tracking for broader browser support.
333
+ *
334
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Long_animation_frame_timing
335
+ */
336
+ declare class LongFrameDetector {
337
+ #private;
338
+ /**
339
+ * Check if LoAF API is available in the browser
340
+ */
341
+ private isLoAFAvailable;
342
+ /**
343
+ * Start detecting long frames and call the provided callback when they occur
344
+ */
345
+ start(callback: LongFrameCallback): void;
346
+ /**
347
+ * Stop detecting long frames
348
+ */
349
+ stop(): void;
350
+ /**
351
+ * Check if currently tracking frames
352
+ */
353
+ isTracking(): boolean;
354
+ /**
355
+ * Start tracking using the Long Animation Frame API
356
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongAnimationFrameTiming
357
+ */
358
+ private startLoAFTracking;
359
+ /**
360
+ * Stop LoAF tracking
361
+ */
362
+ private stopLoAFTracking;
363
+ /**
364
+ * Start manual frame tracking using requestAnimationFrame
365
+ */
366
+ private startManualFrameTracking;
367
+ /**
368
+ * Stop manual frame tracking
369
+ */
370
+ private stopManualFrameTracking;
371
+ /**
372
+ * Measure frame durations using requestAnimationFrame
373
+ */
374
+ private measureFrames;
375
+ }
376
+
377
+ interface QueryResultWithState {
378
+ state: LoadingState;
379
+ }
380
+ interface SceneQueryControllerEntry {
381
+ request?: DataQueryRequest;
382
+ type: SceneQueryControllerEntryType;
383
+ origin: SceneObject;
384
+ cancel?: () => void;
385
+ }
386
+ type SceneQueryControllerEntryType = 'data' | 'annotations' | 'variable' | 'alerts' | 'plugin' | string;
387
+
388
+
389
+
390
+ interface SceneComponentInteractionEvent {
391
+ origin: string;
392
+ duration: number;
393
+ networkDuration: number;
394
+ startTs: number;
395
+ endTs: number;
396
+ }
397
+ interface SceneInteractionTrackerState extends SceneObjectState {
398
+ enableInteractionTracking?: boolean;
399
+ onInteractionComplete?(event: SceneComponentInteractionEvent): void;
400
+ }
401
+ interface SceneQueryStateControllerState extends SceneObjectState {
402
+ isRunning: boolean;
403
+ enableProfiling?: boolean;
404
+ }
405
+ interface SceneQueryControllerLike extends SceneObject<SceneQueryStateControllerState> {
406
+ isQueryController: true;
407
+ cancelAll(): void;
408
+ queryStarted(entry: SceneQueryControllerEntry): void;
409
+ queryCompleted(entry: SceneQueryControllerEntry): void;
410
+ startProfile(name: string): void;
411
+ cancelProfile(): void;
412
+ runningQueriesCount(): number;
413
+ }
414
+
415
+ interface QueryProfilerLike {
416
+ onQueryStarted(timestamp: number, entry: SceneQueryControllerEntry, queryId: string): ((endTimestamp: number, error?: any) => void) | null;
417
+ }
418
+ /**
419
+ * Will look for a scene object with a behavior that is a SceneQueryController and register the query with it.
420
+ * Optionally accepts a panel profiler for direct query tracking callbacks.
421
+ */
422
+ declare function registerQueryWithController<T extends QueryResultWithState>(entry: SceneQueryControllerEntry, profiler?: QueryProfilerLike): (queryStream: Observable<T>) => Observable<T>;
423
+
424
+ interface VizPanelRenderProfilerState extends SceneObjectState {
425
+ }
426
+ /**
427
+ * Tracks performance metrics for individual VizPanel instances using observer pattern.
428
+ *
429
+ * Performance events are sent to ScenePerformanceTracker observers, which are consumed
430
+ * by Grafana's ScenePerformanceLogger and DashboardAnalyticsAggregator.
431
+ */
432
+ declare class VizPanelRenderProfiler extends SceneObjectBase<VizPanelRenderProfilerState> implements QueryProfilerLike {
433
+ private _panelKey?;
434
+ private _panelId?;
435
+ private _pluginId?;
436
+ private _pluginVersion?;
437
+ private _isTracking;
438
+ private _loadPluginStartTime?;
439
+ private _applyFieldConfigStartTime?;
440
+ private _activeQueries;
441
+ constructor(state?: Partial<VizPanelRenderProfilerState>);
442
+ private _onActivate;
443
+ private _handlePanelStateChange;
444
+ /**
445
+ * Track query execution with operation ID correlation
446
+ */
447
+ onQueryStarted(timestamp: number, entry: SceneQueryControllerEntry, queryId: string): ((endTimestamp: number, error?: any) => void) | null;
448
+ /**
449
+ * Track plugin loading with operation ID correlation
450
+ */
451
+ onPluginLoadStart(pluginId: string): ((plugin: any, fromCache?: boolean) => void) | null;
452
+ /**
453
+ * Track field config processing with operation ID correlation
454
+ */
455
+ onFieldConfigStart(timestamp: number): ((endTimestamp: number, dataPointsCount?: number, seriesCount?: number) => void) | null;
456
+ /**
457
+ * Get panel info for logging - truncates long titles for readability
458
+ */
459
+ private _getPanelInfo;
460
+ /**
461
+ * Track simple render timing with operation ID correlation
462
+ */
463
+ onSimpleRenderStart(timestamp: number): ((endTimestamp: number, duration: number) => void) | undefined;
464
+ /** Handle plugin changes */
465
+ private _onPluginChange;
466
+ /** Start tracking this panel */
467
+ private _startTracking;
468
+ /** Cleanup when behavior is deactivated */
469
+ private _cleanup;
470
+ /**
471
+ * Track data transformation with operation ID correlation
472
+ */
473
+ onDataTransformStart(timestamp: number, transformationId: string, metrics: {
474
+ transformationCount: number;
475
+ seriesTransformationCount: number;
476
+ annotationTransformationCount: number;
477
+ }): ((endTimestamp: number, duration: number, success: boolean, result?: {
478
+ error?: string;
479
+ }) => void) | null;
480
+ }
481
+
318
482
  interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectState {
319
483
  /**
320
484
  * This is usually a plugin id that references a core plugin or an external plugin. But this can also reference a
@@ -335,10 +499,6 @@ interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectSta
335
499
  * Offset hoverHeader position on the y axis
336
500
  */
337
501
  hoverHeaderOffset?: number;
338
- /**
339
- * Allows adding elements to the subheader of the panel.
340
- */
341
- subHeaderContent?: React.ReactNode | SceneObject | SceneObject[];
342
502
  /**
343
503
  * Only shows vizPanelMenu on hover if false, otherwise the menu is always visible in the header
344
504
  */
@@ -389,6 +549,10 @@ declare class VizPanel<TOptions = {}, TFieldConfig extends {} = {}> extends Scen
389
549
  private _dataWithFieldConfig?;
390
550
  private _structureRev;
391
551
  constructor(state: Partial<VizPanelState<TOptions, TFieldConfig>>);
552
+ /**
553
+ * Get the VizPanelRenderProfiler behavior if attached
554
+ */
555
+ getProfiler(): VizPanelRenderProfiler | undefined;
392
556
  private _onActivate;
393
557
  forceRender(): void;
394
558
  private _loadPlugin;
@@ -867,10 +1031,6 @@ declare function escapeLabelValueInExactSelector(labelValue: string): string;
867
1031
  declare function escapeLabelValueInRegexSelector(labelValue: string): string;
868
1032
  declare function escapeUrlPipeDelimiters(value: string | undefined): string;
869
1033
  declare function escapeURLDelimiters(value: string | undefined): string;
870
- declare function getNonApplicablePillStyles(theme: GrafanaTheme2): {
871
- disabledPill: string;
872
- strikethrough: string;
873
- };
874
1034
 
875
1035
  declare class AdHocFiltersVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {
876
1036
  private _variable;
@@ -1024,7 +1184,6 @@ declare class AdHocFiltersVariable extends SceneObjectBase<AdHocFiltersVariableS
1024
1184
  _removeFilter(filter: AdHocFilterWithLabels): void;
1025
1185
  _removeLastFilter(): void;
1026
1186
  _handleComboboxBackspace(filter: AdHocFilterWithLabels): void;
1027
- getFiltersApplicabilityForQueries(filters: AdHocFilterWithLabels[], queries: SceneDataQuery[]): Promise<DrilldownsApplicability[] | undefined>;
1028
1187
  _verifyApplicability(): Promise<void>;
1029
1188
  /**
1030
1189
  * Get possible keys given current filters. Do not call from plugins directly
@@ -1278,7 +1437,6 @@ declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
1278
1437
  constructor(initialState: Partial<GroupByVariableState>);
1279
1438
  private _activationHandler;
1280
1439
  getApplicableKeys(): VariableValue;
1281
- getGroupByApplicabilityForQueries(value: VariableValue, queries: SceneDataQuery[]): Promise<DrilldownsApplicability[] | undefined>;
1282
1440
  _verifyApplicability(): Promise<void>;
1283
1441
  checkIfRestorable(values: VariableValue): boolean;
1284
1442
  restoreDefaultValues(): void;
@@ -1353,65 +1511,6 @@ declare class UserActionEvent extends BusEventWithPayload<UserActionEventPayload
1353
1511
  */
1354
1512
  declare function lookupVariable(name: string, sceneObject: SceneObject): SceneVariable | null;
1355
1513
 
1356
- interface LongFrameEvent {
1357
- duration: number;
1358
- timestamp: number;
1359
- method: 'manual' | 'loaf';
1360
- }
1361
- type LongFrameCallback = (event: LongFrameEvent) => void;
1362
-
1363
- interface QueryResultWithState {
1364
- state: LoadingState;
1365
- }
1366
- interface SceneQueryControllerEntry {
1367
- request?: DataQueryRequest;
1368
- type: SceneQueryControllerEntryType;
1369
- origin: SceneObject;
1370
- cancel?: () => void;
1371
- }
1372
- type SceneQueryControllerEntryType = 'data' | 'annotations' | 'variable' | 'alerts' | 'plugin' | string;
1373
-
1374
-
1375
-
1376
- interface SceneInteractionProfileEvent {
1377
- origin: string;
1378
- duration: number;
1379
- networkDuration: number;
1380
- jsHeapSizeLimit: number;
1381
- usedJSHeapSize: number;
1382
- totalJSHeapSize: number;
1383
- crumbs: string[];
1384
- startTs: number;
1385
- endTs: number;
1386
- longFramesCount: number;
1387
- longFramesTotalTime: number;
1388
- }
1389
- interface SceneComponentInteractionEvent {
1390
- origin: string;
1391
- duration: number;
1392
- networkDuration: number;
1393
- startTs: number;
1394
- endTs: number;
1395
- }
1396
- interface SceneInteractionTrackerState extends SceneObjectState {
1397
- enableInteractionTracking?: boolean;
1398
- onInteractionComplete?(event: SceneComponentInteractionEvent): void;
1399
- }
1400
- interface SceneQueryStateControllerState extends SceneObjectState {
1401
- isRunning: boolean;
1402
- enableProfiling?: boolean;
1403
- onProfileComplete?(event: SceneInteractionProfileEvent): void;
1404
- }
1405
- interface SceneQueryControllerLike extends SceneObject<SceneQueryStateControllerState> {
1406
- isQueryController: true;
1407
- cancelAll(): void;
1408
- queryStarted(entry: SceneQueryControllerEntry): void;
1409
- queryCompleted(entry: SceneQueryControllerEntry): void;
1410
- startProfile(name: string): void;
1411
- cancelProfile(): void;
1412
- runningQueriesCount(): number;
1413
- }
1414
-
1415
1514
  /**
1416
1515
  * Returns the closest query controller undefined if none found
1417
1516
  */
@@ -1591,6 +1690,37 @@ declare class PanelContextEventBus implements EventBus {
1591
1690
  newScopedBus(key: string, filter: EventFilterOptions): EventBus;
1592
1691
  }
1593
1692
 
1693
+ interface PanelProfilingConfig {
1694
+ watchStateKey?: string;
1695
+ }
1696
+ /**
1697
+ * Manages VizPanelRenderProfiler instances for all panels in a scene object.
1698
+ * Extracted from DashboardPanelProfilingBehavior to allow composition with SceneRenderProfiler.
1699
+ */
1700
+ declare class PanelProfilingManager {
1701
+ private _config;
1702
+ private _sceneObject?;
1703
+ private _subscriptions;
1704
+ constructor(_config: PanelProfilingConfig);
1705
+ /**
1706
+ * Attach panel profiling to a scene object
1707
+ */
1708
+ attachToScene(sceneObject: SceneObject): void;
1709
+ /**
1710
+ * Attach VizPanelRenderProfiler to a specific panel if it doesn't already have one
1711
+ * @param panel - The VizPanel to attach profiling to
1712
+ */
1713
+ attachProfilerToPanel(panel: VizPanel): void;
1714
+ /**
1715
+ * Attach VizPanelRenderProfiler to all VizPanels that don't already have one
1716
+ */
1717
+ private _attachProfilersToPanels;
1718
+ /**
1719
+ * Clean up subscriptions and references
1720
+ */
1721
+ cleanup(): void;
1722
+ }
1723
+
1594
1724
  /**
1595
1725
  * SceneRenderProfiler tracks dashboard interaction performance including:
1596
1726
  * - Total interaction duration
@@ -1610,9 +1740,17 @@ declare class PanelContextEventBus implements EventBus {
1610
1740
  */
1611
1741
  declare class SceneRenderProfiler {
1612
1742
  #private;
1743
+ private metadata;
1744
+ private _panelProfilingManager?;
1613
1745
  private queryController?;
1614
- constructor(queryController?: SceneQueryControllerLike | undefined);
1746
+ constructor(panelProfilingConfig?: PanelProfilingConfig);
1747
+ /** Set generic metadata for observer notifications */
1748
+ setMetadata(metadata: Record<string, unknown>): void;
1615
1749
  setQueryController(queryController: SceneQueryControllerLike): void;
1750
+ /** Attach panel profiling to a scene object */
1751
+ attachPanelProfiling(sceneObject: SceneObject): void;
1752
+ /** Attach profiler to a specific panel */
1753
+ attachProfilerToPanel(panel: VizPanel): void;
1616
1754
  setInteractionCompleteHandler(handler?: (event: SceneComponentInteractionEvent) => void): void;
1617
1755
  private setupVisibilityChangeHandler;
1618
1756
  cleanup(): void;
@@ -1621,14 +1759,9 @@ declare class SceneRenderProfiler {
1621
1759
  stopInteraction(): void;
1622
1760
  getCurrentInteraction(): string | null;
1623
1761
  /**
1624
- * Starts a new profile for performance measurement.
1625
- *
1626
- * @param name - The origin/trigger of the profile (e.g., 'time_range_change', 'variable_value_changed')
1627
- * @param force - Whether this is a "forced" profile (true) or "clean" profile (false)
1628
- * - "forced": Started by canceling an existing profile that was recording trailing frames
1629
- * This happens when a new user interaction occurs before the previous one
1630
- * finished measuring its performance impact
1631
- * - "clean": Started when no profile is currently active
1762
+ * Start new performance profile
1763
+ * @param name - Profile trigger (e.g., 'time_range_change')
1764
+ * @param force - True if canceling existing profile, false if starting clean
1632
1765
  */
1633
1766
  private _startNewProfile;
1634
1767
  private recordProfileTail;
@@ -1677,26 +1810,250 @@ declare class LiveNowTimer extends SceneObjectBase<LiveNowTimerState> {
1677
1810
  get isEnabled(): boolean;
1678
1811
  }
1679
1812
 
1680
- type index$1_ActWhenVariableChanged = ActWhenVariableChanged;
1681
- declare const index$1_ActWhenVariableChanged: typeof ActWhenVariableChanged;
1682
- type index$1_CursorSync = CursorSync;
1683
- declare const index$1_CursorSync: typeof CursorSync;
1684
- type index$1_LiveNowTimer = LiveNowTimer;
1685
- declare const index$1_LiveNowTimer: typeof LiveNowTimer;
1686
- type index$1_SceneInteractionTracker = SceneInteractionTracker;
1687
- declare const index$1_SceneInteractionTracker: typeof SceneInteractionTracker;
1688
- type index$1_SceneQueryController = SceneQueryController;
1689
- declare const index$1_SceneQueryController: typeof SceneQueryController;
1690
- declare namespace index$1 {
1813
+ type index$2_ActWhenVariableChanged = ActWhenVariableChanged;
1814
+ declare const index$2_ActWhenVariableChanged: typeof ActWhenVariableChanged;
1815
+ type index$2_CursorSync = CursorSync;
1816
+ declare const index$2_CursorSync: typeof CursorSync;
1817
+ type index$2_LiveNowTimer = LiveNowTimer;
1818
+ declare const index$2_LiveNowTimer: typeof LiveNowTimer;
1819
+ type index$2_SceneInteractionTracker = SceneInteractionTracker;
1820
+ declare const index$2_SceneInteractionTracker: typeof SceneInteractionTracker;
1821
+ type index$2_SceneQueryController = SceneQueryController;
1822
+ declare const index$2_SceneQueryController: typeof SceneQueryController;
1823
+ declare namespace index$2 {
1691
1824
  export {
1692
- index$1_ActWhenVariableChanged as ActWhenVariableChanged,
1693
- index$1_CursorSync as CursorSync,
1694
- index$1_LiveNowTimer as LiveNowTimer,
1695
- index$1_SceneInteractionTracker as SceneInteractionTracker,
1696
- index$1_SceneQueryController as SceneQueryController,
1825
+ index$2_ActWhenVariableChanged as ActWhenVariableChanged,
1826
+ index$2_CursorSync as CursorSync,
1827
+ index$2_LiveNowTimer as LiveNowTimer,
1828
+ index$2_SceneInteractionTracker as SceneInteractionTracker,
1829
+ index$2_SceneQueryController as SceneQueryController,
1697
1830
  };
1698
1831
  }
1699
1832
 
1833
+ /**
1834
+ * Centralized performance tracking system using observer pattern.
1835
+ * External systems (like Grafana) implement ScenePerformanceObserver to receive performance events.
1836
+ */
1837
+ declare function generateOperationId(prefix?: string): string;
1838
+ /** Base interface for all performance events */
1839
+ interface BasePerformanceEvent {
1840
+ operationId: string;
1841
+ timestamp: number;
1842
+ duration?: number;
1843
+ error?: string;
1844
+ }
1845
+ interface DashboardInteractionStartData extends BasePerformanceEvent {
1846
+ interactionType: string;
1847
+ metadata?: Record<string, unknown>;
1848
+ }
1849
+ interface DashboardInteractionMilestoneData extends BasePerformanceEvent {
1850
+ interactionType: string;
1851
+ milestone: string;
1852
+ metadata?: Record<string, unknown>;
1853
+ }
1854
+ interface DashboardInteractionCompleteData extends BasePerformanceEvent {
1855
+ interactionType: string;
1856
+ networkDuration?: number;
1857
+ longFramesCount: number;
1858
+ longFramesTotalTime: number;
1859
+ metadata?: Record<string, unknown>;
1860
+ }
1861
+ /** Metadata interface for transform operations */
1862
+ interface TransformMetadata {
1863
+ transformationId: string;
1864
+ transformationCount: number;
1865
+ seriesTransformationCount: number;
1866
+ annotationTransformationCount: number;
1867
+ success?: boolean;
1868
+ error?: string;
1869
+ }
1870
+ /** Metadata interface for query operations */
1871
+ interface QueryMetadata {
1872
+ queryId: string;
1873
+ queryType: string;
1874
+ }
1875
+ /** Metadata interface for render operations */
1876
+ interface RenderMetadata {
1877
+ }
1878
+ /** Metadata interface for plugin load operations */
1879
+ interface PluginLoadMetadata {
1880
+ pluginId: string;
1881
+ fromCache?: boolean;
1882
+ pluginLoadTime?: number;
1883
+ }
1884
+ /** Metadata interface for field config operations */
1885
+ interface FieldConfigMetadata {
1886
+ }
1887
+ /** Base interface for panel performance events */
1888
+ interface BasePanelPerformanceData extends BasePerformanceEvent {
1889
+ panelId: string;
1890
+ panelKey: string;
1891
+ pluginId: string;
1892
+ pluginVersion?: string;
1893
+ panelTitle?: string;
1894
+ }
1895
+ /** Transform operation performance data */
1896
+ interface PanelTransformPerformanceData extends BasePanelPerformanceData {
1897
+ operation: 'transform';
1898
+ metadata: TransformMetadata;
1899
+ }
1900
+ /** Query operation performance data */
1901
+ interface PanelQueryPerformanceData extends BasePanelPerformanceData {
1902
+ operation: 'query';
1903
+ metadata: QueryMetadata;
1904
+ }
1905
+ /** Render operation performance data */
1906
+ interface PanelRenderPerformanceData extends BasePanelPerformanceData {
1907
+ operation: 'render';
1908
+ metadata: RenderMetadata;
1909
+ }
1910
+ /** Plugin load operation performance data */
1911
+ interface PanelPluginLoadPerformanceData extends BasePanelPerformanceData {
1912
+ operation: 'plugin-load';
1913
+ metadata: PluginLoadMetadata;
1914
+ }
1915
+ /** Field config operation performance data */
1916
+ interface PanelFieldConfigPerformanceData extends BasePanelPerformanceData {
1917
+ operation: 'fieldConfig';
1918
+ metadata: FieldConfigMetadata;
1919
+ }
1920
+ /** Discriminated union of all panel performance data types */
1921
+ type PanelPerformanceData = PanelTransformPerformanceData | PanelQueryPerformanceData | PanelRenderPerformanceData | PanelPluginLoadPerformanceData | PanelFieldConfigPerformanceData;
1922
+ /** Non-panel query performance data for dashboard queries (annotations, variables, etc.) */
1923
+ interface QueryPerformanceData extends BasePerformanceEvent {
1924
+ queryId: string;
1925
+ queryType: string;
1926
+ origin: string;
1927
+ }
1928
+ /**
1929
+ * Observer interface for performance monitoring
1930
+ * External systems implement this to receive performance notifications
1931
+ */
1932
+ interface ScenePerformanceObserver {
1933
+ onDashboardInteractionStart?(data: DashboardInteractionStartData): void;
1934
+ onDashboardInteractionMilestone?(data: DashboardInteractionMilestoneData): void;
1935
+ onDashboardInteractionComplete?(data: DashboardInteractionCompleteData): void;
1936
+ onPanelOperationStart?(data: PanelPerformanceData): void;
1937
+ onPanelOperationComplete?(data: PanelPerformanceData): void;
1938
+ onQueryStart?(data: QueryPerformanceData): void;
1939
+ onQueryComplete?(data: QueryPerformanceData): void;
1940
+ }
1941
+ /**
1942
+ * Centralized performance tracker
1943
+ * Manages observers and provides methods for scene objects to report performance events
1944
+ */
1945
+ declare class ScenePerformanceTracker {
1946
+ private static instance;
1947
+ private observers;
1948
+ static getInstance(): ScenePerformanceTracker;
1949
+ /**
1950
+ * Register a performance observer
1951
+ */
1952
+ addObserver(observer: ScenePerformanceObserver): () => void;
1953
+ /**
1954
+ * Remove all observers (for testing)
1955
+ */
1956
+ clearObservers(): void;
1957
+ /**
1958
+ * Get current observer count (for debugging)
1959
+ */
1960
+ getObserverCount(): number;
1961
+ private notifyObservers;
1962
+ notifyDashboardInteractionStart(data: DashboardInteractionStartData): void;
1963
+ notifyDashboardInteractionMilestone(data: DashboardInteractionMilestoneData): void;
1964
+ notifyDashboardInteractionComplete(data: DashboardInteractionCompleteData): void;
1965
+ notifyPanelOperationStart(data: PanelPerformanceData): void;
1966
+ notifyPanelOperationComplete(data: PanelPerformanceData): void;
1967
+ notifyQueryStart(data: QueryPerformanceData): void;
1968
+ notifyQueryComplete(data: QueryPerformanceData): void;
1969
+ }
1970
+ /**
1971
+ * Get the global performance tracker instance
1972
+ */
1973
+ declare function getScenePerformanceTracker(): ScenePerformanceTracker;
1974
+
1975
+ /**
1976
+ * Constants for different types of dashboard interactions tracked by SceneRenderProfiler
1977
+ */
1978
+ declare const REFRESH_INTERACTION = "refresh";
1979
+ declare const TIME_RANGE_CHANGE_INTERACTION = "time_range_change";
1980
+ declare const FILTER_ADDED_INTERACTION = "filter_added";
1981
+ declare const FILTER_REMOVED_INTERACTION = "filter_removed";
1982
+ declare const FILTER_CHANGED_INTERACTION = "filter_changed";
1983
+ declare const FILTER_RESTORED_INTERACTION = "filter_restored";
1984
+ declare const VARIABLE_VALUE_CHANGED_INTERACTION = "variable_value_changed";
1985
+ declare const SCOPES_CHANGED_INTERACTION = "scopes_changed";
1986
+ declare const ADHOC_KEYS_DROPDOWN_INTERACTION = "adhoc_keys_dropdown";
1987
+ declare const ADHOC_VALUES_DROPDOWN_INTERACTION = "adhoc_values_dropdown";
1988
+ declare const GROUPBY_DIMENSIONS_INTERACTION = "groupby_dimensions";
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+
2007
+
2008
+
2009
+ declare const index$1_ADHOC_KEYS_DROPDOWN_INTERACTION: typeof ADHOC_KEYS_DROPDOWN_INTERACTION;
2010
+ declare const index$1_ADHOC_VALUES_DROPDOWN_INTERACTION: typeof ADHOC_VALUES_DROPDOWN_INTERACTION;
2011
+ type index$1_BasePerformanceEvent = BasePerformanceEvent;
2012
+ type index$1_DashboardInteractionCompleteData = DashboardInteractionCompleteData;
2013
+ type index$1_DashboardInteractionMilestoneData = DashboardInteractionMilestoneData;
2014
+ type index$1_DashboardInteractionStartData = DashboardInteractionStartData;
2015
+ declare const index$1_FILTER_ADDED_INTERACTION: typeof FILTER_ADDED_INTERACTION;
2016
+ declare const index$1_FILTER_CHANGED_INTERACTION: typeof FILTER_CHANGED_INTERACTION;
2017
+ declare const index$1_FILTER_REMOVED_INTERACTION: typeof FILTER_REMOVED_INTERACTION;
2018
+ declare const index$1_FILTER_RESTORED_INTERACTION: typeof FILTER_RESTORED_INTERACTION;
2019
+ type index$1_FieldConfigMetadata = FieldConfigMetadata;
2020
+ declare const index$1_GROUPBY_DIMENSIONS_INTERACTION: typeof GROUPBY_DIMENSIONS_INTERACTION;
2021
+ type index$1_LongFrameDetector = LongFrameDetector;
2022
+ declare const index$1_LongFrameDetector: typeof LongFrameDetector;
2023
+ type index$1_PanelFieldConfigPerformanceData = PanelFieldConfigPerformanceData;
2024
+ type index$1_PanelPerformanceData = PanelPerformanceData;
2025
+ type index$1_PanelPluginLoadPerformanceData = PanelPluginLoadPerformanceData;
2026
+ type index$1_PanelProfilingConfig = PanelProfilingConfig;
2027
+ type index$1_PanelProfilingManager = PanelProfilingManager;
2028
+ declare const index$1_PanelProfilingManager: typeof PanelProfilingManager;
2029
+ type index$1_PanelQueryPerformanceData = PanelQueryPerformanceData;
2030
+ type index$1_PanelRenderPerformanceData = PanelRenderPerformanceData;
2031
+ type index$1_PanelTransformPerformanceData = PanelTransformPerformanceData;
2032
+ type index$1_PluginLoadMetadata = PluginLoadMetadata;
2033
+ type index$1_QueryMetadata = QueryMetadata;
2034
+ type index$1_QueryPerformanceData = QueryPerformanceData;
2035
+ declare const index$1_REFRESH_INTERACTION: typeof REFRESH_INTERACTION;
2036
+ type index$1_RenderMetadata = RenderMetadata;
2037
+ declare const index$1_SCOPES_CHANGED_INTERACTION: typeof SCOPES_CHANGED_INTERACTION;
2038
+ type index$1_ScenePerformanceObserver = ScenePerformanceObserver;
2039
+ type index$1_ScenePerformanceTracker = ScenePerformanceTracker;
2040
+ declare const index$1_ScenePerformanceTracker: typeof ScenePerformanceTracker;
2041
+ type index$1_SceneRenderProfiler = SceneRenderProfiler;
2042
+ declare const index$1_SceneRenderProfiler: typeof SceneRenderProfiler;
2043
+ declare const index$1_TIME_RANGE_CHANGE_INTERACTION: typeof TIME_RANGE_CHANGE_INTERACTION;
2044
+ type index$1_TransformMetadata = TransformMetadata;
2045
+ declare const index$1_VARIABLE_VALUE_CHANGED_INTERACTION: typeof VARIABLE_VALUE_CHANGED_INTERACTION;
2046
+ type index$1_VizPanelRenderProfiler = VizPanelRenderProfiler;
2047
+ declare const index$1_VizPanelRenderProfiler: typeof VizPanelRenderProfiler;
2048
+ declare const index$1_generateOperationId: typeof generateOperationId;
2049
+ declare const index$1_getScenePerformanceTracker: typeof getScenePerformanceTracker;
2050
+ declare namespace index$1 {
2051
+ export { index$1_ADHOC_KEYS_DROPDOWN_INTERACTION as ADHOC_KEYS_DROPDOWN_INTERACTION, index$1_ADHOC_VALUES_DROPDOWN_INTERACTION as ADHOC_VALUES_DROPDOWN_INTERACTION, index$1_FILTER_ADDED_INTERACTION as FILTER_ADDED_INTERACTION, index$1_FILTER_CHANGED_INTERACTION as FILTER_CHANGED_INTERACTION, index$1_FILTER_REMOVED_INTERACTION as FILTER_REMOVED_INTERACTION, index$1_FILTER_RESTORED_INTERACTION as FILTER_RESTORED_INTERACTION, index$1_GROUPBY_DIMENSIONS_INTERACTION as GROUPBY_DIMENSIONS_INTERACTION, index$1_LongFrameDetector as LongFrameDetector, index$1_PanelProfilingManager as PanelProfilingManager, index$1_REFRESH_INTERACTION as REFRESH_INTERACTION, index$1_SCOPES_CHANGED_INTERACTION as SCOPES_CHANGED_INTERACTION, index$1_ScenePerformanceTracker as ScenePerformanceTracker, index$1_SceneRenderProfiler as SceneRenderProfiler, index$1_TIME_RANGE_CHANGE_INTERACTION as TIME_RANGE_CHANGE_INTERACTION, index$1_VARIABLE_VALUE_CHANGED_INTERACTION as VARIABLE_VALUE_CHANGED_INTERACTION, index$1_VizPanelRenderProfiler as VizPanelRenderProfiler, index$1_generateOperationId as generateOperationId, index$1_getScenePerformanceTracker as getScenePerformanceTracker };
2052
+ export type { index$1_BasePerformanceEvent as BasePerformanceEvent, index$1_DashboardInteractionCompleteData as DashboardInteractionCompleteData, index$1_DashboardInteractionMilestoneData as DashboardInteractionMilestoneData, index$1_DashboardInteractionStartData as DashboardInteractionStartData, index$1_FieldConfigMetadata as FieldConfigMetadata, index$1_PanelFieldConfigPerformanceData as PanelFieldConfigPerformanceData, index$1_PanelPerformanceData as PanelPerformanceData, index$1_PanelPluginLoadPerformanceData as PanelPluginLoadPerformanceData, index$1_PanelProfilingConfig as PanelProfilingConfig, index$1_PanelQueryPerformanceData as PanelQueryPerformanceData, index$1_PanelRenderPerformanceData as PanelRenderPerformanceData, index$1_PanelTransformPerformanceData as PanelTransformPerformanceData, index$1_PluginLoadMetadata as PluginLoadMetadata, index$1_QueryMetadata as QueryMetadata, index$1_QueryPerformanceData as QueryPerformanceData, index$1_RenderMetadata as RenderMetadata, index$1_ScenePerformanceObserver as ScenePerformanceObserver, index$1_TransformMetadata as TransformMetadata };
2053
+ }
2054
+
2055
+ declare function writePerformanceLog(logger: string, message: string, ...rest: unknown[]): void;
2056
+
1700
2057
  /**
1701
2058
  * Base class for data layer. Handles common implementation including enabling/disabling layer and publishing results.
1702
2059
  */
@@ -2022,6 +2379,10 @@ declare class SceneDataTransformer extends SceneObjectBase<SceneDataTransformerS
2022
2379
  setContainerWidth(width: number): void;
2023
2380
  isDataReadyToDisplay(): boolean;
2024
2381
  reprocessTransformations(): void;
2382
+ /**
2383
+ * S3.1: Calculate transformation complexity metrics
2384
+ */
2385
+ private _calculateTransformationMetrics;
2025
2386
  cancelQuery(): void;
2026
2387
  getResultsStream(): ReplaySubject<SceneDataProviderResult>;
2027
2388
  clone(withState?: Partial<SceneDataTransformerState>): this;
@@ -2033,11 +2394,6 @@ declare class SceneDataTransformer extends SceneObjectBase<SceneDataTransformerS
2033
2394
  private _filterAndPrepareTransformationsByTopic;
2034
2395
  }
2035
2396
 
2036
- /**
2037
- * Will look for a scene object with a behavior that is a SceneQueryController and register the query with it.
2038
- */
2039
- declare function registerQueryWithController<T extends QueryResultWithState>(entry: SceneQueryControllerEntry): (queryStream: Observable<T>) => Observable<T>;
2040
-
2041
2397
  interface VariableValueSelectorsState extends SceneObjectState {
2042
2398
  layout?: ControlsLayout;
2043
2399
  }
@@ -3215,7 +3571,6 @@ declare const loadResources: ResourceLoader;
3215
3571
 
3216
3572
 
3217
3573
 
3218
-
3219
3574
 
3220
3575
 
3221
3576
  declare const sceneUtils: {
@@ -3243,5 +3598,5 @@ declare const sceneUtils: {
3243
3598
  buildPathIdFor: typeof buildPathIdFor;
3244
3599
  };
3245
3600
 
3246
- export { AdHocFiltersVariable, ConstantVariable, ControlsLabel, CustomVariable, DataProviderProxy, DataSourceVariable, EmbeddedScene, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, GroupByVariable, IntervalVariable, LazyLoader, LocalValueVariable, MultiOrSingleValueSelect, MultiValueVariable, NestedScene, NewSceneObjectAddedEvent, PATH_ID_SEPARATOR, PanelBuilders, PanelOptionsBuilders, QueryVariable, RuntimeDataSource, SafeSerializableSceneObject, SceneApp, SceneAppPage, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataTransformer, SceneDebugger, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneObjectBase, SceneObjectRef, SceneObjectStateChangedEvent, SceneObjectUrlSyncConfig, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRenderProfiler, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariableSet, SceneVariableValueChangedEvent, ScopesVariable, SplitLayout, SwitchVariable, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UserActionEvent, VariableDependencyConfig, VariableValueControl, VariableValueSelectWrapper, VariableValueSelectors, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, index$1 as behaviors, index as dataLayers, escapeUrlPipeDelimiters, formatRegistry, getExploreURL, getNonApplicablePillStyles, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, loadResources, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync };
3247
- export type { AdHocFilterWithLabels, CancelActivationHandler, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariableValue, DataLayerFilter, DataRequestEnricher, DeepPartial, EmbeddedSceneState, ExtraQueryDataProcessor, ExtraQueryDescriptor, ExtraQueryProvider, FiltersRequestEnricher, FormatVariable, InterpolationFormatParameter, MacroVariableConstructor, MultiValueVariableState, QueryRunnerState, SceneActivationHandler, SceneAppDrilldownView, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneComponent, SceneComponentProps, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformerState, SceneDeactivationHandler, SceneFlexItemLike, SceneFlexItemState, SceneGridItemLike, SceneGridItemStateLike, SceneInteractionProfileEvent, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectState, SceneObjectStateChangedPayload, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneRefreshPickerState, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimeRangeLike, SceneTimeRangeState, SceneUrlSyncOptions, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSetState, SceneVariableState, SceneVariables, UrlSyncManagerLike, UseStateHookOptions, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableGetOptionsArgs, VariableValue, VariableValueOption, VariableValueSingle, VizConfig, VizPanelState };
3601
+ export { AdHocFiltersVariable, ConstantVariable, ControlsLabel, CustomVariable, DataProviderProxy, DataSourceVariable, EmbeddedScene, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, GroupByVariable, IntervalVariable, LazyLoader, LocalValueVariable, MultiOrSingleValueSelect, MultiValueVariable, NestedScene, NewSceneObjectAddedEvent, PATH_ID_SEPARATOR, PanelBuilders, PanelOptionsBuilders, QueryVariable, RuntimeDataSource, SafeSerializableSceneObject, SceneApp, SceneAppPage, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataTransformer, SceneDebugger, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneObjectBase, SceneObjectRef, SceneObjectStateChangedEvent, SceneObjectUrlSyncConfig, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariableSet, SceneVariableValueChangedEvent, ScopesVariable, SplitLayout, SwitchVariable, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UserActionEvent, VariableDependencyConfig, VariableValueControl, VariableValueSelectWrapper, VariableValueSelectors, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, index$2 as behaviors, index as dataLayers, escapeUrlPipeDelimiters, formatRegistry, getExploreURL, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, loadResources, index$1 as performanceUtils, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync, writePerformanceLog };
3602
+ export type { AdHocFilterWithLabels, CancelActivationHandler, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariableValue, DataLayerFilter, DataRequestEnricher, DeepPartial, EmbeddedSceneState, ExtraQueryDataProcessor, ExtraQueryDescriptor, ExtraQueryProvider, FiltersRequestEnricher, FormatVariable, InterpolationFormatParameter, MacroVariableConstructor, MultiValueVariableState, QueryRunnerState, SceneActivationHandler, SceneAppDrilldownView, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneComponent, SceneComponentProps, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformerState, SceneDeactivationHandler, SceneFlexItemLike, SceneFlexItemState, SceneGridItemLike, SceneGridItemStateLike, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectState, SceneObjectStateChangedPayload, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneRefreshPickerState, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimeRangeLike, SceneTimeRangeState, SceneUrlSyncOptions, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSetState, SceneVariableState, SceneVariables, UrlSyncManagerLike, UseStateHookOptions, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableGetOptionsArgs, VariableValue, VariableValueOption, VariableValueSingle, VizConfig, VizPanelState };