import { ChartConfig, ProcessedDataPoint } from '@/types'; /** * D3 v7 rendering engine for stacked area charts */ export declare class Renderer { private svg; private chartGroup; private xScale; private yScale; private area; private config; private bounds; private tooltip; private currentData; private currentEnergySources; private currentColors; private hoverIndicator; private hoverCircle; private chartContainer; constructor(container: string | HTMLElement, config: ChartConfig); /** * Initialize SVG container */ private initializeSVG; /** * Initialize D3 scales */ private initializeScales; /** * Initialize D3 area generator */ private initializeAreaGenerator; /** * Initialize tooltip */ private initializeTooltip; /** * Initialize hover indicator (circle that follows chart boundary) */ private initializeHoverIndicator; /** * Main render method */ render(data: ProcessedDataPoint[], energySources: string[], colors?: Record): void; /** * Update existing chart with new data */ update(data: ProcessedDataPoint[], energySources: string[], colors?: Record): void; /** * Update scales based on data */ private updateScales; /** * Render area paths (initial render) */ private renderAreas; /** * Update area paths with transitions */ private updateAreas; /** * Add mouse interactions to area paths */ private addInteractions; /** * Clear chart content */ private clearChart; /** * Resize chart */ resize(width: number, height: number): void; /** * Update configuration */ updateConfig(newConfig: Partial): void; /** * Destroy renderer and clean up */ destroy(): void; /** * Show hover indicator */ private showHoverIndicator; /** * Hide hover indicator */ private hideHoverIndicator; /** * Update hover indicator position and color to follow specific layer's boundary */ private updateHoverIndicatorForLayer; /** * Get color for energy source, preferring data colors over defaults */ private getColorForSource; /** * Get SVG element for external manipulation */ getSVG(): SVGSVGElement | null; } //# sourceMappingURL=Renderer.d.ts.map