import type { CartType, CustomerOrderType, LineItemType, Product, VariationType, ICurrency, LoggerType } from "./types";
import type { ComputedRef } from "vue";
/**
 * Custom events. The items array can not be added
 */
type CustomEventNamesType = "place_order" | "clear_cart";
type EventParamsType = Gtag.ControlParams & Gtag.EventParams & Gtag.CustomParams;
type EventParamsExtendedType = EventParamsType & {
    item_list_id?: string;
    item_list_name?: string;
};
type SettingValueType = string | number | boolean | null;
type DependenciesType = {
    isDevelopment: boolean;
    getModuleSettings: <T extends Record<string, string>>(settingsMapping: T) => {
        [K in T[keyof T]]?: SettingValueType;
    };
    logger: LoggerType;
    useScriptTag: (src: string) => void;
    currentCurrency: ComputedRef<ICurrency>;
    currencyCode: string;
};
declare function initModule({ getModuleSettings, isDevelopment, logger: loggerInstance, useScriptTag, currentCurrency, currencyCode: initialCurrencyCode, }: DependenciesType): void;
declare function sendEvent(eventName: Gtag.EventNames | CustomEventNamesType, eventParams?: EventParamsType): void;
declare function viewItemList(items?: {
    code: string;
}[], params?: EventParamsExtendedType): void;
declare function selectItem(item: Product | LineItemType, params?: EventParamsExtendedType): void;
declare function viewItem(item: Product, params?: EventParamsExtendedType): void;
declare function addItemToWishList(item: Product, params?: EventParamsExtendedType): void;
declare function addItemToCart(item: Product | VariationType, quantity?: number, params?: EventParamsExtendedType): void;
declare function addItemsToCart(items: (Product | VariationType)[], params?: EventParamsExtendedType): void;
declare function removeItemsFromCart(items: LineItemType[], params?: EventParamsExtendedType): void;
declare function viewCart(cart: CartType, params?: EventParamsExtendedType): void;
declare function clearCart(cart: CartType, params?: EventParamsExtendedType): void;
declare function beginCheckout(cart: CartType, params?: EventParamsExtendedType): void;
declare function addShippingInfo(cart?: CartType, params?: EventParamsExtendedType, shipmentMethodOption?: string): void;
declare function addPaymentInfo(cart?: CartType, params?: EventParamsExtendedType, paymentGatewayCode?: string): void;
declare function purchase(order: CustomerOrderType, transactionId?: string, params?: EventParamsExtendedType): void;
declare function placeOrder(order: CustomerOrderType, params?: EventParamsExtendedType): void;
declare function search(searchTerm: string, visibleItems?: {
    code: string;
}[], itemsCount?: number): void;
export declare function useGoogleAnalyticsModule(): {
    sendEvent: typeof sendEvent;
    viewItemList: typeof viewItemList;
    selectItem: typeof selectItem;
    viewItem: typeof viewItem;
    addItemToWishList: typeof addItemToWishList;
    addItemToCart: typeof addItemToCart;
    addItemsToCart: typeof addItemsToCart;
    removeItemsFromCart: typeof removeItemsFromCart;
    viewCart: typeof viewCart;
    clearCart: typeof clearCart;
    beginCheckout: typeof beginCheckout;
    addShippingInfo: typeof addShippingInfo;
    addPaymentInfo: typeof addPaymentInfo;
    purchase: typeof purchase;
    placeOrder: typeof placeOrder;
    search: typeof search;
    initModule: typeof initModule;
};
export {};
