import { AnyEventResponse, EventType, IRequestPayload } from '../events'; export interface VisitorIdProvider { getCurrentVisitorId: () => Promise; setCurrentVisitorId: (visitorId: string) => void; } export interface AnalyticsRequestClient { sendEvent(eventType: string, payload: IRequestPayload): Promise; deleteHttpCookieVisitorId: () => Promise; } export interface IAnalyticsClientOptions { baseUrl: string; token?: string; visitorIdProvider: VisitorIdProvider; preprocessRequest?: PreprocessAnalyticsRequest; } export type AnalyticsClientOrigin = 'analyticsFetch' | 'analyticsBeacon'; export type PreprocessAnalyticsRequest = (request: IAnalyticsRequestOptions, clientOrigin: AnalyticsClientOrigin) => IAnalyticsRequestOptions | Promise; export interface IAnalyticsRequestOptions extends RequestInit { url: string; } export declare class NoopAnalyticsClient implements AnalyticsRequestClient { sendEvent(_: EventType, __: IRequestPayload): Promise; deleteHttpCookieVisitorId(): Promise; }