import { KeyedSet } from './utils'; import { ValueFormatter } from './value-formatters'; import { FileFormat } from './file-format-spec'; export interface FrameInfo { key: string | number; name: string; file?: string; line?: number; col?: number; } export declare class HasWeights { private selfWeight; private totalWeight; getSelfWeight(): number; getTotalWeight(): number; addToTotalWeight(delta: number): void; addToSelfWeight(delta: number): void; overwriteWeightWith(other: HasWeights): void; } export declare class Frame extends HasWeights { key: string | number; name: string; file?: string; line?: number; col?: number; private constructor(); static root: Frame; static getOrInsert(set: KeyedSet, info: FrameInfo): Frame; } export declare class CallTreeNode extends HasWeights { readonly frame: Frame; readonly parent: CallTreeNode | null; children: CallTreeNode[]; isRoot(): boolean; private frozen; isFrozen(): boolean; freeze(): void; constructor(frame: Frame, parent: CallTreeNode | null); } export interface ProfileGroup { name: string; indexToView: number; profiles: Profile[]; } export declare class Profile { protected name: string; protected totalWeight: number; protected frames: KeyedSet; protected appendOrderCalltreeRoot: CallTreeNode; protected groupedCalltreeRoot: CallTreeNode; getAppendOrderCalltreeRoot(): CallTreeNode; getGroupedCalltreeRoot(): CallTreeNode; protected samples: CallTreeNode[]; protected weights: number[]; protected valueFormatter: ValueFormatter; constructor(totalWeight?: number); formatValue(v: number): string; setValueFormatter(f: ValueFormatter): void; getWeightUnit(): FileFormat.ValueUnit; getName(): string; setName(name: string): void; getTotalWeight(): number; private totalNonIdleWeight; getTotalNonIdleWeight(): number; protected sortGroupedCallTree(): void; forEachCallGrouped(openFrame: (node: CallTreeNode, value: number) => void, closeFrame: (node: CallTreeNode, value: number) => void): void; forEachCall(openFrame: (node: CallTreeNode, value: number) => void, closeFrame: (node: CallTreeNode, value: number) => void): void; forEachFrame(fn: (frame: Frame) => void): void; getProfileWithRecursionFlattened(): Profile; getInvertedProfileForCallersOf(focalFrameInfo: FrameInfo): Profile; getProfileForCalleesOf(focalFrameInfo: FrameInfo): Profile; demangle(): Promise; remapNames(callback: (name: string) => string): void; } export declare class StackListProfileBuilder extends Profile { _appendSample(stack: FrameInfo[], weight: number, useAppendOrder: boolean): void; appendSampleWithWeight(stack: FrameInfo[], weight: number): void; private pendingSample; appendSampleWithTimestamp(stack: FrameInfo[], timestamp: number): void; build(): Profile; } export declare class CallTreeProfileBuilder extends Profile { private appendOrderStack; private groupedOrderStack; private framesInStack; private stack; private lastValue; private addWeightsToFrames; private addWeightsToNodes; private _enterFrame; enterFrame(frameInfo: FrameInfo, value: number): void; private _leaveFrame; leaveFrame(frameInfo: FrameInfo, value: number): void; build(): Profile; }