/**
 * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
 * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
 */
export interface GoogleAnalyticsConfig {
    readonly adStorage?: 'granted' | 'denied';
    readonly analyticsStorage?: 'granted' | 'denied';
    readonly anonymizeIp?: boolean;
    readonly debug?: boolean;
    readonly enabled?: boolean;
    readonly googleAnalyticsId?: string;
}
export interface AnalyticsHook {
    readonly trackPageView: (path?: string, title?: string) => void;
    readonly trackEvent: (eventName: string, params?: Record<string, unknown>) => void;
    readonly trackClick: (elementName: string, params?: Record<string, unknown>) => void;
    readonly setUserId: (userId: string) => void;
    readonly setUserProperties: (properties: Record<string, unknown>) => void;
}
declare global {
    interface Window {
        gtag?: (...args: unknown[]) => void;
        dataLayer?: unknown[];
    }
}
export declare const resetAnalyticsTestState: () => void;
export declare const forceAnalyticsInitializedForTesting: () => void;
export declare const initializeAnalytics: (config: GoogleAnalyticsConfig) => void;
export declare const trackPageView: (path?: string, title?: string, params?: Record<string, unknown>) => void;
export declare const trackEvent: (eventName: string, params?: Record<string, unknown>) => void;
export declare const trackClick: (elementName: string, params?: Record<string, unknown>) => void;
export declare const setUserId: (userId: string) => void;
export declare const setUserProperties: (properties: Record<string, unknown>) => void;
export declare const useAnalytics: () => AnalyticsHook;
