import { Profile } from 'pprof-format'; import { ProfileMetadata } from './ProfileMetadata.js'; export interface FlameNode { id: string; name: string; value: number; selfValue: number; sampleCount: number; selfSampleCount: number; children: FlameNode[]; parent?: FlameNode; depth: number; x: number; width: number; selfWidth: number; fileName?: string; lineNumber?: number; } export interface FrameData { id: string; name: string; value: number; selfValue: number; depth: number; x: number; width: number; selfWidth: number; functionName: string; fileName?: string; lineNumber?: number; totalValue: number; sampleCount?: number; } /** * Processes Profile data and converts it to FlameNode structure */ export declare class FlameDataProcessor { #private; /** * Convert Profile to FlameNode structure */ processProfile(profile: Profile, showAppCodeOnly?: boolean): FlameNode; /** * Get the processed flame graph data */ getData(): FlameNode | null; /** * Get the profile metadata */ getProfileMetadata(): ProfileMetadata | null; /** * Set frame padding */ setFramePadding(padding: number): void; /** * Get frame padding */ getFramePadding(): number; /** * Get maximum depth of the flame graph */ getMaxDepth(): number; /** * Get frame height including padding */ getFrameHeight(): number; /** * Calculate total graph height */ calculateGraphHeight(): number; /** * Generate frame layout for rendering */ generateFrames(): Array<{ node: FlameNode; x1: number; x2: number; y1: number; y2: number; }>; /** * Get stack trace for a frame */ getStackTrace(frameId: string): FlameNode[]; /** * Get children of a frame */ getFrameChildren(frameId: string): FlameNode[]; /** * Find a frame by ID */ findFrameById(id: string): FlameNode | null; /** * Get self-time value for a specific frame */ getFrameSelfTime(frameId: string): number; /** * Get self-time as percentage of total profile time for a specific frame */ getFrameSelfTimePercentage(frameId: string): number; } //# sourceMappingURL=FlameDataProcessor.d.ts.map