import type { ChartConfig } from '@/types/chart'; /** * Position and visibility information for a chart placeholder */ export interface ChartPlaceholderInfo { chartId: string; rect: DOMRect | null; isVisible: boolean; config: ChartConfig | null; isLoading: boolean; } /** * Singleton manager for portal-based chart rendering. * Coordinates between inline placeholders and portal-rendered charts. * Uses SolidJS signals to manage state outside the streaming reactive flow. */ declare class ChartPortalManager { private placeholderInfoMap; private chartRegistrySignal; private renderedChartIds; private updateScheduled; private lastUpdateTime; constructor(); /** * Get the signal accessor for chart registry */ getChartRegistry(): import("solid-js").Accessor>; /** * Register a chart placeholder */ registerPlaceholder(chartId: string, isLoading?: boolean): void; /** * Update placeholder position and visibility * Uses throttling to prevent excessive signal updates during scroll */ updatePlaceholderPosition(chartId: string, rect: DOMRect | null, isVisible: boolean): void; /** * Schedule a throttled signal update */ private scheduleUpdate; /** * Perform the actual signal update */ private performUpdate; /** * Set chart config when data is complete */ setChartConfig(chartId: string, config: ChartConfig): void; /** * Check if a chart has already been rendered */ isChartRendered(chartId: string): boolean; /** * Mark a chart as rendered */ markChartRendered(chartId: string): void; /** * Unregister a chart placeholder */ unregisterPlaceholder(chartId: string): void; /** * Get placeholder info */ getPlaceholderInfo(chartId: string): ChartPlaceholderInfo | undefined; /** * Clear all placeholders */ clearAll(): void; /** * Notify signal subscribers of update */ private notifyUpdate; } export declare const chartPortalManager: ChartPortalManager; export {}; //# sourceMappingURL=chartPortalManager.d.ts.map