type GoogleTagEventName = 'add_payment_info' | 'begin_checkout' | 'conversion' | 'lead' | 'page_view' | 'purchase' | 'tutorial_begin' | 'tutorial_complete'; export type GoogleTagHeadScript = { id: string; src?: string; content?: string; }; export type GoogleTagTrackInput = { eventName: GoogleTagEventName; parameters?: Record; }; export type AnalyticsEventForGoogleTag = { eventId?: string | null; eventType: string; metadata?: Record; }; declare global { interface Window { __funnelsgroveGoogleTagHeadReady?: boolean; __funnelsgroveGoogleTagPageLocation?: string; __funnelsgroveGoogleTagServiceReady?: boolean; __funnelsgroveSanitizeGoogleTagUrl?: (value: string) => string | undefined; dataLayer?: unknown[]; gtag?: (...args: unknown[]) => void; } } export declare const buildGoogleTagHeadScripts: () => GoogleTagHeadScript[]; export declare const mapAnalyticsEventToGoogleTagEvent: (event: AnalyticsEventForGoogleTag) => GoogleTagTrackInput | null; export declare const mapAnalyticsEventToGoogleAdsConversionEvent: (event: AnalyticsEventForGoogleTag) => GoogleTagTrackInput | null; export declare const mapAnalyticsEventToGoogleTagEvents: (event: AnalyticsEventForGoogleTag) => GoogleTagTrackInput[]; export declare class GoogleTagService { private initialized; initialize(): void; track(input: GoogleTagTrackInput): void; private isConfigured; private ensureInitialized; private ensureDataLayer; private installScript; } export declare const googleTagService: GoogleTagService; export {};