UNPKG

@neabyte/chart-to-image

Version:

Convert trading charts to images using Node.js canvas with advanced features: 6 chart types, VWAP/EMA/SMA indicators, custom colors, themes, hide elements, scaling, and PNG/JPEG export formats.

58 lines (57 loc) 1.85 kB
import { type ComparisonLayout } from '../renderer/comparison.js'; export interface ComparisonConfig { symbols: string[]; timeframe?: string; timeframes?: string[]; exchange?: string; layout?: ComparisonLayout; width?: number; height?: number; theme?: 'light' | 'dark'; chartType?: string; showVWAP?: boolean; showEMA?: boolean; emaPeriod?: number; showSMA?: boolean; smaPeriod?: number; showBollingerBands?: boolean; bbPeriod?: number; bbStandardDeviations?: number; bbColors?: { upper?: string; middle?: string; lower?: string; background?: string; backgroundOpacity?: number; }; outputPath?: string; customBarColors?: { bullish?: string; bearish?: string; wick?: string; border?: string; }; } export interface ComparisonResult { success: boolean; outputPath?: string; error?: string; buffer?: Buffer; } export declare class ComparisonService { private static readonly DEFAULT_LAYOUT_TYPE; private config; private dataProvider; constructor(config: ComparisonConfig); generateComparison(): Promise<ComparisonResult>; private addChartsToRenderer; private addTimeframeCharts; private addSymbolCharts; private createSuccessResult; private createErrorResult; private generateChartData; private createChartData; static sideBySide(symbols: string[], outputPath: string, config?: Partial<ComparisonConfig>): Promise<ComparisonResult>; static grid(symbols: string[], columns: number, outputPath: string, config?: Partial<ComparisonConfig>): Promise<ComparisonResult>; static timeframeComparison(symbol: string, timeframes: string[], outputPath: string, config?: Partial<ComparisonConfig>): Promise<ComparisonResult>; }