acttrader-charts 1.0.21 → 1.1.0-beta.6

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
@@ -1,5 +1,5 @@
1
- import { C as ChartConfig, O as OHLCVBar, I as IIndicator, a as ChartEventMap, T as Timeframe, S as SeriesType, b as ChartState, D as DrawingToolType, c as IDrawing, d as IWebSocketAdapter, e as TradeLevelType, A as AnyLevel, f as DrawingPoint, g as ScaleManager, V as Viewport, P as PriceRange$1, h as DrawingHandle, i as SerializedDrawing, j as Tick, k as StreamStatus } from './MACD-DGFPNwy9.js';
2
- export { l as ActiveIndicatorState, B as BollingerBands, m as BottomBarColors, n as BottomBarLabels, o as BottomBarUiConfig, p as CanvasColorSettings, q as ChartLabels, r as ChartMiscLabels, s as ChartTheme, t as ChartThemeUi, u as CrosshairPosition, v as CrosshairUiConfig, w as DARK_THEME, x as DEFAULT_BOTTOM_BAR_CONFIG, y as DEFAULT_CROSSHAIR_CONFIG, z as DEFAULT_DRAWING_TOOLBAR_CONFIG, E as DEFAULT_INDICATOR_OVERLAY_CONFIG, F as DEFAULT_LABELS, G as DEFAULT_PRICE_AXIS_CONFIG, H as DEFAULT_TIME_AXIS_CONFIG, J as DEFAULT_TOP_BAR_CONFIG, K as DEFAULT_TRADE_BUTTON_CONFIG, L as DEFAULT_UI_CONFIG, M as DataLoaderParams, N as DeepPartial, Q as DeepPartialChartTheme, R as DialogLabels, U as DrawingToolbarColors, W as DrawingToolbarLabels, X as DrawingToolbarUiConfig, Y as Duration, Z as EMA, _ as IndicatorOverlayColors, $ as IndicatorOverlayUiConfig, a0 as IndicatorParams, a1 as IndicatorResult, a2 as IndicatorStateEntry, a3 as LIGHT_THEME, a4 as MACD, a5 as OhlcLabels, a6 as OrderSubmit, a7 as Padding, a8 as PendingOrderLevel, a9 as PositionLevel, aa as PositionRenderStyle, ab as PriceAxisUiConfig, ac as RSI, ad as SMA, ae as Theme, af as ThemeOverrides, ag as TimeAxisUiConfig, ah as TopBarColors, ai as TopBarLabels, aj as TopBarUiConfig, ak as TradeButtonUiConfig, al as TradeDisplayFilter, am as TradeLabels, an as TradeLevel, ao as TradeLevelColors, ap as TradePanelColors, aq as UiConfig, ar as deepMergeTheme, as as resolveCssVarsInTheme, at as resolveLabels, au as resolveUiConfig } from './MACD-DGFPNwy9.js';
1
+ import { C as ChartConfig, O as OHLCVBar, I as IIndicator, a as IndicatorParams, b as ChartEventMap, T as Timeframe, S as SeriesType, c as ChartState, D as DrawingToolType, d as IDrawing, A as AnyDrawingStyle, e as IWebSocketAdapter, f as TradeLevelType, L as LayoutSyncState, g as ChartTheme, h as AnyLevel, i as DrawingPoint, j as ScaleManager, V as Viewport, P as PriceRange$1, k as DrawingHandle, l as SerializedDrawing, m as Tick, n as StreamStatus } from './MACD-7Y0rnDBQ.js';
2
+ export { o as ActiveIndicatorState, B as BollingerBands, p as BottomBarColors, q as BottomBarLabels, r as BottomBarUiConfig, s as CanvasColorSettings, t as ChartLabels, u as ChartMiscLabels, v as ChartThemeUi, w as CrosshairPosition, x as CrosshairUiConfig, y as DARK_THEME, z as DEFAULT_BOTTOM_BAR_CONFIG, E as DEFAULT_CROSSHAIR_CONFIG, F as DEFAULT_DRAWING_TOOLBAR_CONFIG, G as DEFAULT_INDICATOR_OVERLAY_CONFIG, H as DEFAULT_LABELS, J as DEFAULT_LAYOUT_SYNC, K as DEFAULT_PRICE_AXIS_CONFIG, M as DEFAULT_TIME_AXIS_CONFIG, N as DEFAULT_TOP_BAR_CONFIG, Q as DEFAULT_TRADE_BUTTON_CONFIG, R as DEFAULT_UI_CONFIG, U as DataLoaderParams, W as DeepPartial, X as DeepPartialChartTheme, Y as DialogLabels, Z as DrawingToolbarColors, _ as DrawingToolbarLabels, $ as DrawingToolbarUiConfig, a0 as Duration, a1 as EMA, a2 as IndicatorOverlayColors, a3 as IndicatorOverlayUiConfig, a4 as IndicatorResult, a5 as IndicatorStateEntry, a6 as LAYOUT_PRESETS, a7 as LIGHT_THEME, a8 as LayoutPreset, a9 as MACD, aa as OhlcLabels, ab as OrderSubmit, ac as PRESETS_BY_COUNT, ad as PRESET_COUNTS, ae as PRESET_LABEL, af as Padding, ag as PendingOrderLevel, ah as PositionLevel, ai as PositionRenderStyle, aj as PriceAxisUiConfig, ak as RSI, al as SMA, am as Theme, an as ThemeOverrides, ao as TimeAxisUiConfig, ap as TopBarColors, aq as TopBarLabels, ar as TopBarUiConfig, as as TradeButtonUiConfig, at as TradeDisplayFilter, au as TradeLabels, av as TradeLevel, aw as TradeLevelColors, ax as TradePanelColors, ay as UiConfig, az as deepMergeTheme, aA as getAllPresets, aB as getCustomPresets, aC as getPreset, aD as registerCustomPreset, aE as resolveCssVarsInTheme, aF as resolveLabels, aG as resolveUiConfig, aH as unregisterCustomPreset } from './MACD-7Y0rnDBQ.js';
3
3
 
