|
4 | 4 | * HTTP client for communicating with NetSendo REST API v1 |
5 | 5 | */ |
6 | 6 | import type { Config } from './config.js'; |
7 | | -import type { Subscriber, SubscriberCreateInput, SubscriberUpdateInput, ContactList, Tag, EmailSendInput, EmailStatus, Mailbox, SmsSendInput, SmsStatus, SmsProvider, CustomField, PaginatedResponse } from './types.js'; |
| 7 | +import type { Subscriber, SubscriberCreateInput, SubscriberUpdateInput, ContactList, Tag, EmailSendInput, EmailStatus, Mailbox, SmsSendInput, SmsStatus, SmsProvider, CustomField, PaginatedResponse, Message, MessageCreateInput, MessageUpdateInput, MessageStats, AbTest, AbTestCreateInput, AbTestVariant, AbTestVariantInput, AbTestVariantResult, Funnel, FunnelCreateInput, FunnelStep, FunnelStepInput, FunnelStats } from './types.js'; |
8 | 8 | export declare class NetSendoApiError extends Error { |
9 | 9 | statusCode: number; |
10 | 10 | errors?: Record<string, string[]> | undefined; |
@@ -51,6 +51,95 @@ export declare class NetSendoApiClient { |
51 | 51 | }>; |
52 | 52 | getSmsStatus(id: string): Promise<SmsStatus>; |
53 | 53 | listSmsProviders(): Promise<SmsProvider[]>; |
| 54 | + listMessages(params?: { |
| 55 | + page?: number; |
| 56 | + per_page?: number; |
| 57 | + channel?: 'email' | 'sms'; |
| 58 | + type?: 'broadcast' | 'autoresponder'; |
| 59 | + status?: string; |
| 60 | + search?: string; |
| 61 | + }): Promise<PaginatedResponse<Message>>; |
| 62 | + getMessage(id: number): Promise<Message>; |
| 63 | + createMessage(data: MessageCreateInput): Promise<Message>; |
| 64 | + updateMessage(id: number, data: MessageUpdateInput): Promise<Message>; |
| 65 | + deleteMessage(id: number): Promise<void>; |
| 66 | + setMessageLists(id: number, contactListIds: number[]): Promise<{ |
| 67 | + message: Message; |
| 68 | + planned_recipients: number; |
| 69 | + }>; |
| 70 | + setMessageExclusions(id: number, excludedListIds: number[]): Promise<{ |
| 71 | + message: Message; |
| 72 | + planned_recipients: number; |
| 73 | + }>; |
| 74 | + scheduleMessage(id: number, scheduledAt: string): Promise<Message>; |
| 75 | + sendMessage(id: number): Promise<{ |
| 76 | + message: Message; |
| 77 | + recipients_added?: number; |
| 78 | + }>; |
| 79 | + getMessageStats(id: number): Promise<MessageStats>; |
| 80 | + listAbTests(params?: { |
| 81 | + page?: number; |
| 82 | + per_page?: number; |
| 83 | + status?: string; |
| 84 | + message_id?: number; |
| 85 | + }): Promise<PaginatedResponse<AbTest>>; |
| 86 | + getAbTest(id: number): Promise<AbTest>; |
| 87 | + createAbTest(data: AbTestCreateInput): Promise<AbTest>; |
| 88 | + addAbTestVariant(testId: number, data: AbTestVariantInput): Promise<AbTestVariant>; |
| 89 | + startAbTest(id: number): Promise<{ |
| 90 | + test: AbTest; |
| 91 | + ends_at: string; |
| 92 | + }>; |
| 93 | + endAbTest(id: number, winnerVariantId?: number): Promise<{ |
| 94 | + test: AbTest; |
| 95 | + winner: { |
| 96 | + variant_letter: string; |
| 97 | + id: number; |
| 98 | + } | null; |
| 99 | + }>; |
| 100 | + getAbTestResults(id: number): Promise<{ |
| 101 | + test_id: number; |
| 102 | + name: string; |
| 103 | + status: string; |
| 104 | + test_type: string; |
| 105 | + winning_metric: string; |
| 106 | + test_started_at: string | null; |
| 107 | + test_ended_at: string | null; |
| 108 | + winner: { |
| 109 | + variant_letter: string; |
| 110 | + id: number; |
| 111 | + } | null; |
| 112 | + results: Record<string, AbTestVariantResult>; |
| 113 | + }>; |
| 114 | + deleteAbTest(id: number): Promise<void>; |
| 115 | + listFunnels(params?: { |
| 116 | + page?: number; |
| 117 | + per_page?: number; |
| 118 | + status?: string; |
| 119 | + trigger_type?: string; |
| 120 | + search?: string; |
| 121 | + }): Promise<PaginatedResponse<Funnel>>; |
| 122 | + getFunnel(id: number): Promise<Funnel & { |
| 123 | + stats: FunnelStats; |
| 124 | + }>; |
| 125 | + createFunnel(data: FunnelCreateInput): Promise<Funnel>; |
| 126 | + updateFunnel(id: number, data: Partial<FunnelCreateInput>): Promise<Funnel>; |
| 127 | + addFunnelStep(funnelId: number, data: FunnelStepInput): Promise<FunnelStep>; |
| 128 | + activateFunnel(id: number): Promise<Funnel>; |
| 129 | + pauseFunnel(id: number): Promise<Funnel>; |
| 130 | + getFunnelStats(id: number): Promise<{ |
| 131 | + id: number; |
| 132 | + name: string; |
| 133 | + status: string; |
| 134 | + stats: FunnelStats; |
| 135 | + trigger: { |
| 136 | + type: string; |
| 137 | + list?: string; |
| 138 | + form?: string; |
| 139 | + tag?: string; |
| 140 | + }; |
| 141 | + }>; |
| 142 | + deleteFunnel(id: number): Promise<void>; |
54 | 143 | getAccountInfo(): Promise<{ |
55 | 144 | name: string; |
56 | 145 | email: string; |
|
0 commit comments