react-klinecharts-ui 1.0.0 → 1.2.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.
package/dist/index.d.ts CHANGED
@@ -22,12 +22,36 @@ declare const DEFAULT_PERIODS: TerminalPeriod[];
22
22
  */
23
23
 
24
24
  type AlertCondition = "crossing_up" | "crossing_down" | "crossing";
25
+ /**
26
+ * What an alert watches. Defaults to a price level on the main symbol; an
27
+ * `indicator` target watches a specific figure series value (e.g. RSI
28
+ * crossing 70, MACD signal crossover).
29
+ */
30
+ type AlertTarget = {
31
+ type: "price";
32
+ } | {
33
+ type: "indicator";
34
+ /** Indicator id as registered with klinecharts (e.g. `sub_RSI_TV`). */
35
+ indicatorId: string;
36
+ /** Figure key whose value is compared (e.g. `rsi`, `macd`, `signal`). */
37
+ figureKey: string;
38
+ };
25
39
  interface Alert {
26
40
  id: string;
41
+ /**
42
+ * The threshold the target is compared against. For a `price` target this is
43
+ * a price level; for an `indicator` target it is the indicator value to
44
+ * cross (e.g. 70 for RSI overbought).
45
+ */
27
46
  price: number;
28
47
  condition: AlertCondition;
29
48
  message?: string;
30
49
  triggered: boolean;
50
+ /**
51
+ * What the alert watches. Omit / `"price"` for the classic price-crossing
52
+ * behaviour; use `"indicator"` for indicator-value crossing.
53
+ */
54
+ target?: AlertTarget;
31
55
  /**
32
56
  * Visual style for the alert line overlay (color, label text, line/mark
33
57
  * styling, bell marker). Persisted in the store so it survives undo/redo
@@ -74,6 +98,77 @@ interface ReplayState {
74
98
  totalBars: number;
75
99
  }
76
100
 
101
+ /**
102
+ * Web Storage-compatible adapter. Pass `localStorage`, `sessionStorage`, a
103
+ * remote/IndexedDB wrapper, or an in-memory fake.
104
+ *
105
+ * Methods are **synchronous** to match the Web Storage API. For async backends
106
+ * (IndexedDB, fetch-to-server), wrap them in a sync cache that reads from
107
+ * memory and flushes in the background — the adapter contract is sync.
108
+ */
109
+ interface StorageAdapter {
110
+ getItem(key: string): string | null;
111
+ setItem(key: string, value: string): void;
112
+ removeItem(key: string): void;
113
+ }
114
+ /**
115
+ * Which slices of the provider store are persisted. Defaults to all three.
116
+ *
117
+ * - `"alerts"` — the price-alert list (`state.alerts`, including each alert's
118
+ * `triggered` flag and `extendData`).
119
+ * - `"settings"` — the `useKlinechartsUISettings` object (candle type, colors,
120
+ * axes, grid, tooltips, …).
121
+ * - `"indicators"` — the active main/sub indicator lists, their pane ids,
122
+ * custom Y-axis bindings, and visibility overrides.
123
+ */
124
+ type StorageNamespace = "alerts" | "settings" | "indicators";
125
+ declare const DEFAULT_STORAGE_NAMESPACES: readonly StorageNamespace[];
126
+ /** Default key prefix; namespaced keys become `${prefix}${namespace}`. */
127
+ declare const DEFAULT_STORAGE_KEY_PREFIX = "rkui:";
128
+ /**
129
+ * Options passed to `<KlinechartsUIProvider storage={...}>`. All fields
130
+ * optional; omitting `storage` entirely disables persistence (the default —
131
+ * backward-compatible with pre-1.1.0 behaviour).
132
+ */
133
+ interface StorageOptions {
134
+ /**
135
+ * The adapter instance. Defaults to `localStorage` (SSR-safe: a no-op
136
+ * adapter when `localStorage` is undefined, e.g. during server rendering).
137
+ */
138
+ adapter?: StorageAdapter;
139
+ /** Key prefix. Default `"rkui:"`. */
140
+ keyPrefix?: string;
141
+ /** Which namespaces to persist. Default: all three. */
142
+ namespaces?: readonly StorageNamespace[];
143
+ }
144
+ /**
145
+ * Resolved storage configuration (adapter + namespaces + prefix), computed
146
+ * once on mount and exposed via the dispatch context so hooks/tests can read
147
+ * and write through the same adapter the provider uses.
148
+ */
149
+ interface ResolvedStorage {
150
+ adapter: StorageAdapter;
151
+ namespaces: ReadonlySet<StorageNamespace>;
152
+ keyPrefix: string;
153
+ /** Build the storage key for a namespace: `${keyPrefix}${namespace}`. */
154
+ key(namespace: StorageNamespace): string;
155
+ /** Whether a namespace is configured for persistence. */
156
+ persists(namespace: StorageNamespace): boolean;
157
+ }
158
+
159
+ /**
160
+ * Resolve `window.localStorage` lazily and SSR-safely. Never throws; falls
161
+ * back to `NOOP_ADAPTER` when the global is absent or access is denied (e.g.
162
+ * cookies disabled in some browsers throw on `localStorage` access).
163
+ */
164
+ declare function createDefaultStorage(): StorageAdapter;
165
+ /**
166
+ * Turn raw `StorageOptions` into a `ResolvedStorage` with helpers. Called once
167
+ * on mount by the provider; the result is referentially stable for the life
168
+ * of the provider instance.
169
+ */
170
+ declare function resolveStorage(options: StorageOptions | undefined): ResolvedStorage;
171
+
77
172
  /**
78
173
  * Explicit partial symbol type — avoids `PickPartial<SymbolInfo, ...>` which
79
174
  * degenerates when SymbolInfo has an index signature `[key: string]: unknown`.
@@ -107,6 +202,17 @@ interface KlinechartsUIOptions {
107
202
  * These are registered once, alongside the built-in drawing-tool overlays.
108
203
  */
109
204
  overlays?: OverlayTemplate[];
205
+ /**
206
+ * Optional persistence configuration. When provided, the provider hydrates
207
+ * the listed namespaces (alerts, settings, indicators) from the adapter on
208
+ * mount and writes them back on every change. Defaults to `localStorage`
209
+ * (SSR-safe). Omit entirely to disable persistence (pre-1.1.0 behaviour).
210
+ *
211
+ * Note: this covers the reducer store only. Per-hook `useState` values
212
+ * (script code, compared symbols, watchlist, annotations) are not yet
213
+ * persisted — see the roadmap.
214
+ */
215
+ storage?: StorageOptions;
110
216
  children: ReactNode;
111
217
  /** Called on every dispatched action with the resulting new state and previous state. */
112
218
  onStateChange?: (action: KlinechartsUIAction, nextState: KlinechartsUIState, prevState: KlinechartsUIState) => void;
@@ -247,10 +353,12 @@ interface KlinechartsUIDispatchValue {
247
353
  /** Ref populated by useUndoRedo; other hooks call it to record actions. */
248
354
  undoRedoListenerRef: RefObject<UndoRedoListener | null>;
249
355
  /**
250
- * Listener set by `useAlerts.onAlertTriggered`; invoked by the provider-owned
251
- * crossing poller when an alert fires. Last writer wins (one active listener).
356
+ * Listener set registered via `useAlerts.onAlertTriggered`; invoked by the
357
+ * provider-owned crossing poller when an alert fires. A Set so multiple
358
+ * components (toolbar, status bar, sound trigger) can all observe firings
359
+ * without one overwriting the other. `onAlertTriggered` returns an unsubscribe.
252
360
  */
253
- alertTriggeredListenerRef: RefObject<((alert: Alert) => void) | null>;
361
+ alertTriggeredListenersRef: RefObject<Set<(alert: Alert) => void>>;
254
362
  /**
255
363
  * Provider-owned replay resources, shared across every `useReplay` instance
256
364
  * so there is exactly one playback timer and one data buffer. The hook reads
@@ -260,13 +368,19 @@ interface KlinechartsUIDispatchValue {
260
368
  replayIntervalRef: RefObject<ReturnType<typeof setInterval> | null>;
261
369
  replaySavedDataRef: RefObject<KLineData[]>;
262
370
  replayIndexRef: RefObject<number>;
371
+ /**
372
+ * Resolved persistence configuration, or `null` when the consumer did not
373
+ * pass the `storage` option (persistence disabled — pre-1.1.0 behaviour).
374
+ * Hooks and tests read/write through this so they share one adapter.
375
+ */
376
+ storage: ResolvedStorage | null;
263
377
  }
264
378
  /** Combined context value returned by `useKlinechartsUI()`. */
265
379
  interface KlinechartsUIContextValue extends KlinechartsUIDispatchValue {
266
380
  state: KlinechartsUIState;
267
381
  }
268
382
 
269
- declare function KlinechartsUIProvider({ datafeed, defaultSymbol, defaultPeriod, defaultTheme, defaultTimezone, defaultMainIndicators, defaultSubIndicators, defaultLocale, periods, styles, registerExtensions: shouldRegister, overlays: extraOverlays, children, onStateChange, onSymbolChange, onPeriodChange, onThemeChange, onTimezoneChange, onMainIndicatorsChange, onSubIndicatorsChange, onSettingsChange, }: KlinechartsUIOptions): ReactElement;
383
+ declare function KlinechartsUIProvider({ datafeed, defaultSymbol, defaultPeriod, defaultTheme, defaultTimezone, defaultMainIndicators, defaultSubIndicators, defaultLocale, periods, styles, registerExtensions: shouldRegister, overlays: extraOverlays, storage: storageOptions, children, onStateChange, onSymbolChange, onPeriodChange, onThemeChange, onTimezoneChange, onMainIndicatorsChange, onSubIndicatorsChange, onSettingsChange, }: KlinechartsUIOptions): ReactElement;
270
384
 
271
385
  declare const KlinechartsUIStateContext: react.Context<KlinechartsUIState | null>;
272
386
  declare const KlinechartsUIDispatchContext: react.Context<KlinechartsUIDispatchValue | null>;
@@ -420,6 +534,22 @@ interface DrawingCategoryItem {
420
534
  key: string;
421
535
  tools: DrawingToolItem[];
422
536
  }
537
+ /**
538
+ * Реактивный snapshot одного рисунка из группы `drawing_tools`.
539
+ * Поля соответствуют публичным свойствам `Overlay` в klinecharts v10.
540
+ */
541
+ interface DrawingOverlayInfo {
542
+ /** Stable id из klinecharts (chart.getOverlays()[].id). */
543
+ id: string;
544
+ /** Имя overlay'я, напр. "segment", "fibonacciLine", "arrow". */
545
+ name: string;
546
+ /** Pane id, где нарисован. */
547
+ paneId: string;
548
+ /** Текущее состояние блокировки. */
549
+ locked: boolean;
550
+ /** Текущая видимость. */
551
+ visible: boolean;
552
+ }
423
553
  interface UseDrawingToolsReturn {
424
554
  categories: DrawingCategoryItem[];
425
555
  activeTool: string | null;
@@ -428,6 +558,12 @@ interface UseDrawingToolsReturn {
428
558
  isVisible: boolean;
429
559
  /** Whether drawing tools auto-retrigger after completing a shape. Default: true. */
430
560
  autoRetrigger: boolean;
561
+ /**
562
+ * Реактивный список рисунков группы `drawing_tools`. Обновляется при
563
+ * добавлении/удалении/изменении свойств как через сам хук, так и при
564
+ * внешних изменениях (клавиша Delete, undo/redo) — см. polling-fallback.
565
+ */
566
+ overlays: DrawingOverlayInfo[];
431
567
  selectTool: (name: string) => void;
432
568
  clearActiveTool: () => void;
433
569
  setMagnetMode: (mode: MagnetMode) => void;
@@ -436,7 +572,20 @@ interface UseDrawingToolsReturn {
436
572
  removeAllDrawings: () => void;
437
573
  /** Enable/disable auto-retrigger mode. */
438
574
  setAutoRetrigger: (enabled: boolean) => void;
575
+ /** Удалить один рисунок по id. No-op если id нет в группе drawing_tools. */
576
+ removeDrawing: (id: string) => void;
577
+ /** Скрыть/показать один рисунок. */
578
+ setDrawingVisible: (id: string, visible: boolean) => void;
579
+ /** Заблокировать/разблокировать один рисунок. */
580
+ setDrawingLocked: (id: string, locked: boolean) => void;
439
581
  }
582
+ /**
583
+ * Вернуть localeKey для имени инструмента (напр. "segment" → "segment",
584
+ * "fibonacciLine" → "fibonacci_line"). Если имя не найдено в
585
+ * `DRAWING_CATEGORIES` — вернуть само имя как fallback, чтобы потребитель
586
+ * всегда получал человекочитаемую строку без дублирования таблицы категорий.
587
+ */
588
+ declare function drawingLabel(name: string): string;
440
589
  declare function useDrawingTools(): UseDrawingToolsReturn;
441
590
 
442
591
  interface CandleTypeOption {
@@ -769,10 +918,18 @@ declare function useCrosshair(): UseCrosshairReturn;
769
918
 
770
919
  interface UseAlertsReturn {
771
920
  alerts: Alert[];
772
- addAlert: (price: number, condition: AlertCondition, message?: string, extendData?: AlertLineExtendData) => string;
921
+ addAlert: (price: number, condition: AlertCondition, message?: string, extendData?: AlertLineExtendData,
922
+ /** Alert target: price (default) or an indicator figure value. */
923
+ target?: AlertTarget) => string;
773
924
  removeAlert: (id: string) => void;
774
925
  clearAlerts: () => void;
775
- onAlertTriggered: (callback: (alert: Alert) => void) => void;
926
+ /**
927
+ * Register a callback fired when any alert crosses its target. Returns an
928
+ * unsubscribe function. Multiple components can register simultaneously —
929
+ * every registered listener is invoked on each firing (no longer
930
+ * last-writer-wins).
931
+ */
932
+ onAlertTriggered: (callback: (alert: Alert) => void) => () => void;
776
933
  }
777
934
  /**
778
935
  * Headless hook for price-crossing alerts.
@@ -1019,6 +1176,110 @@ declare const TA: {
1019
1176
  hma: (data: number[], period: number) => (number | null)[];
1020
1177
  };
1021
1178
 
1179
+ /** One chart cell in a workspace grid. */
1180
+ interface ChartCell {
1181
+ /** Stable cell id (used as React key + workspace registry key). */
1182
+ id: string;
1183
+ symbol: PartialSymbolInfo;
1184
+ period: TerminalPeriod;
1185
+ }
1186
+ /** Top-level workspace state. */
1187
+ interface WorkspaceState {
1188
+ /** The chart cells that make up the layout grid. */
1189
+ cells: ChartCell[];
1190
+ /** Currently focused cell (drives keyboard shortcuts etc.). */
1191
+ activeCellId: string | null;
1192
+ }
1193
+ type WorkspaceAction = {
1194
+ type: "SET_CELLS";
1195
+ cells: ChartCell[];
1196
+ } | {
1197
+ type: "ADD_CELL";
1198
+ cell: ChartCell;
1199
+ } | {
1200
+ type: "REMOVE_CELL";
1201
+ id: string;
1202
+ } | {
1203
+ type: "SET_CELL_SYMBOL";
1204
+ id: string;
1205
+ symbol: PartialSymbolInfo;
1206
+ } | {
1207
+ type: "SET_CELL_PERIOD";
1208
+ id: string;
1209
+ period: TerminalPeriod;
1210
+ } | {
1211
+ type: "SET_ACTIVE_CELL";
1212
+ id: string | null;
1213
+ };
1214
+ /** Channels that can be mirrored between charts in the workspace. */
1215
+ type SyncChannel = "crosshair" | "scroll" | "zoom" | "symbol" | "period";
1216
+ /** Default: every channel mirrored (fully-linked workspace). */
1217
+ declare const DEFAULT_SYNC_CONFIG: Record<SyncChannel, boolean>;
1218
+ /** Per-channel enable/disable for chart mirroring. */
1219
+ type SyncConfig = Partial<Record<SyncChannel, boolean>>;
1220
+ /**
1221
+ * The workspace context value. Exposes the reducer state, the dispatch, and a
1222
+ * chart-instance registry that `useChartSync` populates and the sync logic
1223
+ * iterates over. The registry is intentionally a mutable ref (Map) — chart
1224
+ * instances come and go as cells mount/unmount and we don't want a state bump
1225
+ * on every registration.
1226
+ */
1227
+ interface WorkspaceContextValue {
1228
+ state: WorkspaceState;
1229
+ dispatch: Dispatch<WorkspaceAction>;
1230
+ /** cellId → Chart instance registry. */
1231
+ chartsRef: {
1232
+ current: Map<string, Chart>;
1233
+ };
1234
+ /** Re-entrancy guard so mirroring doesn't feedback-loop. */
1235
+ broadcastingRef: {
1236
+ current: boolean;
1237
+ };
1238
+ /** Resolved sync config (defaults merged in). */
1239
+ sync: Record<SyncChannel, boolean>;
1240
+ }
1241
+
1242
+ interface WorkspaceProviderProps {
1243
+ /** Initial chart cells for the grid. */
1244
+ defaultCells: ChartCell[];
1245
+ /** Per-channel sync enable/disable. Defaults to all channels on. */
1246
+ sync?: SyncConfig;
1247
+ children: ReactNode;
1248
+ }
1249
+ /**
1250
+ * Coordinator above a grid of `<KlinechartsUIProvider>` trees. Holds the
1251
+ * workspace layout state (cells, active cell), a chart-instance registry that
1252
+ * `useChartSync` populates, and the sync configuration. Charts stay isolated
1253
+ * per provider — alerts/replay/drawings are per-cell in this foundation.
1254
+ */
1255
+ declare function WorkspaceProvider({ defaultCells, sync, children, }: WorkspaceProviderProps): ReactNode;
1256
+
1257
+ /**
1258
+ * Read the workspace context. Throws if used outside a `<WorkspaceProvider>`.
1259
+ */
1260
+ declare function useWorkspace(): WorkspaceContextValue;
1261
+
1262
+ interface UseChartSyncOptions {
1263
+ /** This cell's id; must match a cell in the workspace state. */
1264
+ cellId: string;
1265
+ }
1266
+ /**
1267
+ * Bridge hook: call this inside a `<KlinechartsUIProvider>` (typically via a
1268
+ * `<ChartSyncBridge cellId={...} />` component). It registers the provider's
1269
+ * chart with the workspace registry and mirrors viewport/crosshair/zoom events
1270
+ * to the other registered charts, and keeps the workspace's notion of this
1271
+ * cell's symbol/period up to date.
1272
+ *
1273
+ * Mirroring uses only the PUBLIC klinecharts API (`executeAction`,
1274
+ * `scrollToTimestamp`, `setBarSpace`), not internal `_chartStore` fields, so it
1275
+ * survives klinecharts version upgrades. A re-entrancy guard
1276
+ * (`broadcastingRef`) prevents feedback loops.
1277
+ *
1278
+ * Limitations: klinecharts has no `setVisibleRange`, so scroll sync aligns the
1279
+ * right edge via `scrollToTimestamp(realTo)` — close but not pixel-exact.
1280
+ */
1281
+ declare function useChartSync({ cellId }: UseChartSyncOptions): void;
1282
+
1022
1283
  declare const arrow: OverlayTemplate;
1023
1284
 
1024
1285
  declare const circle: OverlayTemplate;
@@ -1097,4 +1358,4 @@ declare const superTrend: IndicatorTemplate;
1097
1358
 
1098
1359
  declare const vwap: IndicatorTemplate;
1099
1360
 
1100
- export { type AddIndicatorOptions, type Alert, type AlertCondition, AlertLineExtendData, type Annotation, CANDLE_TYPES, COMPARE_RULES, type CandleTypeItem, type CandleTypeOption, type ChartLayoutState, type CompareRule, type CompareSymbol, type CrosshairBarData, DEFAULT_PERIODS, DRAWING_CATEGORIES, type Datafeed, type DrawingCategoryItem, type DrawingTool, type DrawingToolCategory, type DrawingToolItem, type ExportFormat, INDICATOR_PARAMS, type IndicatorDefinition, type IndicatorInfo, type IndicatorParamConfig, type KlinechartsUIAction, type KlinechartsUIContextValue, KlinechartsUIDispatchContext, type KlinechartsUIDispatchValue, type KlinechartsUIOptions, KlinechartsUIProvider, type KlinechartsUISettingsState, type KlinechartsUIState, KlinechartsUIStateContext, type LayoutEntry, MAIN_INDICATORS, type MagnetMode, type MeasurePoint, type MeasureResult, OrderLineExtendData, type OrderLineOptions, PRICE_AXIS_TYPES, type PartialSymbolInfo, type PriceAxisType, type ReplaySpeed, SUB_INDICATORS, type ScriptPlacement, TA, TIMEZONES, TOOLTIP_SHOW_RULES, type TerminalPeriod, type TimezoneItem, type TimezoneOption, type TooltipShowRule, type UndoRedoAction, type UndoRedoActionType, type UseAlertsReturn, type UseAnnotationsReturn, type UseChartAxesReturn, type UseCompareReturn, type UseCrosshairReturn, type UseDataExportReturn, type UseDrawingToolsReturn, type UseFullscreenReturn, type UseHotkeysReturn, type UseIndicatorsReturn, type UseKlinechartsUILoadingReturn, type UseKlinechartsUISettingsReturn, type UseKlinechartsUIThemeReturn, type UseLayoutManagerReturn, type UseMeasureReturn, type UseOrderLinesReturn, type UsePeriodsReturn, type UseReplayReturn, type UseScreenshotReturn, type UseScriptEditorReturn, type UseSymbolSearchReturn, type UseTimezoneReturn, type UseUndoRedoReturn, type UseWatchlistReturn, type WatchlistItem, YAXIS_POSITIONS, type YAxisPosition, abcd, anyWaves, arrow, bollTv, brush, cci, circle, createDataLoader, eightWaves, elliottWave, fibRetracement, fibonacciCircle, fibonacciExtension, fibonacciSegment, fibonacciSpeedResistanceFan, fibonacciSpiral, fiveWaves, gannBox, gannFan, hma, ichimoku, longPosition, maRibbon, macdTv, measure, parallelChannel, parallelogram, pivotPoints, ray, rect, rsiTv, shortPosition, stochastic, superTrend, threeWaves, triangle, useAlerts, useAnnotations, useChartAxes, useCompare, useCrosshair, useDataExport, useDrawingTools, useFullscreen, useHotkeys, useIndicators, useKlinechartsUI, useKlinechartsUILoading, useKlinechartsUISettings, useKlinechartsUITheme, useLayoutManager, useMeasure, useOrderLines, usePeriods, useReplay, useScreenshot, useScriptEditor, useSymbolSearch, useTimezone, useUndoRedo, useWatchlist, vwap, xabcd };
1361
+ export { type AddIndicatorOptions, type Alert, type AlertCondition, AlertLineExtendData, type AlertTarget, type Annotation, CANDLE_TYPES, COMPARE_RULES, type CandleTypeItem, type CandleTypeOption, type ChartCell, type ChartLayoutState, type CompareRule, type CompareSymbol, type CrosshairBarData, DEFAULT_PERIODS, DEFAULT_STORAGE_KEY_PREFIX, DEFAULT_STORAGE_NAMESPACES, DEFAULT_SYNC_CONFIG, DRAWING_CATEGORIES, type Datafeed, type DrawingCategoryItem, type DrawingOverlayInfo, type DrawingTool, type DrawingToolCategory, type DrawingToolItem, type ExportFormat, INDICATOR_PARAMS, type IndicatorDefinition, type IndicatorInfo, type IndicatorParamConfig, type KlinechartsUIAction, type KlinechartsUIContextValue, KlinechartsUIDispatchContext, type KlinechartsUIDispatchValue, type KlinechartsUIOptions, KlinechartsUIProvider, type KlinechartsUISettingsState, type KlinechartsUIState, KlinechartsUIStateContext, type LayoutEntry, MAIN_INDICATORS, type MagnetMode, type MeasurePoint, type MeasureResult, OrderLineExtendData, type OrderLineOptions, PRICE_AXIS_TYPES, type PartialSymbolInfo, type PriceAxisType, type ReplaySpeed, type ResolvedStorage, SUB_INDICATORS, type ScriptPlacement, type StorageAdapter, type StorageNamespace, type StorageOptions, type SyncChannel, type SyncConfig, TA, TIMEZONES, TOOLTIP_SHOW_RULES, type TerminalPeriod, type TimezoneItem, type TimezoneOption, type TooltipShowRule, type UndoRedoAction, type UndoRedoActionType, type UseAlertsReturn, type UseAnnotationsReturn, type UseChartAxesReturn, type UseChartSyncOptions, type UseCompareReturn, type UseCrosshairReturn, type UseDataExportReturn, type UseDrawingToolsReturn, type UseFullscreenReturn, type UseHotkeysReturn, type UseIndicatorsReturn, type UseKlinechartsUILoadingReturn, type UseKlinechartsUISettingsReturn, type UseKlinechartsUIThemeReturn, type UseLayoutManagerReturn, type UseMeasureReturn, type UseOrderLinesReturn, type UsePeriodsReturn, type UseReplayReturn, type UseScreenshotReturn, type UseScriptEditorReturn, type UseSymbolSearchReturn, type UseTimezoneReturn, type UseUndoRedoReturn, type UseWatchlistReturn, type WatchlistItem, type WorkspaceAction, type WorkspaceContextValue, WorkspaceProvider, type WorkspaceProviderProps, type WorkspaceState, YAXIS_POSITIONS, type YAxisPosition, abcd, anyWaves, arrow, bollTv, brush, cci, circle, createDataLoader, createDefaultStorage, drawingLabel, eightWaves, elliottWave, fibRetracement, fibonacciCircle, fibonacciExtension, fibonacciSegment, fibonacciSpeedResistanceFan, fibonacciSpiral, fiveWaves, gannBox, gannFan, hma, ichimoku, longPosition, maRibbon, macdTv, measure, parallelChannel, parallelogram, pivotPoints, ray, rect, resolveStorage, rsiTv, shortPosition, stochastic, superTrend, threeWaves, triangle, useAlerts, useAnnotations, useChartAxes, useChartSync, useCompare, useCrosshair, useDataExport, useDrawingTools, useFullscreen, useHotkeys, useIndicators, useKlinechartsUI, useKlinechartsUILoading, useKlinechartsUISettings, useKlinechartsUITheme, useLayoutManager, useMeasure, useOrderLines, usePeriods, useReplay, useScreenshot, useScriptEditor, useSymbolSearch, useTimezone, useUndoRedo, useWatchlist, useWorkspace, vwap, xabcd };