import type { INSMSession } from '../insm-session'; type LongAnimationFrameMeasurerOptions = { initial: boolean; insmSession: INSMSession; limit: number; reportingThreshold: number; }; interface TrackedScriptTiming { afDuration: number; duration: number; features: string[]; forcedStyleAndLayoutDuration: number; invoker: string; invokerType: string; sourceCharPosition: number; sourceFunctionName: string; sourceURL: string; } export declare class LongAnimationFrameMeasurer { private observer?; private longestScriptTimings; private options; private paused; private minimumIndex; private minimumDuration; constructor(options: LongAnimationFrameMeasurerOptions); private handleBatch; private createScriptTiming; private processScript; /** * Pauses tracking */ pause(): void; /** * Resumes tracking */ resume(): void; /** * Returns the current tracked longest script timings sorted by duration */ get current(): TrackedScriptTiming[]; /** * Cleans up the performance tracking (tracking cannot be resumed following this). */ cleanup(): void; } export interface _PerformanceScriptTiming extends PerformanceEntry { readonly duration: DOMHighResTimeStamp; readonly entryType: string; readonly executionStart: DOMHighResTimeStamp; readonly forcedStyleAndLayoutDuration: DOMHighResTimeStamp; readonly invoker: string; readonly invokerType: 'classic-script' | 'module-script' | 'event-listener' | 'user-callback' | 'resolve-promise' | 'reject-promise'; readonly name: string; readonly pauseDuration: DOMHighResTimeStamp; readonly sourceCharPosition: number; readonly sourceFunctionName: string; readonly sourceURL: string; readonly startTime: DOMHighResTimeStamp; readonly window?: Window; readonly windowAttribution: 'self' | 'descendant' | 'ancestor' | 'same-page' | 'other'; } export {};