4
4
  declare class ChartEngine {
5
5
  private wrapper;
@@ -9,17 +9,33 @@ declare class ChartEngine {
9
9
  private ctx;
10
10
  private drawCtx;
11
11
  private topBar;
12
+ private advancedToolbar;
13
+ private compactToolbar;
14
+ private mobileHeader;
15
+ /** Returns whichever toolbar is active — TopBar, AdvancedToolbar, CompactToolbar, or MobileHeader. */
16
+ private get _tb();
12
17
  private bottomBar;
13
18
  private leftBar;
14
19
  private leftBarVisible;
20
+ private layoutPopover;
21
+ private snapshotPopover;
22
+ private currentPresetId;
23
+ private currentSync;
15
24
  private drawingToolsEnabled;
16
25
  private settingsEnabled;
17
26
  private fullscreenEnabled;
18
27
  private _mobileLayout;
19
28
  private indicatorOverlay;
29
+ /** Sub-pane overlays, keyed by ActiveIndicatorState.instanceId. */
20
30
  private subPaneOverlays;
21
31
  private isinPickerModal;
22
32
  private isins;
33
+ private compareManager;
34
+ private compareLegend;
35
+ private comparePickerModal;
36
+ private compareDataLoader;
37
+ /** Crosshair-hovered bar index used to drive live compare percent values. */
38
+ private compareHoveredIndex;
23
39
  private siEl;
24
40
  private siStreamDot;
25
41
  private siSymbolSpan;
@@ -28,10 +44,12 @@ declare class ChartEngine {
28
44
  private tickActivityTimer;
29
45
  private tickActivityMs;
30
46
  private streamStatus;
47
+ private _isDestroyed;
31
48
  private indicatorSettingsDialog;
32
49
  private chartSettingsDialog;
33
50
  private tradeButton;
34
51
  private tradePopover;
52
+ private drawingStylePopover;
35
53
  private draftOrderLabel;
36
54
  private _minLots;
37
55
  private _showQuantityField;
@@ -61,6 +79,7 @@ declare class ChartEngine {
61
79
  private showBidAskLines;
62
80
  private showActLogo;
63
81
  private hideLevelConfirmCancel;
82
+ private deselectActiveOnOutsideClick;
64
83
  private tradeLevelButtonScale;
65
84
  private levelClusteringEnabled;
66
85
  private clusterThresholdDistance;
@@ -68,7 +87,16 @@ declare class ChartEngine {
68
87
  private timeframe;
69
88
  private duration;
70
89
  private activeIndicators;
90
+ /** Monotonic counter used to mint unique per-instance ids (e.g. "EMA#3"). */
91
+ private indicatorInstanceSeq;
92
+ /**
93
+ * Active indicator states that should currently render — visible and either
94
+ * chart-timeframe-locked or matching the current timeframe. Carries the
95
+ * `instanceId`, so render paths can look up per-instance results/state.
96
+ */
97
+ private visibleStates;
71
98
  private get indicators();
99
+ /** Per-instance computed results, keyed by `ActiveIndicatorState.instanceId`. */
72
100
  private indicatorResults;
73
101
  private viewport;
74
102
  private _targetViewport;
@@ -97,6 +125,11 @@ declare class ChartEngine {
97
125
  private pricePanOffset;
98
126
  private _displayedPriceRange;
99
127
  private _lockedAutoFitBase;
128
+ /** Tracks whether the previous render was in compare (percent) mode.
129
+ * When this flips we reset the Y-axis state because the unit system
130
+ * changed (price ↔ percent) and the displayed range / locked base /
131
+ * user pan/scale values from one mode don't translate to the other. */
132
+ private _lastInCompareMode;
100
133
  /**
101
134
  * When setState() restores a persisted viewport but data isn't loaded yet,
102
135
  * we stash the desired time window here and apply it from loadData() once
@@ -116,6 +149,7 @@ declare class ChartEngine {
116
149
  * pan/zoom/price-scale drag reach persistence. Coalesces rapid calls. */
117
150
  private scheduleViewportPersist;
118
151
  private axisDrag;
152
+ /** Per-instance sub-pane Y-scale factors, keyed by ActiveIndicatorState.instanceId. */
119
153
  private subPaneScaleFactors;
120
154
  private _mobileCrosshairActive;
121
155
  private _mobileTapStartXY;
@@ -220,6 +254,10 @@ declare class ChartEngine {
220
254
  private maxSubPanes;
221
255
  private showCandleCountdown;
222
256
  private candleCountdownTimeframes;
257
+ private showTradeLevelsAlways;
258
+ private showPriceAxisCountdown;
259
+ private readonly SHOW_SLTP_ALWAYS_LS_KEY;
260
+ private readonly PRICE_AXIS_COUNTDOWN_LS_KEY;
223
261
  private loadingOverlayEl;
224
262
  private noDataOverlayEl;
225
263
  private logoImage;
@@ -265,16 +303,74 @@ declare class ChartEngine {
265
303
  private durationToMs;
266
304
  private triggerLoad;
267
305
  private checkNeedMoreData;
268
- addIndicator(indicator: IIndicator): this;
306
+ /**
307
+ * Adds an indicator instance to the chart.
308
+ *
309
+ * @param indicator The indicator to render.
310
+ * @param initialParams Optional params to seed the instance's editable state
311
+ * (period, color, source, timeframe). Merged over the
312
+ * schema defaults so the settings dialog, pill label and
313
+ * serialized state reflect the actual instance — used by
314
+ * `addIndicatorByName` to persist auto-cycled colors and
315
+ * bridge-supplied params. Existing callers that pass only
316
+ * the indicator are unaffected (defaults are used).
317
+ */
318
+ addIndicator(indicator: IIndicator, initialParams?: IndicatorParams): this;
319
+ /**
320
+ * Removes an indicator. Accepts either a unique `instanceId` (removes that
321
+ * one instance) or a `shortName` (removes **all** instances of that type).
322
+ * The dual-key behavior keeps the public API and the native bridge —
323
+ * `removeIndicator('EMA')` — working while letting callers target a single
324
+ * instance via the id from the `indicatorAdded` event.
325
+ */
269
326
  removeIndicator(name: string): this;
270
- addIndicatorByName(shortName: string): void;
327
+ /**
328
+ * Adds an indicator by its short name (e.g. "EMA"). For multi-instance
329
+ * indicators each call adds a new instance with an auto-cycled color; for
330
+ * single-instance indicators (see {@link SINGLE_INSTANCE_INDICATORS}) it
331
+ * toggles the indicator off if already present. `params` overrides the
332
+ * default period/color/source (used by the native bridge).
333
+ */
334
+ addIndicatorByName(shortName: string, params?: IndicatorParams): void;
271
335
  private openIndicatorSettings;
272
336
  private updateIndicatorParams;
273
337
  on<K extends keyof ChartEventMap>(event: K, listener: (payload: ChartEventMap[K]) => void): () => void;
274
338
  private buildTheme;
275
339
  setTheme(theme: 'dark' | 'light'): this;
340
+ /** Current active timeframe — lightweight read for cross-pane sync. */
341
+ getTimeframe(): Timeframe;
276
342
  /** Programmatically change the active timeframe and reload data. */
277
343
  setTimeframe(tf: Timeframe): this;
344
+ /**
345
+ * Programmatically place the crosshair at a given bar index + price, or clear it.
346
+ * Pixel coordinates and the underlying bar are computed from current viewport
347
+ * and data. Does NOT emit a `crosshair` event — see note above.
348
+ */
349
+ setCrosshair(pos: {
350
+ barIndex: number;
351
+ price: number;
352
+ } | null): void;
353
+ /**
354
+ * Programmatically set the visible bar-range window. `candleWidth` / `candleGap`
355
+ * are preserved from the current viewport. Does NOT emit `pan` / `zoom`.
356
+ */
357
+ setViewport(v: {
358
+ startIndex: number;
359
+ endIndex: number;
360
+ }): void;
361
+ /**
362
+ * Convert a unix-ms timestamp to a fractional bar index, or `null` if the
363
+ * timestamp falls outside the currently loaded data range. Use this to
364
+ * mirror crosshair / viewport across panes that may have different data
365
+ * coverage:
366
+ *
367
+ * ```ts
368
+ * const idx = otherPane.timeToBarIndex(hoveredBar.time);
369
+ * if (idx === null) otherPane.setCrosshair(null);
370
+ * else otherPane.setCrosshair({ barIndex: idx, price });
371
+ * ```
372
+ */
373
+ timeToBarIndex(timeMs: number): number | null;
278
374
  /** Update per-theme deep-partial color overrides and rebuild the active theme. */
279
375
  setThemeOverrides(overrides: ChartConfig['themeOverrides']): this;
280
376
  /**
@@ -413,6 +509,16 @@ declare class ChartEngine {
413
509
  getActiveTool(): DrawingToolType | null;
414
510
  /** Returns a copy of all current drawings as live IDrawing objects. */
415
511
  getDrawings(): IDrawing[];
512
+ /** Returns the drawing matching `id`, or null. */
513
+ getDrawingById(id: string): IDrawing | null;
514
+ /** Returns the currently selected drawing, or null. */
515
+ getSelectedDrawing(): IDrawing | null;
516
+ /**
517
+ * Shallow-merge a per-instance style override onto the drawing with `id`.
518
+ * Fib `levels` are deep-merged (per-key) so partial overrides keep siblings.
519
+ * Returns `this` for chaining.
520
+ */
521
+ updateDrawingStyle(id: string, patch: Partial<AnyDrawingStyle>): this;
416
522
  connectStream(adapter: IWebSocketAdapter): this;
417
523
  disconnectStream(): this;
418
524
  /** Push a live bid/ask tick directly — no adapter needed.
@@ -548,6 +654,48 @@ declare class ChartEngine {
548
654
  * Both visuals and hit-rects grow together. Clamped to `[1, 3]`.
549
655
  */
550
656
  setTradeLevelButtonScale(scale: number): this;
657
+ /**
658
+ * Composite the chart layers and return a PNG data URL.
659
+ * Layer order: main chart → drawing overlay (trade levels intentionally excluded
660
+ * so exports don't leak position / SL / TP lines from the user's active TFC orders).
661
+ * Returns `null` when the canvas has not been sized yet.
662
+ *
663
+ * Use this for host-driven export flows (e.g. compositing a multi-pane grid
664
+ * via `ChartGroup.toCompositeDataUrl()`). The built-in `SnapshotPopover` uses
665
+ * the same code path internally and additionally emits the `snapshot` event.
666
+ */
667
+ toDataUrl(): string | null;
668
+ /**
669
+ * Synchronously composite the chart's layers onto an external 2D context.
670
+ * Used by `ChartGroup.toCompositeDataUrl` to stitch a multi-pane grid PNG
671
+ * without per-pane `Image.onload` round-trips. Trade levels are excluded
672
+ * for the same reason as `toDataUrl()`.
673
+ */
674
+ drawOnto(ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number): void;
675
+ private captureToDataUrl;
676
+ private openLayoutPopover;
677
+ private openSnapshotPopover;
678
+ private handleLayoutPresetSelect;
679
+ private handleSyncToggle;
680
+ private handleSnapshot;
681
+ private snapshotFileName;
682
+ /** Programmatically set the active layout preset (e.g., restoring saved state). */
683
+ setLayoutPreset(presetId: string): void;
684
+ /** Currently selected layout preset id. */
685
+ getLayoutPreset(): string;
686
+ /** Current sync state (Symbol/Interval/Crosshair/Time/DateRange toggles). */
687
+ getLayoutSync(): LayoutSyncState;
688
+ /**
689
+ * Programmatically set the cross-pane sync toggles (e.g. restoring saved
690
+ * state or mirroring a host-owned settings UI). Accepts a partial patch —
691
+ * omitted keys keep their current value.
692
+ *
693
+ * Updates the chart-owned layout popover's toggles in place. Unlike a user
694
+ * click inside the popover, this does NOT emit a `layoutChange` event, so a
695
+ * host can safely call it in response to its own state without re-entrancy.
696
+ * No-ops when the resolved state is unchanged.
697
+ */
698
+ setLayoutSync(sync: Partial<LayoutSyncState>): void;
551
699
  destroy(): void;
552
700
  private createMobileDrawingFlyout;
553
701
  private showMobileDrawingFlyout;
@@ -599,12 +747,66 @@ declare class ChartEngine {
599
747
  private applyPendingChanges;
600
748
  private revertPendingChanges;
601
749
  private undoIsNewBracketMutations;
750
+ /**
751
+ * Mount the compare legend overlay alongside the symbol/OHLC strip and
752
+ * subscribe to compare-state events so the legend reflects the current
753
+ * set of compares + their loading/error status. Called once from the
754
+ * constructor; safe to call when `siEl` is null (no-op).
755
+ */
756
+ private initCompareUi;
757
+ /** Open the in-chart compare picker. Symbols already added as compares
758
+ * appear with a `−` icon (click to remove); other symbols show `+`
759
+ * (click to add). The primary symbol is shown highlighted but
760
+ * unclickable. The modal stays open across toggles. */
761
+ private openComparePicker;
762
+ /** Toggle a compare symbol — add if not active, remove if active.
763
+ * Called by the compare picker's row clicks. */
764
+ private toggleCompare;
765
+ /** Push the current set of active compare symbols into the picker so it
766
+ * can flip `+` → `−` icons in place after each toggle without closing. */
767
+ private refreshComparePickerState;
768
+ /** Add a compare symbol. Loads bars via `compareDataLoader` against the
769
+ * current primary range. Emits `compareAdded` (immediately, with status
770
+ * `loading`) and either updates to `ready` on success or emits
771
+ * `compareError` on failure. */
772
+ addCompare(symbol: string): Promise<void>;
773
+ /** Remove a compare symbol. No-op if not active. */
774
+ removeCompare(symbol: string): void;
775
+ /** Remove every active compare symbol. */
776
+ clearCompares(): void;
777
+ /** Snapshot of every active compare entry — symbol, color, status. */
778
+ getCompares(): {
779
+ symbol: string;
780
+ color: string;
781
+ status: string;
782
+ }[];
783
+ /** Rebuild the legend chip set + percent values from current state. */
784
+ private refreshCompareLegend;
785
+ /** Returns the index of the leftmost visible bar in the primary store,
786
+ * used as the baseline anchor for percent-change normalization. */
787
+ private compareBaselineIndex;
788
+ /**
789
+ * Sync the compare manager with the primary data store's current cumulative
790
+ * range. Call this whenever the primary's bar range changes (initial load,
791
+ * scroll-back prepend, timeframe/symbol switch, resetData). Inactive
792
+ * compares get their `lastParams` updated only; active compares trigger a
793
+ * `compareDataLoader` refetch so the compare's bars span the same window
794
+ * as the primary. The stale-generation guard inside CompareManager makes
795
+ * concurrent refetches safe.
796
+ */
797
+ private updateCompareRange;
602
798
  private render;
603
799
  private recomputeIndicators;
604
800
  private onResize;
605
801
  private paneH;
606
802
  /** Translate pixel + data space dimensions used for drawing hit-tests */
607
803
  private getChartLayout;
804
+ /**
805
+ * Returns canvasWrap-relative pixel coords of the topmost rendered point of
806
+ * a drawing — used to anchor the floating style popover above it. Returns
807
+ * null when the drawing has no on-screen points (e.g. fully clipped out).
808
+ */
809
+ private computeDrawingAnchorPx;
608
810
  /** Repositions each sub-pane IndicatorOverlay element to sit at the top of its pane */
609
811
  private updateSubPaneOverlayPositions;
610
812
  /** Y positions (logical px) of each sub-pane top separator, used for drag-resize */
@@ -658,6 +860,15 @@ declare class ChartEngine {
658
860
  /** Re-fetch the just-closed candle (plus 2 neighbours) via `dataLoader` to replace
659
861
  * tick-reconstructed OHLCV with authoritative exchange data. No-op if no loader. */
660
862
  private correctCompletedBar;
863
+ /**
864
+ * Update the Layout button in the AdvancedToolbar to reflect the currently
865
+ * selected layout. Call this after the consumer handles `onLayoutClick` and
866
+ * the new layout is active.
867
+ *
868
+ * @param svgHtml SVG markup for the selected layout's icon.
869
+ * @param active Whether to show the button in its active/highlighted state (default true).
870
+ */
871
+ setLayoutIcon(svgHtml: string, active?: boolean): this;
661
872
  /** Enable or disable verbose tick logging to the console for debugging live candle issues. */
662
873
  setDebug(enabled: boolean): this;
663
874
  /** Replace the bar with the given timestamp with authoritative OHLCV data.
@@ -678,6 +889,315 @@ declare class ChartEngine {
678
889
  private applyScrollToEndBtnStyles;
679
890
  }
680
891
 
892
+ declare class AdvancedToolbar {
893
+ private onSeriesChange;
894
+ private onAddIndicator;
895
+ private onCompareClick?;
896
+ private onLayoutClick?;
897
+ private onOneClickTradeToggle?;
898
+ private onScreenshotClick?;
899
+ readonly el: HTMLDivElement;
900
+ private theme;
901
+ private currentSeries;
902
+ private currentTf;
903
+ private oneClickActive;
904
+ private seriesBtn;
905
+ private drawingBtn;
906
+ private fullscreenBtn;
907
+ private layoutBtn;
908
+ private layoutIconEl;
909
+ private snapshotBtn;
910
+ private tfBtns;
911
+ private indBtn;
912
+ private indicatorOptions;
913
+ private activeIndicators;
914
+ private volHasData;
915
+ private flyout;
916
+ private openFlyout;
917
+ private docClickHandler;
918
+ constructor(onSeriesChange: (s: SeriesType) => void, onTimeframeChange: (tf: Timeframe) => void, onAddIndicator: (name: string) => void, onSettingsClick: () => void, onFullscreenToggle: () => void, onDrawingToolsToggle: (() => void) | null, showDrawingBtn: boolean, _showSettingsBtn: boolean, showFullscreenBtn: boolean, initialSeries: SeriesType, initialTf: Timeframe, theme: ChartTheme, onCompareClick?: (() => void) | undefined, onLayoutClick?: (() => void) | undefined, onOneClickTradeToggle?: ((active: boolean) => void) | undefined, onScreenshotClick?: (() => void) | undefined, showLayoutBtn?: boolean, showSnapshotBtn?: boolean);
919
+ setTimeframe(tf: Timeframe): void;
920
+ setFullscreen(active: boolean): void;
921
+ setDrawingsBtnActive(active: boolean): void;
922
+ setIndicatorOptions(options: {
923
+ value: string;
924
+ label: string;
925
+ category?: string;
926
+ }[]): void;
927
+ setIndicatorOptionActive(name: string, active: boolean): void;
928
+ setVolumeControl(_show: boolean, hasVol: boolean): void;
929
+ setTheme(theme: ChartTheme): void;
930
+ setSeries(series: SeriesType): void;
931
+ /** Update the Layout button's preset icon and mark it active/inactive. No-op if the Layout button is disabled. */
932
+ setLayoutPresetIcon(svgHtml: string, active?: boolean): void;
933
+ /** Mark the Layout button as active (selected) or inactive without changing the icon. */
934
+ setLayoutActive(active: boolean): void;
935
+ /** DOM element of the Layout button — for popover anchoring. `null` if button is not rendered. */
936
+ getLayoutBtnEl(): HTMLButtonElement | null;
937
+ /** DOM element of the Snapshot button — for popover anchoring. `null` if button is not rendered. */
938
+ getSnapshotBtnEl(): HTMLButtonElement | null;
939
+ setTfcActive(_enabled: boolean): void;
940
+ setActiveDuration(_d: unknown): void;
941
+ /**
942
+ * Move the shared Series/Indicators flyout into the given root. Called by the
943
+ * ChartEngine on `fullscreenchange` so the flyout stays visible inside the
944
+ * fullscreen element (native fullscreen only paints that subtree).
945
+ */
946
+ reparentFlyout(root: HTMLElement): void;
947
+ setMobileLayout(_isMobile: boolean): void;
948
+ closeDropdown(): void;
949
+ get hasOpenDropdown(): boolean;
950
+ destroy(): void;
951
+ private seriesIcon;
952
+ private toggleFlyout;
953
+ private buildFlyoutContent;
954
+ private updateIndBtnLabel;
955
+ private applyBarStyles;
956
+ private applyFlyoutStyles;
957
+ private makeGroup;
958
+ private makeIconBtn;
959
+ private applyIconBtnStyles;
960
+ private makeTextBtn;
961
+ private applyTextBtnStyles;
962
+ private applyTfPillStyles;
963
+ private addHover;
964
+ private makeCategoryHeader;
965
+ private makeRow;
966
+ }
967
+
968
+ /**
969
+ * Slim per-pane toolbar used in multi-pane scenarios (small grid cells).
970
+ *
971
+ * Renders only what makes sense to change PER pane:
972
+ * timeframe pills | series icon | indicators icon
973
+ *
974
+ * Symbol is changed via the on-canvas OHLC strip's symbol label — there is no
975
+ * symbol button here. Fullscreen, settings, layout, snapshot, compare,
976
+ * 1-click, drawing-tools all live on the grid-level shared toolbar instead.
977
+ */
978
+ declare class CompactToolbar {
979
+ private onSeriesChange;
980
+ private onAddIndicator;
981
+ readonly el: HTMLDivElement;
982
+ private theme;
983
+ private currentSeries;
984
+ private currentTf;
985
+ private seriesBtn;
986
+ private indBtn;
987
+ private tfBtns;
988
+ private indicatorOptions;
989
+ private activeIndicators;
990
+ private volHasData;
991
+ private flyout;
992
+ private openFlyout;
993
+ private docClickHandler;
994
+ constructor(onSeriesChange: (s: SeriesType) => void, onTimeframeChange: (tf: Timeframe) => void, onAddIndicator: (name: string) => void, initialSeries: SeriesType, initialTf: Timeframe, theme: ChartTheme);
995
+ setTimeframe(tf: Timeframe): void;
996
+ setSeries(series: SeriesType): void;
997
+ setIndicatorOptions(options: {
998
+ value: string;
999
+ label: string;
1000
+ category?: string;
1001
+ }[]): void;
1002
+ setIndicatorOptionActive(name: string, active: boolean): void;
1003
+ setVolumeControl(_show: boolean, hasVol: boolean): void;
1004
+ setTheme(theme: ChartTheme): void;
1005
+ closeDropdown(): void;
1006
+ get hasOpenDropdown(): boolean;
1007
+ destroy(): void;
1008
+ setFullscreen(_active: boolean): void;
1009
+ setDrawingsBtnActive(_active: boolean): void;
1010
+ setActiveDuration(_d: unknown): void;
1011
+ setTfcActive(_enabled: boolean): void;
1012
+ setLayoutPresetIcon(_svgHtml: string, _active?: boolean): void;
1013
+ setLayoutActive(_active: boolean): void;
1014
+ getLayoutBtnEl(): HTMLButtonElement | null;
1015
+ getSnapshotBtnEl(): HTMLButtonElement | null;
1016
+ /**
1017
+ * Move the Series/Indicators flyout into the given root so it stays visible
1018
+ * when a pane enters fullscreen (native fullscreen only paints that subtree).
1019
+ * Called by the ChartEngine on `fullscreenchange`.
1020
+ */
1021
+ reparentFlyout(root: HTMLElement): void;
1022
+ setMobileLayout(_isMobile: boolean): void;
1023
+ private seriesIcon;
1024
+ private toggleFlyout;
1025
+ private buildFlyoutContent;
1026
+ private updateIndBadge;
1027
+ private applyBarStyles;
1028
+ private applyFlyoutStyles;
1029
+ private makeIconBtn;
1030
+ private applyIconBtnStyles;
1031
+ private applyTfPillStyles;
1032
+ private addHover;
1033
+ private makeCategoryHeader;
1034
+ private makeRow;
1035
+ }
1036
+
1037
+ /**
1038
+ * Multi-chart layout picker popover.
1039
+ * Grid of 26 preset icons grouped by pane count + 5 sync toggles.
1040
+ * Selecting a preset or toggling sync invokes the supplied callbacks;
1041
+ * the ChartEngine emits a `layoutChange` event so the host can re-render
1042
+ * its multi-pane grid.
1043
+ */
1044
+ declare class LayoutPopover {
1045
+ readonly el: HTMLDivElement;
1046
+ private theme;
1047
+ private currentPresetId;
1048
+ private sync;
1049
+ private onSelectPreset;
1050
+ private onToggleSync;
1051
+ private onVisibilityChange?;
1052
+ private docPointerDownHandler;
1053
+ private escapeHandler;
1054
+ constructor(theme: ChartTheme, initialPresetId: string, initialSync: LayoutSyncState, onSelectPreset: (id: string) => void, onToggleSync: (key: keyof LayoutSyncState) => void, onVisibilityChange?: () => void);
1055
+ /** Show the popover anchored beneath the given button. */
1056
+ show(anchor: HTMLElement): void;
1057
+ hide(): void;
1058
+ get isVisible(): boolean;
1059
+ setPreset(id: string): void;
1060
+ setSync(sync: LayoutSyncState): void;
1061
+ setTheme(theme: ChartTheme): void;
1062
+ destroy(): void;
1063
+ private applyBaseStyles;
1064
+ private build;
1065
+ private buildHeader;
1066
+ private buildPresetGrid;
1067
+ private buildSyncSection;
1068
+ private makeSyncRow;
1069
+ private makeToggleSwitch;
1070
+ }
1071
+
1072
+ type SnapshotAction = 'download' | 'copy';
1073
+ /**
1074
+ * Small popover anchored beneath the Snapshot toolbar button.
1075
+ * Two rows: Download (saves PNG) and Copy (writes to clipboard).
1076
+ * Click fires the supplied callback; the ChartEngine performs the actual
1077
+ * browser action and emits a `snapshot` event so mobile wrappers can
1078
+ * intercept and use native APIs.
1079
+ */
1080
+ declare class SnapshotPopover {
1081
+ readonly el: HTMLDivElement;
1082
+ private theme;
1083
+ private onAction;
1084
+ private onVisibilityChange?;
1085
+ private docPointerDownHandler;
1086
+ private escapeHandler;
1087
+ constructor(theme: ChartTheme, onAction: (action: SnapshotAction) => void, onVisibilityChange?: () => void);
1088
+ /** Show the popover anchored beneath the given button. */
1089
+ show(anchor: HTMLElement): void;
1090
+ hide(): void;
1091
+ get isVisible(): boolean;
1092
+ setTheme(theme: ChartTheme): void;
1093
+ destroy(): void;
1094
+ private applyBaseStyles;
1095
+ private build;
1096
+ private makeRow;
1097
+ private iconDownload;
1098
+ private iconCopy;
1099
+ }
1100
+
1101
+ /**
1102
+ * Coordinates cross-pane behaviour for a multi-pane chart layout.
1103
+ *
1104
+ * The host owns the grid (DOM, N `ChartEngine` instances, per-pane state) and
1105
+ * hands every engine to a single `ChartGroup`. The group listens to events on
1106
+ * the *active* engine and mirrors them to the others according to the current
1107
+ * `LayoutSyncState`:
1108
+ *
1109
+ * | Sync flag | Source event | Action on others
1110
+ * | ------------- | ------------------ | -------------------------------------
1111
+ * | `interval` | `timeframeChange` | `setTimeframe` (skip if already equal)
1112
+ * | `crosshair` | `crosshair` | `timeToBarIndex` + `setCrosshair`
1113
+ * | `time` | `pan` | `setViewport({ startIndex, endIndex })`
1114
+ * | `dateRange` | `zoom` | `setViewport({ startIndex, endIndex })`
1115
+ *
1116
+ * `symbol` is push-based: the host calls `broadcastSymbol(symbol)` when the
1117
+ * user picks a new symbol, since the actual data fetch has to happen host-side.
1118
+ *
1119
+ * `ChartEngine.setCrosshair` / `setViewport` deliberately do not re-emit
1120
+ * `crosshair` / `pan` / `zoom`, so the mirror is safe from feedback loops.
1121
+ *
1122
+ * @example
1123
+ * const group = new ChartGroup({ sync: { crosshair: true, time: true } });
1124
+ * group.add('p1', engineA);
1125
+ * group.add('p2', engineB);
1126
+ * group.setActive('p1');
1127
+ * // engineA pan now mirrors to engineB; engineB pan is ignored until it becomes active
1128
+ */
1129
+ declare class ChartGroup {
1130
+ private engines;
1131
+ private activeId;
1132
+ private sync;
1133
+ /** Unsubscribe callbacks for listeners attached to the active engine. */
1134
+ private activeUnsubs;
1135
+ constructor(opts?: {
1136
+ sync?: Partial<LayoutSyncState>;
1137
+ });
1138
+ add(paneId: string, engine: ChartEngine): void;
1139
+ remove(paneId: string): void;
1140
+ get(paneId: string): ChartEngine | undefined;
1141
+ /** Iterator over registered engines. */
1142
+ entries(): IterableIterator<[string, ChartEngine]>;
1143
+ setActive(paneId: string): void;
1144
+ getActive(): string | null;
1145
+ setSync(patch: Partial<LayoutSyncState>): void;
1146
+ getSync(): LayoutSyncState;
1147
+ /**
1148
+ * Mirror a symbol change to every pane other than `fromPaneId` (or every
1149
+ * pane when `fromPaneId` is omitted). Only runs when `sync.symbol` is on.
1150
+ * The host is still responsible for loading data for each pane afterwards —
1151
+ * `ChartEngine.setSymbol` only updates the label/state.
1152
+ */
1153
+ broadcastSymbol(symbol: string, fromPaneId?: string): void;
1154
+ /** Mirror a timeframe change. Only runs when `sync.interval` is on. */
1155
+ broadcastTimeframe(tf: Timeframe, fromPaneId?: string): void;
1156
+ /**
1157
+ * Stitch a multi-pane PNG by drawing every registered engine into a single
1158
+ * canvas. The host passes the output dimensions and each pane's rect in
1159
+ * CSS pixels (typically read from each grid cell's `getBoundingClientRect()`).
1160
+ *
1161
+ * Panes whose `paneId` is missing from `rects` are skipped silently — this
1162
+ * lets a host supply only the visible panes.
1163
+ *
1164
+ * @example
1165
+ * const containerRect = gridRef.current.getBoundingClientRect();
1166
+ * const rects = paneIds.map(id => {
1167
+ * const cell = cellRefs.current.get(id)!.getBoundingClientRect();
1168
+ * return {
1169
+ * paneId: id,
1170
+ * x: cell.left - containerRect.left,
1171
+ * y: cell.top - containerRect.top,
1172
+ * w: cell.width,
1173
+ * h: cell.height,
1174
+ * };
1175
+ * });
1176
+ * const dataUrl = group.toCompositeDataUrl({
1177
+ * width: containerRect.width,
1178
+ * height: containerRect.height,
1179
+ * rects,
1180
+ * });
1181
+ */
1182
+ toCompositeDataUrl(opts: {
1183
+ width: number;
1184
+ height: number;
1185
+ rects: Array<{
1186
+ paneId: string;
1187
+ x: number;
1188
+ y: number;
1189
+ w: number;
1190
+ h: number;
1191
+ }>;
1192
+ background?: string;
1193
+ pixelRatio?: number;
1194
+ }): string | null;
1195
+ destroy(): void;
1196
+ private others;
1197
+ private attachActiveListeners;
1198
+ private detachActiveListeners;
1199
+ }
1200
+
681
1201
  /**
682
1202
  * Aggregates an array of fine-grained OHLCV bars into a coarser timeframe.
683
1203
  *
@@ -763,8 +1283,12 @@ declare class DrawingManager {
763
1283
  * original point's timestamp.
764
1284
  */
765
1285
  onPointsMutated: ((drawing: IDrawing) => void) | null;
1286
+ /** Called whenever the selected drawing changes (including to/from null). */
1287
+ onSelectionChange: ((drawing: IDrawing | null) => void) | null;
766
1288
  /** Set to true by ChartEngine while the text input is focused — prevents Delete/Backspace from deleting the drawing. */
767
1289
  private editingText;
1290
+ /** Centralizes selection mutation + change notification. */
1291
+ private setSelected;
768
1292
  private dragDrawing;
769
1293
  private dragStartMouse;
770
1294
  private dragStartPoints;
@@ -803,6 +1327,14 @@ declare class DrawingManager {
803
1327
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): IDrawing | null;
804
1328
  selectDrawing(drawing: IDrawing | null): void;
805
1329
  getSelectedDrawing(): IDrawing | null;
1330
+ /** Returns a drawing by id, or null if not found. */
1331
+ getDrawingById(id: string): IDrawing | null;
1332
+ /**
1333
+ * Shallow-merge a style patch into the drawing's `style` field. Triggers
1334
+ * `onDrawingsChange` so the chart re-renders. Returns the updated drawing,
1335
+ * or null if no drawing matches `id`.
1336
+ */
1337
+ updateDrawingStyle(id: string, patch: Partial<AnyDrawingStyle>): IDrawing | null;
806
1338
  onKeyDown(key: string): boolean;
807
1339
  deleteSelected(): void;
808
1340
  undo(): void;
@@ -811,7 +1343,7 @@ declare class DrawingManager {
811
1343
  showAll(): void;
812
1344
  lockAll(): void;
813
1345
  unlockAll(): void;
814
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, pricePrecision?: number): void;
1346
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, pricePrecision?: number, theme?: ChartTheme): void;
815
1347
  getDrawings(): IDrawing[];
816
1348
  /** Returns a JSON-serializable snapshot of all drawings (data fields only, no methods). */
817
1349
  getDrawingsSnapshot(): SerializedDrawing[];
@@ -829,8 +1361,9 @@ declare class HorizontalLine implements IDrawing {
829
1361
  readonly type: "horizontalLine";
830
1362
  points: DrawingPoint[];
831
1363
  complete: boolean;
1364
+ style?: AnyDrawingStyle;
832
1365
  constructor(point: DrawingPoint);
833
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, _viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1366
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, _viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
834
1367
  hitTest(_x: number, y: number, scale: ScaleManager, _viewport: Viewport, priceRange: PriceRange$1, _chartW: number, chartH: number): boolean;
835
1368
  getHandle(): DrawingHandle | null;
836
1369
  }
@@ -840,8 +1373,9 @@ declare class VerticalLine implements IDrawing {
840
1373
  readonly type: "verticalLine";
841
1374
  points: DrawingPoint[];
842
1375
  complete: boolean;
1376
+ style?: AnyDrawingStyle;
843
1377
  constructor(point: DrawingPoint);
844
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, _priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1378
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, _priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
845
1379
  hitTest(x: number, _y: number, scale: ScaleManager, viewport: Viewport, _priceRange: PriceRange$1, chartW: number, _chartH: number): boolean;
846
1380
  getHandle(): DrawingHandle | null;
847
1381
  }
@@ -851,8 +1385,9 @@ declare class TrendLine implements IDrawing {
851
1385
  readonly type: "trendLine";
852
1386
  points: DrawingPoint[];
853
1387
  complete: boolean;
1388
+ style?: AnyDrawingStyle;
854
1389
  constructor(first: DrawingPoint);
855
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1390
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
856
1391
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
857
1392
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
858
1393
  }
@@ -862,8 +1397,9 @@ declare class TrendAngle implements IDrawing {
862
1397
  readonly type: "trendAngle";
863
1398
  points: DrawingPoint[];
864
1399
  complete: boolean;
1400
+ style?: AnyDrawingStyle;
865
1401
  constructor(first: DrawingPoint);
866
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1402
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
867
1403
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
868
1404
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
869
1405
  }
@@ -873,8 +1409,9 @@ declare class CrossLine implements IDrawing {
873
1409
  readonly type: "crossLine";
874
1410
  points: DrawingPoint[];
875
1411
  complete: boolean;
1412
+ style?: AnyDrawingStyle;
876
1413
  constructor(point: DrawingPoint);
877
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1414
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
878
1415
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
879
1416
  getHandle(): DrawingHandle | null;
880
1417
  }
@@ -885,8 +1422,9 @@ declare class ParallelChannel implements IDrawing {
885
1422
  readonly requiredPoints = 3;
886
1423
  points: DrawingPoint[];
887
1424
  complete: boolean;
1425
+ style?: AnyDrawingStyle;
888
1426
  constructor(first: DrawingPoint);
889
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1427
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
890
1428
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
891
1429
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
892
1430
  }
@@ -897,8 +1435,9 @@ declare class FlatChannel implements IDrawing {
897
1435
  readonly requiredPoints = 3;
898
1436
  points: DrawingPoint[];
899
1437
  complete: boolean;
1438
+ style?: AnyDrawingStyle;
900
1439
  constructor(first: DrawingPoint);
901
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1440
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
902
1441
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
903
1442
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
904
1443
  }
@@ -909,8 +1448,9 @@ declare class DisjointChannel implements IDrawing {
909
1448
  readonly requiredPoints = 4;
910
1449
  points: DrawingPoint[];
911
1450
  complete: boolean;
1451
+ style?: AnyDrawingStyle;
912
1452
  constructor(first: DrawingPoint);
913
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1453
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
914
1454
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
915
1455
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
916
1456
  }
@@ -920,8 +1460,9 @@ declare class FibRetracement implements IDrawing {
920
1460
  readonly type: "fibRetracement";
921
1461
  points: DrawingPoint[];
922
1462
  complete: boolean;
1463
+ style?: AnyDrawingStyle;
923
1464
  constructor(first: DrawingPoint);
924
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1465
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
925
1466
  hitTest(_x: number, y: number, scale: ScaleManager, _viewport: Viewport, priceRange: PriceRange$1, _chartW: number, chartH: number): boolean;
926
1467
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
927
1468
  }
@@ -932,8 +1473,9 @@ declare class FibExtension implements IDrawing {
932
1473
  readonly requiredPoints = 3;
933
1474
  points: DrawingPoint[];
934
1475
  complete: boolean;
1476
+ style?: AnyDrawingStyle;
935
1477
  constructor(first: DrawingPoint);
936
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1478
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
937
1479
  hitTest(_x: number, y: number, scale: ScaleManager, _viewport: Viewport, priceRange: PriceRange$1, _chartW: number, chartH: number): boolean;
938
1480
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
939
1481
  }
@@ -944,8 +1486,9 @@ declare class FibChannel implements IDrawing {
944
1486
  readonly requiredPoints = 3;
945
1487
  points: DrawingPoint[];
946
1488
  complete: boolean;
1489
+ style?: AnyDrawingStyle;
947
1490
  constructor(first: DrawingPoint);
948
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1491
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
949
1492
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
950
1493
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
951
1494
  }
@@ -955,8 +1498,9 @@ declare class FibTimezone implements IDrawing {
955
1498
  readonly type: "fibTimezone";
956
1499
  points: DrawingPoint[];
957
1500
  complete: boolean;
1501
+ style?: AnyDrawingStyle;
958
1502
  constructor(first: DrawingPoint);
959
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1503
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
960
1504
  hitTest(x: number, _y: number, scale: ScaleManager, viewport: Viewport, _priceRange: PriceRange$1, chartW: number, _chartH: number): boolean;
961
1505
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
962
1506
  }
@@ -966,8 +1510,9 @@ declare class FibCircles implements IDrawing {
966
1510
  readonly type: "fibCircles";
967
1511
  points: DrawingPoint[];
968
1512
  complete: boolean;
1513
+ style?: AnyDrawingStyle;
969
1514
  constructor(first: DrawingPoint);
970
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1515
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
971
1516
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
972
1517
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
973
1518
  }
@@ -977,10 +1522,11 @@ declare class FibSpiral implements IDrawing {
977
1522
  readonly type: "fibSpiral";
978
1523
  points: DrawingPoint[];
979
1524
  complete: boolean;
1525
+ style?: AnyDrawingStyle;
980
1526
  constructor(first: DrawingPoint);
981
1527
  /** Compute the pivot center and radius for each arc in the spiral */
982
1528
  private computeArcs;
983
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1529
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
984
1530
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
985
1531
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
986
1532
  }
@@ -990,8 +1536,9 @@ declare class FibFan implements IDrawing {
990
1536
  readonly type: "fibFan";
991
1537
  points: DrawingPoint[];
992
1538
  complete: boolean;
1539
+ style?: AnyDrawingStyle;
993
1540
  constructor(first: DrawingPoint);
994
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1541
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
995
1542
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
996
1543
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
997
1544
  }
@@ -1002,8 +1549,9 @@ declare class FibProjection implements IDrawing {
1002
1549
  readonly requiredPoints = 3;
1003
1550
  points: DrawingPoint[];
1004
1551
  complete: boolean;
1552
+ style?: AnyDrawingStyle;
1005
1553
  constructor(first: DrawingPoint);
1006
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1554
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
1007
1555
  hitTest(_x: number, y: number, scale: ScaleManager, _viewport: Viewport, priceRange: PriceRange$1, _chartW: number, chartH: number): boolean;
1008
1556
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1009
1557
  }
@@ -1013,8 +1561,9 @@ declare class GannFan implements IDrawing {
1013
1561
  readonly type: "gannFan";
1014
1562
  points: DrawingPoint[];
1015
1563
  complete: boolean;
1564
+ style?: AnyDrawingStyle;
1016
1565
  constructor(first: DrawingPoint);
1017
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1566
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1018
1567
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1019
1568
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1020
1569
  }
@@ -1024,8 +1573,9 @@ declare class GannSquare implements IDrawing {
1024
1573
  readonly type: "gannSquare";
1025
1574
  points: DrawingPoint[];
1026
1575
  complete: boolean;
1576
+ style?: AnyDrawingStyle;
1027
1577
  constructor(first: DrawingPoint);
1028
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1578
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1029
1579
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1030
1580
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1031
1581
  }
@@ -1035,8 +1585,9 @@ declare class GannBox implements IDrawing {
1035
1585
  readonly type: "gannBox";
1036
1586
  points: DrawingPoint[];
1037
1587
  complete: boolean;
1588
+ style?: AnyDrawingStyle;
1038
1589
  constructor(first: DrawingPoint);
1039
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1590
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1040
1591
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1041
1592
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1042
1593
  }
@@ -1046,8 +1597,9 @@ declare class Rectangle implements IDrawing {
1046
1597
  readonly type: "rectangle";
1047
1598
  points: DrawingPoint[];
1048
1599
  complete: boolean;
1600
+ style?: AnyDrawingStyle;
1049
1601
  constructor(first: DrawingPoint);
1050
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1602
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1051
1603
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1052
1604
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1053
1605
  }
@@ -1058,9 +1610,10 @@ declare class RotatedRectangle implements IDrawing {
1058
1610
  readonly requiredPoints = 3;
1059
1611
  points: DrawingPoint[];
1060
1612
  complete: boolean;
1613
+ style?: AnyDrawingStyle;
1061
1614
  constructor(first: DrawingPoint);
1062
1615
  private getCorners;
1063
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1616
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1064
1617
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1065
1618
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1066
1619
  }
@@ -1070,8 +1623,9 @@ declare class Ellipse implements IDrawing {
1070
1623
  readonly type: "ellipse";
1071
1624
  points: DrawingPoint[];
1072
1625
  complete: boolean;
1626
+ style?: AnyDrawingStyle;
1073
1627
  constructor(first: DrawingPoint);
1074
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1628
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1075
1629
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1076
1630
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1077
1631
  }
@@ -1082,8 +1636,9 @@ declare class Triangle implements IDrawing {
1082
1636
  readonly requiredPoints = 3;
1083
1637
  points: DrawingPoint[];
1084
1638
  complete: boolean;
1639
+ style?: AnyDrawingStyle;
1085
1640
  constructor(first: DrawingPoint);
1086
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1641
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1087
1642
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1088
1643
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1089
1644
  }
@@ -1093,8 +1648,9 @@ declare class Circle implements IDrawing {
1093
1648
  readonly type: "circle";
1094
1649
  points: DrawingPoint[];
1095
1650
  complete: boolean;
1651
+ style?: AnyDrawingStyle;
1096
1652
  constructor(first: DrawingPoint);
1097
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1653
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1098
1654
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1099
1655
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1100
1656
  }
@@ -1105,8 +1661,9 @@ declare class Arc implements IDrawing {
1105
1661
  readonly requiredPoints = 3;
1106
1662
  points: DrawingPoint[];
1107
1663
  complete: boolean;
1664
+ style?: AnyDrawingStyle;
1108
1665
  constructor(first: DrawingPoint);
1109
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1666
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1110
1667
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1111
1668
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1112
1669
  }
@@ -1117,8 +1674,9 @@ declare class Polyline implements IDrawing {
1117
1674
  readonly openEnded = true;
1118
1675
  points: DrawingPoint[];
1119
1676
  complete: boolean;
1677
+ style?: AnyDrawingStyle;
1120
1678
  constructor(first: DrawingPoint);
1121
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1679
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1122
1680
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1123
1681
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1124
1682
  }
@@ -1129,8 +1687,9 @@ declare class Path implements IDrawing {
1129
1687
  readonly openEnded = true;
1130
1688
  points: DrawingPoint[];
1131
1689
  complete: boolean;
1690
+ style?: AnyDrawingStyle;
1132
1691
  constructor(first: DrawingPoint);
1133
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1692
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1134
1693
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1135
1694
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1136
1695
  }
@@ -1140,8 +1699,9 @@ declare class PriceRange implements IDrawing {
1140
1699
  readonly type: "priceRange";
1141
1700
  points: DrawingPoint[];
1142
1701
  complete: boolean;
1702
+ style?: AnyDrawingStyle;
1143
1703
  constructor(first: DrawingPoint);
1144
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1704
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
1145
1705
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1146
1706
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1147
1707
  }
@@ -1151,8 +1711,9 @@ declare class DateRange implements IDrawing {
1151
1711
  readonly type: "dateRange";
1152
1712
  points: DrawingPoint[];
1153
1713
  complete: boolean;
1714
+ style?: AnyDrawingStyle;
1154
1715
  constructor(first: DrawingPoint);
1155
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1716
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1156
1717
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1157
1718
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1158
1719
  }
@@ -1162,8 +1723,9 @@ declare class DatePriceRange implements IDrawing {
1162
1723
  readonly type: "datePriceRange";
1163
1724
  points: DrawingPoint[];
1164
1725
  complete: boolean;
1726
+ style?: AnyDrawingStyle;
1165
1727
  constructor(first: DrawingPoint);
1166
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1728
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
1167
1729
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1168
1730
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1169
1731
  }
@@ -1173,8 +1735,9 @@ declare class Ruler implements IDrawing {
1173
1735
  readonly type: "ruler";
1174
1736
  points: DrawingPoint[];
1175
1737
  complete: boolean;
1738
+ style?: AnyDrawingStyle;
1176
1739
  constructor(first: DrawingPoint);
1177
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1740
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
1178
1741
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1179
1742
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1180
1743
  }
@@ -1185,8 +1748,9 @@ declare class Pitchfork implements IDrawing {
1185
1748
  readonly requiredPoints = 3;
1186
1749
  points: DrawingPoint[];
1187
1750
  complete: boolean;
1751
+ style?: AnyDrawingStyle;
1188
1752
  constructor(first: DrawingPoint);
1189
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1753
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1190
1754
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1191
1755
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1192
1756
  }
@@ -1197,8 +1761,9 @@ declare class SchiffPitchfork implements IDrawing {
1197
1761
  readonly requiredPoints = 3;
1198
1762
  points: DrawingPoint[];
1199
1763
  complete: boolean;
1764
+ style?: AnyDrawingStyle;
1200
1765
  constructor(first: DrawingPoint);
1201
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1766
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1202
1767
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1203
1768
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1204
1769
  }
@@ -1209,8 +1774,9 @@ declare class ModifiedSchiff implements IDrawing {
1209
1774
  readonly requiredPoints = 3;
1210
1775
  points: DrawingPoint[];
1211
1776
  complete: boolean;
1777
+ style?: AnyDrawingStyle;
1212
1778
  constructor(first: DrawingPoint);
1213
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1779
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1214
1780
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1215
1781
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1216
1782
  }
@@ -1221,8 +1787,9 @@ declare class InsidePitchfork implements IDrawing {
1221
1787
  readonly requiredPoints = 3;
1222
1788
  points: DrawingPoint[];
1223
1789
  complete: boolean;
1790
+ style?: AnyDrawingStyle;
1224
1791
  constructor(first: DrawingPoint);
1225
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1792
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1226
1793
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1227
1794
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1228
1795
  }
@@ -1232,8 +1799,9 @@ declare class FixedRangeVP implements IDrawing {
1232
1799
  readonly type: "fixedRangeVP";
1233
1800
  points: DrawingPoint[];
1234
1801
  complete: boolean;
1802
+ style?: AnyDrawingStyle;
1235
1803
  constructor(first: DrawingPoint);
1236
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1804
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1237
1805
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1238
1806
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1239
1807
  }
@@ -1243,8 +1811,9 @@ declare class AnchoredVP implements IDrawing {
1243
1811
  readonly type: "anchoredVP";
1244
1812
  points: DrawingPoint[];
1245
1813
  complete: boolean;
1814
+ style?: AnyDrawingStyle;
1246
1815
  constructor(first: DrawingPoint);
1247
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1816
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1248
1817
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1249
1818
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1250
1819
  }
@@ -1254,8 +1823,9 @@ declare class VolumeProfile implements IDrawing {
1254
1823
  readonly type: "volumeProfile";
1255
1824
  points: DrawingPoint[];
1256
1825
  complete: boolean;
1826
+ style?: AnyDrawingStyle;
1257
1827
  constructor(first: DrawingPoint);
1258
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1828
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1259
1829
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1260
1830
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1261
1831
  }
@@ -1265,8 +1835,9 @@ declare class RegressionTrend implements IDrawing {
1265
1835
  readonly type: "regressionTrend";
1266
1836
  points: DrawingPoint[];
1267
1837
  complete: boolean;
1838
+ style?: AnyDrawingStyle;
1268
1839
  constructor(first: DrawingPoint);
1269
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1840
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1270
1841
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1271
1842
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1272
1843
  }
@@ -1277,8 +1848,9 @@ declare class Text implements IDrawing {
1277
1848
  points: DrawingPoint[];
1278
1849
  complete: boolean;
1279
1850
  text: string;
1851
+ style?: AnyDrawingStyle;
1280
1852
  constructor(point: DrawingPoint);
1281
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1853
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1282
1854
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1283
1855
  getHandle(): DrawingHandle | null;
1284
1856
  }
@@ -1289,9 +1861,10 @@ declare class Callout implements IDrawing {
1289
1861
  points: DrawingPoint[];
1290
1862
  complete: boolean;
1291
1863
  text: string;
1864
+ style?: AnyDrawingStyle;
1292
1865
  constructor(first: DrawingPoint);
1293
1866
  private getBoxW;
1294
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1867
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1295
1868
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1296
1869
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1297
1870
  }
@@ -1301,8 +1874,9 @@ declare class PriceLabel implements IDrawing {
1301
1874
  readonly type: "priceLabel";
1302
1875
  points: DrawingPoint[];
1303
1876
  complete: boolean;
1877
+ style?: AnyDrawingStyle;
1304
1878
  constructor(point: DrawingPoint);
1305
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
1879
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
1306
1880
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1307
1881
  getHandle(): DrawingHandle | null;
1308
1882
  }
@@ -1312,8 +1886,9 @@ declare class ArrowMarker implements IDrawing {
1312
1886
  readonly type: "arrowMarker";
1313
1887
  points: DrawingPoint[];
1314
1888
  complete: boolean;
1889
+ style?: AnyDrawingStyle;
1315
1890
  constructor(first: DrawingPoint);
1316
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1891
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1317
1892
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1318
1893
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1319
1894
  }
@@ -1323,8 +1898,9 @@ declare class Flag implements IDrawing {
1323
1898
  readonly type: "flag";
1324
1899
  points: DrawingPoint[];
1325
1900
  complete: boolean;
1901
+ style?: AnyDrawingStyle;
1326
1902
  constructor(point: DrawingPoint);
1327
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, _isSelected: boolean): void;
1903
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1328
1904
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1329
1905
  getHandle(): DrawingHandle | null;
1330
1906
  }
@@ -1334,8 +1910,9 @@ declare class PriceNote implements IDrawing {
1334
1910
  readonly type: "priceNote";
1335
1911
  points: DrawingPoint[];
1336
1912
  complete: boolean;
1913
+ style?: AnyDrawingStyle;
1337
1914
  constructor(point: DrawingPoint);
1338
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, _isSelected: boolean, pricePrecision?: number): void;
1915
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
1339
1916
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1340
1917
  getHandle(): DrawingHandle | null;
1341
1918
  }
@@ -1346,9 +1923,10 @@ declare class AnchoredNote implements IDrawing {
1346
1923
  points: DrawingPoint[];
1347
1924
  complete: boolean;
1348
1925
  text: string;
1926
+ style?: AnyDrawingStyle;
1349
1927
  constructor(first: DrawingPoint);
1350
1928
  private getBadgeW;
1351
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1929
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1352
1930
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1353
1931
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1354
1932
  }
@@ -1358,8 +1936,9 @@ declare class ArrowUp implements IDrawing {
1358
1936
  readonly type: "arrowUp";
1359
1937
  points: DrawingPoint[];
1360
1938
  complete: boolean;
1939
+ style?: AnyDrawingStyle;
1361
1940
  constructor(point: DrawingPoint);
1362
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, _isSelected: boolean): void;
1941
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1363
1942
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1364
1943
  getHandle(): DrawingHandle | null;
1365
1944
  }
@@ -1369,8 +1948,9 @@ declare class ArrowDown implements IDrawing {
1369
1948
  readonly type: "arrowDown";
1370
1949
  points: DrawingPoint[];
1371
1950
  complete: boolean;
1951
+ style?: AnyDrawingStyle;
1372
1952
  constructor(point: DrawingPoint);
1373
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, _isSelected: boolean): void;
1953
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1374
1954
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1375
1955
  getHandle(): DrawingHandle | null;
1376
1956
  }
@@ -1381,8 +1961,9 @@ declare class HeadShoulders implements IDrawing {
1381
1961
  readonly requiredPoints = 5;
1382
1962
  points: DrawingPoint[];
1383
1963
  complete: boolean;
1964
+ style?: AnyDrawingStyle;
1384
1965
  constructor(first: DrawingPoint);
1385
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1966
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1386
1967
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1387
1968
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1388
1969
  }
@@ -1393,8 +1974,9 @@ declare class TrianglePattern implements IDrawing {
1393
1974
  readonly requiredPoints = 5;
1394
1975
  points: DrawingPoint[];
1395
1976
  complete: boolean;
1977
+ style?: AnyDrawingStyle;
1396
1978
  constructor(first: DrawingPoint);
1397
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1979
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1398
1980
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1399
1981
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1400
1982
  }
@@ -1405,8 +1987,9 @@ declare class ThreeDrives implements IDrawing {
1405
1987
  readonly requiredPoints = 7;
1406
1988
  points: DrawingPoint[];
1407
1989
  complete: boolean;
1990
+ style?: AnyDrawingStyle;
1408
1991
  constructor(first: DrawingPoint);
1409
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
1992
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1410
1993
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1411
1994
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1412
1995
  }
@@ -1417,8 +2000,9 @@ declare class AbcdPattern implements IDrawing {
1417
2000
  readonly requiredPoints = 4;
1418
2001
  points: DrawingPoint[];
1419
2002
  complete: boolean;
2003
+ style?: AnyDrawingStyle;
1420
2004
  constructor(first: DrawingPoint);
1421
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2005
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1422
2006
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1423
2007
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1424
2008
  }
@@ -1429,8 +2013,9 @@ declare class CypherPattern implements IDrawing {
1429
2013
  readonly requiredPoints = 5;
1430
2014
  points: DrawingPoint[];
1431
2015
  complete: boolean;
2016
+ style?: AnyDrawingStyle;
1432
2017
  constructor(first: DrawingPoint);
1433
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2018
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1434
2019
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1435
2020
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1436
2021
  }
@@ -1441,8 +2026,9 @@ declare class ButterflyPattern implements IDrawing {
1441
2026
  readonly requiredPoints = 5;
1442
2027
  points: DrawingPoint[];
1443
2028
  complete: boolean;
2029
+ style?: AnyDrawingStyle;
1444
2030
  constructor(first: DrawingPoint);
1445
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2031
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1446
2032
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1447
2033
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1448
2034
  }
@@ -1453,8 +2039,9 @@ declare class BatPattern implements IDrawing {
1453
2039
  readonly requiredPoints = 5;
1454
2040
  points: DrawingPoint[];
1455
2041
  complete: boolean;
2042
+ style?: AnyDrawingStyle;
1456
2043
  constructor(first: DrawingPoint);
1457
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2044
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1458
2045
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1459
2046
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1460
2047
  }
@@ -1465,8 +2052,9 @@ declare class GartleyPattern implements IDrawing {
1465
2052
  readonly requiredPoints = 5;
1466
2053
  points: DrawingPoint[];
1467
2054
  complete: boolean;
2055
+ style?: AnyDrawingStyle;
1468
2056
  constructor(first: DrawingPoint);
1469
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2057
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1470
2058
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1471
2059
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1472
2060
  }
@@ -1477,8 +2065,9 @@ declare class CrabPattern implements IDrawing {
1477
2065
  readonly requiredPoints = 5;
1478
2066
  points: DrawingPoint[];
1479
2067
  complete: boolean;
2068
+ style?: AnyDrawingStyle;
1480
2069
  constructor(first: DrawingPoint);
1481
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2070
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1482
2071
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1483
2072
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1484
2073
  }
@@ -1489,8 +2078,9 @@ declare class SharkPattern implements IDrawing {
1489
2078
  readonly requiredPoints = 5;
1490
2079
  points: DrawingPoint[];
1491
2080
  complete: boolean;
2081
+ style?: AnyDrawingStyle;
1492
2082
  constructor(first: DrawingPoint);
1493
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2083
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1494
2084
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1495
2085
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1496
2086
  }
@@ -1501,8 +2091,9 @@ declare class ElliottImpulse implements IDrawing {
1501
2091
  readonly requiredPoints = 6;
1502
2092
  points: DrawingPoint[];
1503
2093
  complete: boolean;
2094
+ style?: AnyDrawingStyle;
1504
2095
  constructor(first: DrawingPoint);
1505
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2096
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1506
2097
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1507
2098
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1508
2099
  }
@@ -1513,8 +2104,9 @@ declare class ElliottCorrective implements IDrawing {
1513
2104
  readonly requiredPoints = 4;
1514
2105
  points: DrawingPoint[];
1515
2106
  complete: boolean;
2107
+ style?: AnyDrawingStyle;
1516
2108
  constructor(first: DrawingPoint);
1517
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2109
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1518
2110
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1519
2111
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1520
2112
  }
@@ -1525,8 +2117,9 @@ declare class ElliottTriangle implements IDrawing {
1525
2117
  readonly requiredPoints = 6;
1526
2118
  points: DrawingPoint[];
1527
2119
  complete: boolean;
2120
+ style?: AnyDrawingStyle;
1528
2121
  constructor(first: DrawingPoint);
1529
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2122
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1530
2123
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1531
2124
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1532
2125
  }
@@ -1537,8 +2130,9 @@ declare class ElliottCombination implements IDrawing {
1537
2130
  readonly requiredPoints = 7;
1538
2131
  points: DrawingPoint[];
1539
2132
  complete: boolean;
2133
+ style?: AnyDrawingStyle;
1540
2134
  constructor(first: DrawingPoint);
1541
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2135
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1542
2136
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1543
2137
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1544
2138
  }
@@ -1549,8 +2143,9 @@ declare class ElliottWxy implements IDrawing {
1549
2143
  readonly requiredPoints = 4;
1550
2144
  points: DrawingPoint[];
1551
2145
  complete: boolean;
2146
+ style?: AnyDrawingStyle;
1552
2147
  constructor(first: DrawingPoint);
1553
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2148
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1554
2149
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1555
2150
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1556
2151
  }
@@ -1561,8 +2156,9 @@ declare class Brush implements IDrawing {
1561
2156
  readonly openEnded = true;
1562
2157
  points: DrawingPoint[];
1563
2158
  complete: boolean;
2159
+ style?: AnyDrawingStyle;
1564
2160
  constructor(first: DrawingPoint);
1565
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2161
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1566
2162
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1567
2163
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1568
2164
  }
@@ -1573,8 +2169,9 @@ declare class Highlighter implements IDrawing {
1573
2169
  readonly openEnded = true;
1574
2170
  points: DrawingPoint[];
1575
2171
  complete: boolean;
2172
+ style?: AnyDrawingStyle;
1576
2173
  constructor(first: DrawingPoint);
1577
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2174
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1578
2175
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1579
2176
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1580
2177
  }
@@ -1584,8 +2181,9 @@ declare class SineLine implements IDrawing {
1584
2181
  readonly type: "sineLine";
1585
2182
  points: DrawingPoint[];
1586
2183
  complete: boolean;
2184
+ style?: AnyDrawingStyle;
1587
2185
  constructor(first: DrawingPoint);
1588
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2186
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1589
2187
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1590
2188
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1591
2189
  }
@@ -1595,8 +2193,9 @@ declare class CyclicLines implements IDrawing {
1595
2193
  readonly type: "cyclicLines";
1596
2194
  points: DrawingPoint[];
1597
2195
  complete: boolean;
2196
+ style?: AnyDrawingStyle;
1598
2197
  constructor(first: DrawingPoint);
1599
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2198
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1600
2199
  hitTest(x: number, _y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1601
2200
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1602
2201
  }
@@ -1606,8 +2205,9 @@ declare class TimeCycles implements IDrawing {
1606
2205
  readonly type: "timeCycles";
1607
2206
  points: DrawingPoint[];
1608
2207
  complete: boolean;
2208
+ style?: AnyDrawingStyle;
1609
2209
  constructor(first: DrawingPoint);
1610
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2210
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1611
2211
  hitTest(x: number, _y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1612
2212
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1613
2213
  }
@@ -1617,8 +2217,9 @@ declare class Projection implements IDrawing {
1617
2217
  readonly type: "projection";
1618
2218
  points: DrawingPoint[];
1619
2219
  complete: boolean;
2220
+ style?: AnyDrawingStyle;
1620
2221
  constructor(first: DrawingPoint);
1621
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2222
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1622
2223
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1623
2224
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1624
2225
  }
@@ -1628,8 +2229,9 @@ declare class PriceProjection implements IDrawing {
1628
2229
  readonly type: "priceProjection";
1629
2230
  points: DrawingPoint[];
1630
2231
  complete: boolean;
2232
+ style?: AnyDrawingStyle;
1631
2233
  constructor(first: DrawingPoint);
1632
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number): void;
2234
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, pricePrecision?: number, theme?: ChartTheme): void;
1633
2235
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1634
2236
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1635
2237
  }
@@ -1639,8 +2241,9 @@ declare class GhostFeed implements IDrawing {
1639
2241
  readonly type: "ghostFeed";
1640
2242
  points: DrawingPoint[];
1641
2243
  complete: boolean;
2244
+ style?: AnyDrawingStyle;
1642
2245
  constructor(first: DrawingPoint);
1643
- render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean): void;
2246
+ render(ctx: CanvasRenderingContext2D, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number, isSelected: boolean, _pricePrecision?: number, theme?: ChartTheme): void;
1644
2247
  hitTest(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): boolean;
1645
2248
  getHandle(x: number, y: number, scale: ScaleManager, viewport: Viewport, priceRange: PriceRange$1, chartW: number, chartH: number): DrawingHandle | null;
1646
2249
  }
@@ -1679,4 +2282,4 @@ declare class WebSocketAdapter implements IWebSocketAdapter {
1679
2282
  private emitStatus;
1680
2283
  }
1681
2284
 
1682
- export { AbcdPattern, AnchoredNote, AnchoredVP, type AnyDragArea, AnyLevel, Arc, ArrowDown, ArrowMarker, ArrowUp, BatPattern, Brush, ButterflyPattern, Callout, ChartConfig, ChartEngine, ChartEventMap, ChartState, Circle, CrabPattern, CrossLine, CyclicLines, CypherPattern, DatePriceRange, DateRange, DisjointChannel, DrawingHandle, DrawingManager, DrawingPoint, DrawingToolType, ElliottCombination, ElliottCorrective, ElliottImpulse, ElliottTriangle, ElliottWxy, Ellipse, FibChannel, FibCircles, FibExtension, FibFan, FibProjection, FibRetracement, FibSpiral, FibTimezone, FixedRangeVP, Flag, FlatChannel, GannBox, GannFan, GannSquare, GartleyPattern, GhostFeed, HeadShoulders, Highlighter, HorizontalLine, IDrawing, IIndicator, IWebSocketAdapter, InsidePitchfork, ModifiedSchiff, OHLCVBar, ParallelChannel, Path, Pitchfork, Polyline, PriceLabel, PriceNote, PriceProjection, PriceRange, PriceRange$1 as PriceRangeType, Projection, Rectangle, RegressionTrend, RotatedRectangle, Ruler, SchiffPitchfork, SerializedDrawing, SeriesType, SharkPattern, SineLine, StreamStatus, Text, ThreeDrives, Tick, TimeCycles, Timeframe, type TradeLevelBracketDragArea, type TradeLevelDragArea, TradeLevelType, TrendAngle, TrendLine, Triangle, TrianglePattern, VerticalLine, Viewport, VolumeProfile, WebSocketAdapter, aggregateCandles };
2285
+ export { AbcdPattern, AdvancedToolbar, AnchoredNote, AnchoredVP, type AnyDragArea, AnyLevel, Arc, ArrowDown, ArrowMarker, ArrowUp, BatPattern, Brush, ButterflyPattern, Callout, ChartConfig, ChartEngine, ChartEventMap, ChartGroup, ChartState, ChartTheme, Circle, CompactToolbar, CrabPattern, CrossLine, CyclicLines, CypherPattern, DatePriceRange, DateRange, DisjointChannel, DrawingHandle, DrawingManager, DrawingPoint, DrawingToolType, ElliottCombination, ElliottCorrective, ElliottImpulse, ElliottTriangle, ElliottWxy, Ellipse, FibChannel, FibCircles, FibExtension, FibFan, FibProjection, FibRetracement, FibSpiral, FibTimezone, FixedRangeVP, Flag, FlatChannel, GannBox, GannFan, GannSquare, GartleyPattern, GhostFeed, HeadShoulders, Highlighter, HorizontalLine, IDrawing, IIndicator, IWebSocketAdapter, IndicatorParams, InsidePitchfork, LayoutPopover, LayoutSyncState, ModifiedSchiff, OHLCVBar, ParallelChannel, Path, Pitchfork, Polyline, PriceLabel, PriceNote, PriceProjection, PriceRange, PriceRange$1 as PriceRangeType, Projection, Rectangle, RegressionTrend, RotatedRectangle, Ruler, SchiffPitchfork, SerializedDrawing, SeriesType, SharkPattern, SineLine, type SnapshotAction, SnapshotPopover, StreamStatus, Text, ThreeDrives, Tick, TimeCycles, Timeframe, type TradeLevelBracketDragArea, type TradeLevelDragArea, TradeLevelType, TrendAngle, TrendLine, Triangle, TrianglePattern, VerticalLine, Viewport, VolumeProfile, WebSocketAdapter, aggregateCandles };