import { RequestClient, Features, StatsContext } from '@segment/actions-core';
import { BaseEventData, EventDataType, AnyPayload, SearchEventData, EventTypeKey, CustomEventData, AddToCartEventData, ViewContentEventData, InitiateCheckoutEventData, PageEventData, PurchaseEventData, GeneratedAppData, UserData, Content } from './types';
import type { Settings } from '../generated-types';
import type { Payload as AddToCartPayload } from '../addToCart/generated-types';
import type { Payload as AddToCart2Payload } from '../addToCart2/generated-types';
import type { Payload as CustomPayload } from '../custom/generated-types';
import type { Payload as Custom2Payload } from '../custom2/generated-types';
import type { Payload as InitiateCheckoutPayload } from '../initiateCheckout/generated-types';
import type { Payload as InitiateCheckout2Payload } from '../initiateCheckout2/generated-types';
import type { Payload as PageViewPayload } from '../pageView/generated-types';
import type { Payload as PageView2Payload } from '../pageView2/generated-types';
import type { Payload as PurchasePayload } from '../purchase/generated-types';
import type { Payload as Purchase2Payload } from '../purchase2/generated-types';
import type { Payload as SearchPayload } from '../search/generated-types';
import type { Payload as Search2Payload } from '../search2/generated-types';
import type { Payload as ViewContentPayload } from '../viewContent/generated-types';
import type { Payload as ViewContent2Payload } from '../viewContent2/generated-types';
export declare function send<P extends AnyPayload, T extends EventDataType>(request: RequestClient, payload: P, settings: Settings, getDataFunction: (payload: P) => T, eventType: EventTypeKey, features?: Features, statsContext?: StatsContext): Promise<import("@segment/actions-core/src").ModifiedResponse<unknown>>;
export declare const validate: (payload: AnyPayload, eventType: EventTypeKey) => void;
export declare const validateContents: (contents: Content[]) => void;
export declare function getBaseEventData(payload: AnyPayload): BaseEventData;
export declare function getAddToCartEventData(payload: AddToCartPayload | AddToCart2Payload): AddToCartEventData;
export declare function getCustomEventData(payload: CustomPayload | Custom2Payload): CustomEventData;
export declare function getInitiateCheckoutEventData(payload: InitiateCheckoutPayload | InitiateCheckout2Payload): InitiateCheckoutEventData;
export declare function getPageViewEventData(payload: PageViewPayload | PageView2Payload): PageEventData;
export declare function getPurchaseEventData(payload: PurchasePayload | Purchase2Payload): PurchaseEventData;
export declare function getSearchEventData(payload: SearchPayload | Search2Payload): SearchEventData;
export declare function getViewContentEventData(payload: ViewContentPayload | ViewContent2Payload): ViewContentEventData;
export declare const generateAppData: (app_data: AnyPayload["app_data_field"]) => GeneratedAppData | undefined;
export declare const getApiVersion: (features: Features | undefined, statsContext: StatsContext | undefined) => string;
export declare const isHashedInformation: (information: string) => boolean;
export declare const hashArray: (values: string[] | undefined) => string[] | undefined;
export declare const cleanAndHash: (value: string | undefined) => string | undefined;
export declare const hash: (value: string | undefined) => string | undefined;
export declare const clean: (value: string | undefined) => string | undefined;
export declare const getUserData: (payloadUserData: AnyPayload["user_data"]) => UserData;
