import { mat3 } from 'gl-matrix'; import { WebGLManager } from './WebGLManager.js'; import { FlameNode } from './FlameDataProcessor.js'; /** * Handles all text rendering for the flame graph * * Core principles: * - Text rendered in screen space coordinates (fixed size) * - Text anchored to left edge of frames with padding * - Text does not scale with horizontal zoom */ export declare class TextRenderer { #private; constructor(webgl: WebGLManager); /** * Set the font family and recreate text atlas */ setFontFamily(fontFamily: string): void; /** * Set the text color and recreate text atlas */ setTextColor(color: string): void; /** * Set shadow opacity for text rendering */ setShadowOpacity(opacity: number): void; /** * Create a texture atlas containing all printable ASCII characters */ createTextAtlas(): void; /** * Render text for all visible frames in screen space coordinates */ renderText(frames: Array<{ node: FlameNode; x1: number; x2: number; y1: number; y2: number; }>, matrix: mat3, viewportWidth: number, viewportHeight: number, frameOpacities: Map, framePadding: number | undefined, camera: { x: number; y: number; scale: number; }): void; /** * Format frame text with filename and line number if available */ formatFrameText(node: FlameNode): string; /** * Truncate text to fit within the given pixel width */ truncateText(text: string, maxWidth: number): string; /** * Destroy the text renderer and clean up resources */ destroy(): void; } //# sourceMappingURL=TextRenderer.d.ts.map