UNPKG

@nuxt/scripts

Version:

Load third-party scripts with better performance, privacy and DX in Nuxt Apps.

42 lines (41 loc) 1.46 kB
import type { GTag } from './google-analytics.js'; import type { RegistryScriptInput } from '#nuxt-scripts/types'; type DataLayer = Array<Parameters<GTag> | Record<string, unknown>>; interface GoogleTagManagerDataLayerApi { name: 'dataLayer'; set: (opt: { [key: string]: string; }) => void; get: (key: string) => void; reset: () => void; } interface GoogleTagManagerDataLayerStatus { dataLayer: { gtmDom: boolean; gtmLoad: boolean; subscribers: number; }; } type GoogleTagManagerInstance = GoogleTagManagerDataLayerStatus & { [key: string]: { callback: () => void; dataLayer: GoogleTagManagerDataLayerApi; }; }; interface GoogleTagManagerApi { google_tag_manager: GoogleTagManagerInstance; dataLayer: DataLayer; } declare global { interface Window extends GoogleTagManagerApi { } } export declare const GoogleTagManagerOptions: import("valibot").ObjectSchema<{ readonly id: import("valibot").StringSchema<undefined>; readonly l: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>; }, undefined>; export type GoogleTagManagerInput = RegistryScriptInput<typeof GoogleTagManagerOptions>; export declare function useScriptGoogleTagManager<T extends GoogleTagManagerApi>(_options?: GoogleTagManagerInput & { onBeforeGtmStart?: (gtag: GTag) => void; }): import("#nuxt-scripts/types").UseScriptContext<T>; export {};