import { RequestClient, DynamicFieldResponse, JSONLikeObject, MultiStatusResponse, StatsContext } from '@segment/actions-core';
import { Settings } from './generated-types';
import { ImportJobPayload, SubscribeProfile, SubscribeEventData, UnsubscribeProfile, UnsubscribeEventData, AdditionalAttributes, KlaviyoProfile, validateProfilePayloadResult } from './types';
import { Payload } from './upsertProfile/generated-types';
import { Payload as RemoveProfilePayload } from './removeProfile/generated-types';
import { Payload as TrackEventPayload } from './trackEvent/generated-types';
import { Payload as AddProfileToListPayload } from './addProfileToList/generated-types';
export declare function getListIdDynamicData(request: RequestClient): Promise<DynamicFieldResponse>;
export declare function addProfileToList(request: RequestClient, id: string, list_id: string | undefined): Promise<import("@segment/actions-core/src").ModifiedResponse<unknown>>;
export declare function removeProfileFromList(request: RequestClient, ids: string[], list_id: string): Promise<import("@segment/actions-core/src").ModifiedResponse<unknown>>;
export declare function createProfile(request: RequestClient, email: string | undefined, external_id: string | undefined, phone_number: string | undefined, additionalAttributes: AdditionalAttributes): Promise<any>;
export declare function buildHeaders(authKey: string): {
    Authorization: string;
    Accept: string;
    revision: string;
    'Content-Type': string;
};
export declare const createImportJobPayload: (profiles: Payload[], listId?: string) => {
    data: ImportJobPayload;
};
export declare const constructBulkProfileImportPayload: (profiles: KlaviyoProfile[], listId?: string) => {
    data: ImportJobPayload;
};
export declare const sendImportJobRequest: (request: RequestClient, importJobPayload: {
    data: ImportJobPayload;
}) => Promise<import("@segment/actions-core/src").ModifiedResponse<unknown>>;
export declare function getProfiles(request: RequestClient, emails: string[] | undefined, external_ids: string[] | undefined, phoneNumbers: string[] | undefined): Promise<string[]>;
export declare function formatSubscribeProfile(email: string | undefined, phone_number: string | undefined, consented_at: string | number | undefined, historical_import?: boolean | undefined): SubscribeProfile;
export declare function formatSubscribeRequestBody(profiles: SubscribeProfile | SubscribeProfile[], list_id: string | undefined, custom_source: string | undefined, historical_import?: boolean | undefined): SubscribeEventData;
export declare function formatUnsubscribeRequestBody(profiles: UnsubscribeProfile | UnsubscribeProfile[], list_id: string | undefined): UnsubscribeEventData;
export declare function formatUnsubscribeProfile(email: string | undefined, phone_number: string | undefined): UnsubscribeProfile;
export declare function getList(request: RequestClient, settings: Settings, listId: string): Promise<{
    successMessage: string;
    savedData: {
        id: string;
        name: any;
    };
}>;
export declare function createList(request: RequestClient, settings: Settings, listName: string): Promise<{
    successMessage: string;
    savedData: {
        id: any;
        name: any;
    };
}>;
export declare function validateAndConvertPhoneNumber(phone?: string, countryCode?: string): string | undefined | null;
export declare function processPhoneNumber(initialPhoneNumber?: string, country_code?: string): string | undefined;
export declare function updateMultiStatusWithKlaviyoErrors(payloads: JSONLikeObject[], err: any, multiStatusResponse: MultiStatusResponse, validPayloadIndicesBitmap: number[]): Promise<void>;
export declare function removeBulkProfilesFromList(request: RequestClient, payloads: RemoveProfilePayload[], statsContext?: StatsContext): Promise<MultiStatusResponse>;
export declare function sendBatchedProfileImportJobRequest(request: RequestClient, payloads: AddProfileToListPayload[], statsContext?: StatsContext): Promise<MultiStatusResponse>;
export declare function sendBatchedTrackEvent(request: RequestClient, payloads: TrackEventPayload[]): Promise<MultiStatusResponse>;
export declare function updateMultiStatusWithSuccessData(filteredPayloads: JSONLikeObject[], validPayloadIndicesBitmap: number[], multiStatusResponse: MultiStatusResponse, response: any): void;
export declare function validateProfilePayload(payload: Payload): validateProfilePayloadResult;
