Rocky_Mountain_Vending/.pnpm-store/v10/files/fc/74b65d56574a3a84327d8a9573fdfd725bdd42442a4538e1244bb2ca65c7ac6a648209686cc01da3de4fd395d8a7fe3e4a8c2f715a800e36b944fdaaf7cf2e
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

71 lines
3.4 KiB
Text

import * as Types from '../types/types.js';
import { ScoreClassification } from './PageLoadMetricsHandler.js';
import type { HandlerName } from './types.js';
export declare const LONG_INTERACTION_THRESHOLD: Types.Timing.Micro;
export interface UserInteractionsData {
/** All the user events we found in the trace */
allEvents: readonly Types.Events.EventTimingBeginOrEnd[];
/** All the BeginCommitCompositorFrame events we found in the trace */
beginCommitCompositorFrameEvents: readonly Types.Events.BeginCommitCompositorFrame[];
/** All the ParseMetaViewport events we found in the trace */
parseMetaViewportEvents: readonly Types.Events.ParseMetaViewport[];
/**
* All the interaction events we found in the trace that had an
* interactionId and a duration > 0
**/
interactionEvents: readonly Types.Events.SyntheticInteractionPair[];
/**
* If the user rapidly generates interaction events (think typing into a
* text box), in the UI we only really want to show the user the longest
* interaction in that set.
* For example picture interactions like this:
* ===[interaction A]==========
* =[interaction B]======
* =[interaction C]=
*
* These events all end at the same time, and so in this instance we only want
* to show the first interaction A on the timeline, as that is the longest one
* and the one the developer should be focusing on. So this array of events is
* all the interaction events filtered down, removing any nested interactions
* entirely.
**/
interactionEventsWithNoNesting: readonly Types.Events.SyntheticInteractionPair[];
longestInteractionEvent: Readonly<Types.Events.SyntheticInteractionPair> | null;
interactionsOverThreshold: Readonly<Set<Types.Events.SyntheticInteractionPair>>;
}
export declare function reset(): void;
export declare function handleEvent(event: Types.Events.Event): void;
export type InteractionCategory = 'KEYBOARD' | 'POINTER' | 'OTHER';
export declare function categoryOfInteraction(interaction: Types.Events.SyntheticInteractionPair): InteractionCategory;
/**
* We define a set of interactions as nested where:
* 1. Their end times align.
* 2. The longest interaction's start time is earlier than all other
* interactions with the same end time.
* 3. The interactions are of the same category [each interaction is either
* categorised as keyboard, or pointer.]
*
* =============A=[pointerup]=
* ====B=[pointerdown]=
* ===C=[pointerdown]==
* ===D=[pointerup]===
*
* In this example, B, C and D are all nested and therefore should not be
* returned from this function.
*
* However, in this example we would only consider B nested (under A) and D
* nested (under C). A and C both stay because they are of different types.
* ========A=[keydown]====
* =======B=[keyup]=====
* ====C=[pointerdown]=
* =D=[pointerup]=
**/
export declare function removeNestedInteractions(interactions: readonly Types.Events.SyntheticInteractionPair[]): readonly Types.Events.SyntheticInteractionPair[];
export declare function finalize(): Promise<void>;
export declare function data(): UserInteractionsData;
export declare function deps(): HandlerName[];
/**
* Classifications sourced from
* https://web.dev/articles/inp#good-score
*/
export declare function scoreClassificationForInteractionToNextPaint(timing: Types.Timing.Micro): ScoreClassification;