import { Configuration } from '@cloudsnorkel/datadog-browser-core'; import { LifeCycle } from './lifeCycle'; export interface RumPerformanceResourceTiming { entryType: 'resource'; initiatorType: string; name: string; startTime: number; duration: number; fetchStart: number; domainLookupStart: number; domainLookupEnd: number; connectStart: number; secureConnectionStart: number; connectEnd: number; requestStart: number; responseStart: number; responseEnd: number; redirectStart: number; redirectEnd: number; decodedBodySize: number; traceId?: string; } export interface RumPerformanceLongTaskTiming { entryType: 'longtask'; startTime: number; duration: number; } export interface RumPerformancePaintTiming { entryType: 'paint'; name: 'first-paint' | 'first-contentful-paint'; startTime: number; } export interface RumPerformanceNavigationTiming { entryType: 'navigation'; domComplete: number; domContentLoadedEventEnd: number; domInteractive: number; loadEventEnd: number; } export declare type RumPerformanceEntry = RumPerformanceResourceTiming | RumPerformanceLongTaskTiming | RumPerformancePaintTiming | RumPerformanceNavigationTiming; export declare function startPerformanceCollection(lifeCycle: LifeCycle, configuration: Configuration): void; export declare function retrieveInitialDocumentResourceTiming(callback: (timing: RumPerformanceResourceTiming) => void): void;