import Statistics from '../statistics'; interface Profiler { sectionTimes: { [name: string]: SectionStat; }; } export declare const cNoSizeTrack = -2; export declare const cUninitializedSize = -1; type NumberStat = { total: number; max: number; min: number; avg: number; c: number; }; type BigNumberStat = { total: bigint; max: bigint; min: bigint; avg: bigint; c: number; }; type SectionStat = BigNumberStat & { name: string; internal: boolean; req: NumberStat; resp: NumberStat; start: bigint; end: bigint; started: boolean; reentryCount: number; reentryCountEver: number; }; type TimesDataReport = { name: string; minMs: number; maxMs: number; totalMs: number; avgMs: number; c: number; data: NumberStat | Record; dataReq: NumberStat | Record; }; type ScopedTimesDataReport = { scopedTimes: TimesDataReport[]; cycle?: number; node?: string; id?: string; }; export interface NodeLoad { internal: number; external: number; } export declare let profilerInstance: Profiler; declare class Profiler { sectionTimes: { [name: string]: SectionStat; }; scopedSectionTimes: { [name: string]: SectionStat; }; eventCounters: Map>; stackHeight: number; netInternalStackHeight: number; netExternalStackHeight: number; statisticsInstance: Statistics; constructor(); setStatisticsInstance(statistics: Statistics): void; registerEndpoints(): void; profileSectionStart(sectionName: string, internal?: boolean): void; profileSectionEnd(sectionName: string, internal?: boolean): void; scopedProfileSectionStart(sectionName: string, internal?: boolean, messageSize?: number): void; scopedProfileSectionEnd(sectionName: string, messageSize?: number): void; cleanInt(x: number): number; getTotalBusyInternal(): { duty: number; netInternlDuty: number; netExternlDuty: number; }; clearTimes(): void; clearScopedTimes(): void; printAndClearReport(): string; printAndClearScopedReport(): string; scopedTimesDataReport(): ScopedTimesDataReport; } export default Profiler;