customerio-node
Version:
A node client for the Customer.io event API. http://customer.io
100 lines (99 loc) • 3.46 kB
TypeScript
export type Identifiers = {
id: string | number;
} | {
email: string;
};
export type SendEmailRequestRequiredOptions = {
to: string;
identifiers: Identifiers;
};
export type SendEmailRequestOptionalOptions = Partial<{
message_data: Record<string, any>;
headers: Record<string, any>;
preheader: string;
reply_to: string;
bcc: string;
body_plain: string;
body_amp: string;
fake_bcc: boolean;
disable_message_retention: boolean;
send_to_unsubscribed: boolean;
tracked: boolean;
queue_draft: boolean;
send_at: number;
disable_css_preprocessing: boolean;
language: string;
}>;
export type SendEmailRequestWithTemplate = SendEmailRequestRequiredOptions & SendEmailRequestOptionalOptions & {
transactional_message_id: string | number;
};
export type SendEmailRequestWithoutTemplate = SendEmailRequestRequiredOptions & SendEmailRequestOptionalOptions & {
body: string;
subject: string;
from: string;
};
export type SendEmailRequestOptions = SendEmailRequestWithTemplate | SendEmailRequestWithoutTemplate;
export type EmailMessage = Partial<SendEmailRequestWithTemplate & SendEmailRequestWithoutTemplate> & {
attachments: Record<string, string>;
};
export declare class SendEmailRequest {
message: EmailMessage;
constructor(opts: SendEmailRequestOptions);
attach(name: string, data: any, { encode }?: {
encode?: boolean | undefined;
}): void;
}
export type SendPushCustomPayload = {
ios: Record<string, any>;
android: Record<string, any>;
};
export type SendPushRequestRequiredOptions = {
identifiers: Identifiers;
transactional_message_id: string | number;
};
export type SendPushRequestOptionalOptions = Partial<{
to: string;
title: string;
message: string;
disable_message_retention: boolean;
send_to_unsubscribed: boolean;
queue_draft: boolean;
message_data: Record<string, any>;
send_at: number;
language: string;
image_url: string;
link: string;
sound: string;
custom_data: Record<string, string>;
device: Record<string, any>;
custom_device: Record<string, any>;
}>;
export type SendPushRequestWithoutCustomPayload = SendPushRequestRequiredOptions & SendPushRequestOptionalOptions & {};
export type SendPushRequestWithCustomPayload = SendPushRequestRequiredOptions & SendPushRequestOptionalOptions & {
custom_payload: SendPushCustomPayload;
};
export type SendPushRequestOptions = SendPushRequestWithoutCustomPayload | SendPushRequestWithCustomPayload;
export type PushMessage = Partial<Omit<SendPushRequestWithoutCustomPayload, 'device'> & Omit<SendPushRequestWithCustomPayload, 'device'>>;
export declare class SendPushRequest {
message: PushMessage;
constructor(opts: SendPushRequestOptions);
}
export type SMSMessage = Partial<SendSMSRequestOptions>;
export type SendSMSRequestRequiredOptions = {
identifiers: Identifiers;
transactional_message_id: string | number;
};
export type SendSMSRequestOptionalOptions = Partial<{
to: string;
disable_message_retention: boolean;
send_to_unsubscribed: boolean;
queue_draft: boolean;
message_data: Record<string, any>;
send_at: number;
language: string;
}>;
export type SendSMSRequestOptions = SendSMSRequestRequiredOptions & SendSMSRequestOptionalOptions & {};
export declare class SendSMSRequest {
message: SMSMessage;
constructor(opts: SendSMSRequestOptions);
}