// Types for speed-push.js — hand-written, same reason as embed-debt-push.d.ts: this is OUR module // and its result can ride into the publish response, so a caller that mistakes "skipped" for // "pushed" reports a batch of samples as recorded when it is not. /** One page's real-browser measurement (runner/speed-probe.mjs). */ export interface SpeedSample { page: string; ttfbMs: number | null; lcpMs: number | null; transferKB: number | null; requests: number | null; embedKB: number | null; } export interface SpeedPushOptions { base?: string; secret?: string; builtAt?: number; renderer?: string | null; fetchFn?: typeof fetch; } export type SpeedPushResult = | { pushed: true } | { pushed: false; reason: string; detail?: string }; export function pushSpeedSamples( site: { key: string }, speed: unknown, opts?: SpeedPushOptions, ): Promise;