///
import type { RequestOptions } from 'https';
import Request, { BearerAuth, RequestData } from './request';
import { Region } from './regions';
import { SendEmailRequest, SendPushRequest, SendSMSRequest, SendInboxMessageRequest } from './api/requests';
import { Filter, IdentifierType } from './types';
type APIDefaults = RequestOptions & {
region: Region;
url?: string;
};
type Recipients = Record;
export declare enum DeliveryExportMetric {
Created = "created",
Attempted = "attempted",
Sent = "sent",
Delivered = "delivered",
Opened = "opened",
Clicked = "clicked",
Converted = "converted",
Bounced = "bounced",
Spammed = "spammed",
Unsubscribed = "unsubscribed",
Dropped = "dropped",
Failed = "failed",
Undeliverable = "undeliverable"
}
export type DeliveryExportRequestOptions = {
start?: number;
end?: number;
attributes?: string[];
metric?: DeliveryExportMetric;
drafts?: boolean;
};
export declare class APIClient {
appKey: BearerAuth;
defaults: APIDefaults;
request: Request;
apiRoot: string;
constructor(appKey: BearerAuth, defaults?: Partial);
sendEmail(req: SendEmailRequest): Promise>;
sendPush(req: SendPushRequest): Promise>;
sendSMS(req: SendSMSRequest): Promise>;
sendInboxMessage(req: SendInboxMessageRequest): Promise>;
getCustomersByEmail(email: string): Promise>;
triggerBroadcast(id: string | number, data: RequestData, recipients: Recipients): Promise>;
listExports(): Promise>;
getExport(id: string | number): Promise>;
downloadExport(id: string | number): Promise>;
createCustomersExport(filters: Filter): Promise>;
createDeliveriesExport(newsletterId: number, options?: DeliveryExportRequestOptions): Promise>;
getAttributes(id: string | number, idType?: IdentifierType): Promise>;
}
export { SendEmailRequest, SendPushRequest, SendSMSRequest, SendInboxMessageRequest } from './api/requests';