import { Actions } from '@storefront/flux-capacitor'; import { BaseService } from '../core/service'; import { GbTracker } from '../core/utils'; import StoreFront from '../storefront'; export declare const GBI_METADATA: GbTracker.Metadata[]; export declare const TRACKER_EVENT = "tracker:send_event"; export declare const DEFAULT_ORIGINS: { dym: boolean; recommendations: boolean; autosearch: boolean; navigation: boolean; collectionSwitcher: boolean; sayt: boolean; }; export declare type Override = (payload: S | T, event: T) => T; declare class TrackerService extends BaseService { client: GbTracker; transform: (product: any) => any; constructor(app: StoreFront, opts: TrackerService.Options); init(): void; applyOptsOverride(defaultFn: (value: any, override?: Override) => void, override: Override): (listenerValue: any) => void; setListeners(app: StoreFront): void; sendEvent(method: keyof GbTracker, event: any): void; attachGbiEventMetadata: (override: S) => S; buildEvent: (override: Override, event: T, value?: S | T) => T; sendSearchEvent: (id: string, override?: Override) => void; sendViewCartEvent: (event: GbTracker.CartEvent, override?: Override) => void; sendAddToCartEvent: (event: GbTracker.CartEvent, override?: Override) => void; sendRemoveFromCartEvent: (event: GbTracker.CartEvent, override?: Override) => void; sendOrderEvent: (event: GbTracker.OrderEvent, override?: Override) => void; sendViewProductEvent: (record: any, override?: Override) => void; sendMoreRefinementsEvent: (id: string, override?: Override) => void; addMetadata(event: any): any; getSearchOrigin(): Actions.Metadata.Tag; getMetadata(origin?: Actions.Metadata.Tag): { key: string; value: string; }[]; } declare namespace TrackerService { interface Options { warnings?: boolean; sendSearchEvent?: Override; sendViewCartEvent?: Override; sendAddToCartEvent?: Override; sendRemoveFromCartEvent?: Override; sendOrderEvent?: Override; sendViewProductEvent?: Override; sendMoreRefinementsEvent?: Override; } } export default TrackerService;