import { type ApiClientInterface, BaseService, type CommonErrors, type Options, type Payload, type ServiceDependencies } from "../../api/base-service"; import { type CreateSubscriptionsPayload, type CreateSubscriptionsResponse, type LoginEmailPayload, type Newsletter, type NewsletterErrorResponse, type NewsletterSubscription, type NewslettersResponse, type ResendDoiPayload, type UpdateSubscriptionPayload } from "./schemas"; export type { AdditionalFields, CreateSubscriptionsPayload, CreateSubscriptionsResponse, LoginEmailPayload, Newsletter, NewsletterErrorResponse, NewsletterSubscription, NewsletterSubscriptionError, NewslettersResponse, Preference, PreferenceGroup, ResendDoiPayload, UpdateSubscriptionPayload, } from "./schemas"; export type NewsletterOptions = { preferenceToken: string; }; export type NewsletterCreateArgs = Payload & Options; export type NewsletterListArgs = Options; export type NewsletterGetArgs = { internalName: string; } & Options; export type NewsletterUpdateArgs = { internalName: string; } & Payload & Options; export type NewsletterDeleteArgs = { internalName: string; } & Options; export type NewsletterResendDoiArgs = { internalName: string; } & Payload & Options; export type NewsletterSendLoginEmailArgs = Payload; export type NewsletterGetByNameArgs = { internalName: string; }; export type NewsletterCaptchaErrors = ["captcha_token_missing", NewsletterErrorResponse] | ["captcha_verification_failed", NewsletterErrorResponse] | ["captcha_score_too_low", NewsletterErrorResponse]; export type NewsletterCreateResult = CommonErrors | NewsletterCaptchaErrors | ["rate_limit_exceeded", NewsletterErrorResponse] | ["unauthorized", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | ["newsletter_error", CreateSubscriptionsResponse] | [null, CreateSubscriptionsResponse]; export type NewsletterListResult = CommonErrors | ["unauthorized", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | [null, NewsletterSubscription[]]; export type NewsletterGetResult = CommonErrors | ["not_found", NewsletterErrorResponse] | ["unauthorized", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | [null, NewsletterSubscription]; export type NewsletterUpdateResult = CommonErrors | ["not_found", NewsletterErrorResponse] | ["unauthorized", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | [null, NewsletterSubscription]; export type NewsletterDeleteResult = CommonErrors | ["not_found", NewsletterErrorResponse] | ["unauthorized", NewsletterErrorResponse] | ["unprocessable_entity", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | [null, { new_preference_token: string; } | null]; export type NewsletterResendDoiResult = CommonErrors | ["not_found", NewsletterErrorResponse] | ["unauthorized", NewsletterErrorResponse] | ["already_confirmed", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | [null, null]; export type NewsletterSendLoginEmailResult = CommonErrors | ["rate_limit_exceeded", NewsletterErrorResponse] | ["not_found", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | [null, null]; export type NewsletterListAllResult = CommonErrors | ["server_error", null] | [null, NewslettersResponse]; export type NewsletterGetByNameResult = CommonErrors | ["not_found", NewsletterErrorResponse] | ["server_error", NewsletterErrorResponse] | [null, Newsletter]; export declare class NewsletterService extends BaseService { constructor(client: ApiClientInterface, deps?: ServiceDependencies); private buildNewsletterAuthHeaders; /** * Create newsletter subscriptions for a user */ create(args: NewsletterCreateArgs): Promise; /** * List all subscriptions for the authenticated user */ list(args?: NewsletterListArgs): Promise; /** * Get a specific subscription by newsletter internal name */ get(args: NewsletterGetArgs): Promise; /** * Update a subscription's preferences */ update(args: NewsletterUpdateArgs): Promise; /** * Delete a subscription */ delete(args: NewsletterDeleteArgs): Promise; /** * Resend double opt-in confirmation email */ resendDoi(args: NewsletterResendDoiArgs): Promise; /** * Send a login email for newsletter management */ sendLoginEmail(args: NewsletterSendLoginEmailArgs): Promise; /** * List all available newsletters */ listAll(): Promise; /** * Get a newsletter by its internal name */ getByName(args: NewsletterGetByNameArgs): Promise; }