UNPKG

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