import * as _nuxt_schema from '@nuxt/schema'; import { Nuxt } from '@nuxt/schema'; declare class Telemetry { nuxt: Nuxt; options: Required; storage: any; _contextPromise?: Promise; events: Promise>[]; eventFactories: Record>; constructor(nuxt: Nuxt, options: Required); getContext(): Promise; createEvent(name: string, payload?: object): undefined | Promise; _invokeEvent(name: string, eventFactory: EventFactory, payload?: object): Promise; getPublicContext(): Promise>; sendEvents(debug?: boolean): Promise; } interface TelemetryOptions { debug: boolean; endpoint: string; seed: string; consent?: number; enabled: boolean; } interface Context { nuxt: Nuxt; cli: string; seed: string; projectHash: string; projectSession: string; nuxtVersion: string; nuxtMajorVersion: 2 | 3; isEdge: boolean; nodeVersion: string; os: string; git?: { url: string; }; environment: string | null; packageManager: string; concent: number; } interface Event { name: string; [key: string]: any; } type EventFactoryResult = Promise | T | Promise[] | T[]; type EventFactory = (context: Context, payload: any) => EventFactoryResult; declare module '@nuxt/schema' { interface NuxtHooks { 'telemetry:setup': (telemetry: Telemetry) => void; } } type ModuleOptions = boolean | TelemetryOptions; declare const _default: _nuxt_schema.NuxtModule; export = _default; export type { ModuleOptions };