1 | export interface Metric {
|
2 | name: 'CLS' | 'FCP' | 'FID' | 'LCP' | 'TTFB';
|
3 | value: number;
|
4 | delta: number;
|
5 | id: string;
|
6 | entries: (PerformanceEntry | FirstInputPolyfillEntry | NavigationTimingPolyfillEntry)[];
|
7 | }
|
8 | export interface ReportHandler {
|
9 | (metric: Metric): void;
|
10 | }
|
11 | export interface PerformanceEventTiming extends PerformanceEntry {
|
12 | processingStart: DOMHighResTimeStamp;
|
13 | processingEnd: DOMHighResTimeStamp;
|
14 | duration: DOMHighResTimeStamp;
|
15 | cancelable?: boolean;
|
16 | target?: Element;
|
17 | }
|
18 | export declare type FirstInputPolyfillEntry = Omit<PerformanceEventTiming, 'processingEnd' | 'toJSON'>;
|
19 | export interface FirstInputPolyfillCallback {
|
20 | (entry: FirstInputPolyfillEntry): void;
|
21 | }
|
22 | export declare type NavigationTimingPolyfillEntry = Omit<PerformanceNavigationTiming, 'initiatorType' | 'nextHopProtocol' | 'redirectCount' | 'transferSize' | 'encodedBodySize' | 'decodedBodySize' | 'toJSON'>;
|
23 | export interface WebVitalsGlobal {
|
24 | firstInputPolyfill: (onFirstInput: FirstInputPolyfillCallback) => void;
|
25 | resetFirstInputPolyfill: () => void;
|
26 | firstHiddenTime: number;
|
27 | }
|
28 | declare global {
|
29 | interface Window {
|
30 | webVitals: WebVitalsGlobal;
|
31 | __WEB_VITALS_POLYFILL__: boolean;
|
32 | }
|
33 | }
|