@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
TypeScript
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>;
}