import { Theme, DrawingObject, ChartData, ViewportState } from '../types';
import { Marker } from '../types/marker';
import { WebGLRenderer } from '../core/WebGLRenderer';
import { UnifiedCoordinateSystem } from '../core/UnifiedCoordinateSystem';
import { WebGLLineHelper } from './unified/WebGLLineHelper';
import { SnapPoint } from './unified/SnapPointRenderer';
/**
 * Unified renderer for crosshair, drawings, snap points, and measurements
 */
export declare class UnifiedRenderer {
    private renderer;
    private theme;
    private coordSystem;
    private initialized;
    private lineHelper;
    private crosshairRenderer;
    private drawingRenderer;
    private snapPointRenderer;
    private measureRenderer;
    private markerRenderer;
    private mouseX;
    private mouseY;
    private snapPoint;
    private measureStart;
    private measureEnd;
    private measureFixed;
    constructor(renderer: WebGLRenderer, theme: Theme, coordSystem: UnifiedCoordinateSystem);
    init(): Promise<void>;
    /**
     * Set mouse position (CSS coordinates)
     */
    setMousePosition(cssX: number, cssY: number): void;
    /**
     * Set snap point
     */
    setSnapPoint(snap: SnapPoint | null): void;
    /**
     * Set measurement points
     */
    setMeasure(start: {
        index: number;
        price: number;
    } | null, end: {
        index: number;
        price: number;
    } | null, fixed: boolean): void;
    /**
     * Main render method
     */
    render(drawings: DrawingObject[], data: ChartData, markers?: Marker[], _viewport?: ViewportState | UnifiedCoordinateSystem, verticalOnly?: boolean): void;
    /**
     * Get line helper for external use
     */
    getLineHelper(): WebGLLineHelper;
    /**
     * Update theme
     */
    updateTheme(theme: Theme): void;
    /**
     * Dispose resources
     */
    dispose(): void;
}
