import { ExtId, MessageSendPerformer, OperationContext, ResponseError, Profile } from '@segment/actions-shared';
import type { Settings } from '../generated-types';
import type { Payload } from './generated-types';
import { Liquid as LiquidJs } from 'liquidjs';
import { ModifiedResponse } from '@segment/actions-core';
import { ApiLookupConfig, apiLookupLiquidKey } from '../previewApiLookup/apiLookups';
export declare const EXTERNAL_ID_KEY = "email";
export declare const Liquid: LiquidJs;
export declare class SendEmailPerformer extends MessageSendPerformer<Settings, Payload> {
    getIntegrationStatsName(): string;
    getChannelType(): string;
    getDefaultSettingsRegion(): string;
    isSupportedExternalId(externalId: ExtId<Payload>): boolean;
    isExternalIdSubscribed(extId: ExtId<Payload>): boolean | undefined;
    getRecepients(): ExtId<Payload>[];
    parseTemplating(content: string, liquidData: {
        profile: Profile;
        [apiLookupLiquidKey]?: Record<string, unknown>;
    }, contentType: string): Promise<any>;
    sendToRecepient(emailProfile: ExtId<Payload>): Promise<ModifiedResponse<unknown> | undefined>;
    getBodyTemplateFromS3(bodyUrl: string): Promise<string>;
    getBodyHtml(profile: Profile, apiLookupData: Record<string, unknown>, emailProfile: {
        id?: string | undefined;
        type?: string | undefined;
        subscriptionStatus?: string | undefined;
        unsubscribeLink?: string | undefined;
        preferencesLink?: string | undefined;
        groups?: {
            id?: string | undefined;
            isSubscribed?: boolean | undefined;
            groupUnsubscribeLink?: string | undefined;
        }[] | undefined;
    }): Promise<string>;
    generateEmailHtml(design: string): Promise<string>;
    performApiLookups(this: SendEmailPerformer, apiLookups: ApiLookupConfig[] | undefined, profile: Profile): Promise<Record<string, unknown>>;
    validateLinkAndLog(link: string): void;
    insertUnsubscribeLinks(html: string, emailProfile: EmailProfile): string;
    onResponse(args: {
        response?: Response;
        error?: ResponseError;
        operation: OperationContext;
    }): void;
}
export type EmailProfile = ExtId<Payload>;
