interface SpeedInsightsProps { dsn?: string; sampleRate?: number; route?: string | null; beforeSend?: BeforeSend; debug?: boolean; scriptSrc?: string; endpoint?: string; } type InjectSpeedInsightsProps = SpeedInsightsProps & { framework?: string; basePath?: string; }; type EventTypes = 'vital'; interface BeforeSendEvent { type: EventTypes; url: string; route?: string; } type BeforeSend = (event: BeforeSendEvent) => BeforeSendEvent | null | undefined | false; interface Functions { beforeSend?: BeforeSend; } interface SpeedInsights { queue: [T, Functions[T]][]; addAction: (action: T, data: Functions[T]) => void; } declare global { interface Window { /** Base interface to track events */ si?: SpeedInsights['addAction']; /** Queue for speed insights datapoints, before the library is loaded */ siq?: SpeedInsights['queue']; sil?: boolean; /** used by Astro component only */ speedInsightsBeforeSend?: BeforeSend; } } declare function computeRoute(pathname: string | null, pathParams: Record | null): string | null; /** * Injects the Vercel Speed Insights script into the page head and starts tracking page views. Read more in our [documentation](https://vercel.com/docs/speed-insights). * @param [props] - Speed Insights options. * @param [props.debug] - Whether to enable debug logging in development. Defaults to `true`. * @param [props.beforeSend] - A middleware function to modify events before they are sent. Should return the event object or `null` to cancel the event. * @param [props.sampleRate] - When setting to 0.5, 50% of the events will be sent to Vercel Speed Insights. Defaults to `1`. * @param [props.route] - The dynamic route of the page. * @param [props.dsn] - The DSN of the project to send events to. Only required when self-hosting. * @param [confString] - an optional JSON string (InjectSpeedInsightsProps) containing the default configuration. Explicit props will take over any provided default. */ declare function injectSpeedInsights(props?: InjectSpeedInsightsProps, confString?: string): { setRoute: (route: string | null) => void; } | null; declare const _default: { injectSpeedInsights: typeof injectSpeedInsights; computeRoute: typeof computeRoute; }; export { type BeforeSend as BeforeSendMiddleware, type SpeedInsightsProps, computeRoute, _default as default, injectSpeedInsights };