import { APIResource } from "../core/resource.js"; import * as SubscribersAPI from "./subscribers.js"; import { APIPromise } from "../core/api-promise.js"; import { RequestOptions } from "../internal/request-options.js"; export declare class Subscribers extends APIResource { /** * Create a new subscriber */ create(body: SubscriberCreateParams, options?: RequestOptions): APIPromise; /** * Get a specific subscriber */ retrieve(id: number, options?: RequestOptions): APIPromise; /** * Update a subscriber */ update(id: number, body: SubscriberUpdateParams, options?: RequestOptions): APIPromise; /** * Get all subscribers */ list(query?: SubscriberListParams | null | undefined, options?: RequestOptions): APIPromise; /** * Delete a subscriber */ delete(id: number, options?: RequestOptions): APIPromise; /** * Bulk update subscriber lists */ bulkUpdateLists(body: SubscriberBulkUpdateListsParams, options?: RequestOptions): APIPromise; } export interface Subscriber { id?: number; attribs?: unknown; created_at?: string; email?: string; lists?: Array; name?: string; status?: 'enabled' | 'disabled' | 'blocklisted'; updated_at?: string; uuid?: string; } export declare namespace Subscriber { interface List { id?: number; name?: string; subscription_status?: 'confirmed' | 'unconfirmed' | 'unsubscribed'; uuid?: string; } } export interface SubscriberInput { email: string; attribs?: unknown; lists?: Array; name?: string; preconfirm_subscriptions?: boolean; status?: 'enabled' | 'disabled' | 'blocklisted'; } export interface SubscriberCreateResponse { data?: Subscriber; } export interface SubscriberRetrieveResponse { data?: Subscriber; } export interface SubscriberListResponse { data?: SubscriberListResponse.Data; } export declare namespace SubscriberListResponse { interface Data { page?: number; per_page?: number; results?: Array; total?: number; } } export interface SubscriberCreateParams { email: string; attribs?: unknown; lists?: Array; name?: string; preconfirm_subscriptions?: boolean; status?: 'enabled' | 'disabled' | 'blocklisted'; } export interface SubscriberUpdateParams { email: string; attribs?: unknown; lists?: Array; name?: string; preconfirm_subscriptions?: boolean; status?: 'enabled' | 'disabled' | 'blocklisted'; } export interface SubscriberListParams { /** * Filter by list ID */ list_id?: number; page?: number; per_page?: number; /** * Search query (searches name and email) */ query?: string; /** * Filter by subscription status */ status?: 'enabled' | 'disabled' | 'blocklisted'; } export interface SubscriberBulkUpdateListsParams { /** * Action to perform */ action?: 'add' | 'remove' | 'unsubscribe'; /** * Subscriber IDs */ ids?: Array; status?: 'confirmed' | 'unconfirmed' | 'unsubscribed'; /** * Target list IDs */ target_list_ids?: Array; } export declare namespace Subscribers { export { type Subscriber as Subscriber, type SubscriberInput as SubscriberInput, type SubscriberCreateResponse as SubscriberCreateResponse, type SubscriberRetrieveResponse as SubscriberRetrieveResponse, type SubscriberListResponse as SubscriberListResponse, type SubscriberCreateParams as SubscriberCreateParams, type SubscriberUpdateParams as SubscriberUpdateParams, type SubscriberListParams as SubscriberListParams, type SubscriberBulkUpdateListsParams as SubscriberBulkUpdateListsParams, }; } //# sourceMappingURL=subscribers.d.ts.map