interface ChartOptions {
    ariaLabel?: string;
    conflate?: boolean;
    conflationFactor?: number;
    crosshairMode?: CrosshairMode;
    document?: Document;
    grid?: { horzLines?: boolean; vertLines?: boolean };
    now?: () => number;
    pixelRatio?: () => number;
    priceAxisWidth?: number;
    priceFormatter?: (price: number) => string;
    priceScale?: Partial<PriceScaleOptions>;
    raf?: { cancel?: RafCanceller; schedule: RafScheduler };
    shortcuts?: false | ShortcutManager | Partial<ShortcutManagerOptions>;
    theme?: ChartTheme;
    timeAxisHeight?: number;
    timeFormatter?: (utcSeconds: number, tickMark?: TickMarkType) => string;
    timeNavigator?: boolean | Partial<TimeNavigatorOptions>;
}

Properties

ariaLabel?: string

Accessible label for the chart container (screen readers).

conflate?: boolean

Enable OHLC-preserving conflation when zoomed out (§4.4). Default false.

conflationFactor?: number

Conflation aggressiveness (default 1).

crosshairMode?: CrosshairMode

Crosshair behaviour. 'normal' (default) — the cross follows the pointer exactly. 'magnet' — the horizontal line snaps to the nearest O/H/L/C of the bar under the cursor (price pane only).

document?: Document
grid?: { horzLines?: boolean; vertLines?: boolean }

Grid line visibility. Both default to true.

now?: () => number

Time source for kinetic animation (defaults to performance.now).

pixelRatio?: () => number
priceAxisWidth?: number
priceFormatter?: (price: number) => string

Custom price formatter for every pane's axis tick labels, the last-price tag, and price-line labels. e.g. (p) => '$' + p.toFixed(2). When omitted, a tick-size-aware toFixed is used. Change it later via setPriceFormatter.

priceScale?: Partial<PriceScaleOptions>

Default price-scale options applied to every pane (tick size minMove, mode: 'linear' | 'logarithmic', inverted, and top/bottom margins). Tune a single pane later via chart.panes()[n].priceScale.setOptions(...).

raf?: { cancel?: RafCanceller; schedule: RafScheduler }
shortcuts?: false | ShortcutManager | Partial<ShortcutManagerOptions>

Keyboard shortcuts. Pass a configured ShortcutManager, options to build one, or false to disable keyboard control. Defaults to the built-in keymap.

theme?: ChartTheme

Full palette; pass darkTheme (default), lightTheme, or a custom ChartTheme.

timeAxisHeight?: number
timeFormatter?: (utcSeconds: number, tickMark?: TickMarkType) => string

Custom time-axis and crosshair label formatter (receives UTC seconds). When omitted, labels use IST (Indian market default). e.g. for UTC: (s) => new Date(s * 1000).toISOString().slice(11, 16).

timeNavigator?: boolean | Partial<TimeNavigatorOptions>

Hover-revealed zoom / step controls above the time axis (TradingView-style). true by default — they stay invisible until the pointer nears the bottom of the chart. Pass false to drop them, or an options object to restyle.