export interface DynamicFieldResponse { choices: Array<{ value: number; label: string; }>; nextPage?: string; error?: { message: string; code: string; }; } export interface List { id: number; name: string; status: string; } export interface Campaign { id: number; name: string; } export interface sendCampaignPayload { campaignID: number; contactIDs: [number]; sendDate?: string | number | undefined; } export interface DataField { name: string; type: 'String' | 'Numeric' | 'Date' | 'Boolean'; visibility: string; defaultValue: string | null; } export interface Identifiers { email?: string; mobileNumber?: string; } export interface DataFields { [key: string]: string | number | boolean | null; } export interface ResubscribeOptions { resubscribeWithNoChallenge?: boolean; preferredLocale?: string; redirectUrlAfterChallenge?: string; } export interface ChannelProperties { email?: { status?: string; emailType?: string; optInType?: string; resubscribeOptions?: ResubscribeOptions; }; sms?: { status: string; }; } interface ConsentRecord { text: string; dateTimeConsented: string; url: string; ipAddress: string; userAgent: string; } export interface Contact { contactId: number; status: string; created: string; updated: string; identifiers: Identifiers; dataFields: DataFields; channelProperties: ChannelProperties; lists: List[]; consentRecords: ConsentRecord[]; } export declare enum ProgramStatus { Active = "Active", Draft = "Draft", Deactivated = "Deactivated" } export interface Program { id: number; name: string; status: ProgramStatus; dateCreated: string; } export interface ProgramEnrolment { id: string; programId: number; status: string; dateCreated: string; contacts: null | unknown; addressBooks: null | unknown; } export interface ProgramEnrolementJSON { contacts: number[]; programId: string; } export type ChannelIdentifier = { email: string; 'mobileNumber'?: never; } | { 'mobileNumber': string; email?: never; }; export interface UpsertContactJSON { identifiers: Identifiers; channelProperties: ChannelProperties; lists?: number[]; dataFields?: DataFields; } export interface CpaasMessageBody { to: { phoneNumber: string; }; body: string; rules: string[]; channelOptions?: { sms: { from?: string; allowUnicode?: boolean; }; }; shortenLinks?: string; } export {};