import { AnyEventResponse, ClickEventRequest, ClickEventResponse, CustomEventRequest, CustomEventResponse, EventType, HealthResponse, SearchEventRequest, SearchEventResponse, ViewEventRequest, ViewEventResponse, VisitResponse, VariableArgumentsPayload, PreparedClickEventRequest, PreparedCustomEventRequest, PreparedViewEventRequest, PreparedSearchEventRequest } from '../events'; import { PreprocessAnalyticsRequest, VisitorIdProvider } from './analyticsRequestClient'; import { IRuntimeEnvironment } from './runtimeEnvironment'; export declare const Version = "v15"; export declare const Endpoints: { default: string; production: string; hipaa: string; }; export interface ClientOptions { token?: string; endpoint: string; isCustomEndpoint?: boolean; version: string; runtimeEnvironment?: IRuntimeEnvironment; beforeSendHooks: AnalyticsClientSendEventHook[]; afterSendHooks: AnalyticsClientSendEventHook[]; preprocessRequest?: PreprocessAnalyticsRequest; } export type AnalyticsClientSendEventHook = (eventType: string, payload: any) => TResult | Promise; export type EventTypeConfig = { newEventType: EventType; variableLengthArgumentsNames?: string[]; addVisitorIdParameter?: boolean; addClientIdParameter?: boolean; usesMeasurementProtocol?: boolean; }; export interface PreparedEvent extends BufferedRequest { log(remainingPayload: Omit): Promise; } export interface AnalyticsClient { getPayload(eventType: string, ...payload: VariableArgumentsPayload): Promise; getParameters(eventType: string, ...payload: VariableArgumentsPayload): Promise; makeEvent(eventType: string, ...payload: VariableArgumentsPayload): Promise>; sendEvent(eventType: string, ...payload: VariableArgumentsPayload): Promise; makeSearchEvent(request: PreparedSearchEventRequest): Promise>; sendSearchEvent(request: SearchEventRequest): Promise; makeClickEvent(request: PreparedClickEventRequest): Promise>; sendClickEvent(request: ClickEventRequest): Promise; makeCustomEvent(request: PreparedCustomEventRequest): Promise>; sendCustomEvent(request: CustomEventRequest): Promise; makeViewEvent(request: PreparedViewEventRequest): Promise>; sendViewEvent(request: ViewEventRequest): Promise; getVisit(): Promise; getHealth(): Promise; registerBeforeSendEventHook(hook: AnalyticsClientSendEventHook): void; registerAfterSendEventHook(hook: AnalyticsClientSendEventHook): void; addEventTypeMapping(eventType: string, eventConfig: EventTypeConfig): void; runtime: IRuntimeEnvironment; version: string; readonly currentVisitorId: string; getCurrentVisitorId?(): Promise; setAcceptedLinkReferrers?(hosts: string[]): void; } export interface BufferedRequest { eventType: EventType; payload: any; } export declare function buildBaseUrl(endpoint?: string, apiVersion?: string, isCustomEndpoint?: boolean): string; export declare class CoveoAnalyticsClient implements AnalyticsClient, VisitorIdProvider { private get defaultOptions(); runtime: IRuntimeEnvironment; get version(): string; private visitorId; private bufferedRequests; private beforeSendHooks; private afterSendHooks; private eventTypeMapping; private options; private acceptedLinkReferrers; constructor(opts: Partial); private initRuntime; private get storage(); private determineVisitorId; getCurrentVisitorId(): Promise; setCurrentVisitorId(visitorId: string): Promise; setClientId(value: string, namespace?: string): Promise; getParameters(eventType: EventType | string, ...payload: VariableArgumentsPayload): Promise; getPayload(eventType: EventType | string, ...payload: VariableArgumentsPayload): Promise; get currentVisitorId(): string; set currentVisitorId(visitorId: string); private extractClientIdFromLink; resolveParameters(eventType: EventType | string, ...payload: VariableArgumentsPayload): Promise; resolvePayloadForParameters(eventType: EventType | string, parameters: any): Promise; makeEvent(eventType: EventType | string, ...payload: VariableArgumentsPayload): Promise>; sendEvent(eventType: EventType | string, ...payload: VariableArgumentsPayload): Promise; private deferExecution; private sendFromBuffer; clear(): void; deleteHttpOnlyVisitorId(): void; makeSearchEvent(request: PreparedSearchEventRequest): Promise>; sendSearchEvent({ searchQueryUid, ...preparedRequest }: SearchEventRequest): Promise; makeClickEvent(request: PreparedClickEventRequest): Promise>; sendClickEvent({ searchQueryUid, ...preparedRequest }: ClickEventRequest): Promise; makeCustomEvent(request: PreparedCustomEventRequest): Promise>; sendCustomEvent({ lastSearchQueryUid, ...preparedRequest }: CustomEventRequest): Promise; makeViewEvent(request: PreparedViewEventRequest): Promise>; sendViewEvent(request: ViewEventRequest): Promise; getVisit(): Promise; getHealth(): Promise; registerBeforeSendEventHook(hook: AnalyticsClientSendEventHook): void; registerAfterSendEventHook(hook: AnalyticsClientSendEventHook): void; addEventTypeMapping(eventType: string, eventConfig: EventTypeConfig): void; setAcceptedLinkReferrers(hosts: string[]): void; private parseVariableArgumentsPayload; private isKeyAllowedEmpty; private removeEmptyPayloadValues; private removeUnknownParameters; private processCustomParameters; private mapCustomParametersToCustomData; private lowercaseKeys; private validateParams; private ensureAnonymousUserWhenUsingApiKey; private setTrackingIdIfTrackingIdNotPresent; private limit; private get baseUrl(); } export default CoveoAnalyticsClient;