import type { DeferredJobsApiClient } from '../../api'; import type { Campaign, Contact, ContactsScope, EmailRecipient } from '../../types'; import { Query } from '../../types'; import type { RecipientsOperationResponse } from '../Campaigns'; import type { ContactViewsSelector, EmailsSelector, ListOptions, ListResponse, SearchOptions, TagsSelector } from './types'; type CampaignId = Campaign['id']; type ContactId = Contact['id']; type EmailRecipientId = EmailRecipient['id']; export type Client = ReturnType; export declare function createClient(api: DeferredJobsApiClient): { list: (campaignId: CampaignId, options: ListOptions) => Promise; search: (campaignId: CampaignId, options: SearchOptions) => Promise; get: (campaignId: CampaignId, recipientId: EmailRecipientId) => Promise; addContact: (campaignId: CampaignId, contact: { id: ContactId; emailAddress?: string; }) => Promise; addContacts: (campaignId: CampaignId, contacts: { query?: Query; scope?: ContactsScope; }) => Promise; addByTags: (campaignId: CampaignId, tags: TagsSelector) => Promise; addFromPreviousCampaigns: (campaignId: CampaignId, previousCampaigns: CampaignId[]) => Promise; addFromContactViews: (campaignId: CampaignId, contactViews: ContactViewsSelector) => Promise; addByEmails: (campaignId: CampaignId, emails: EmailsSelector) => Promise; applyAudienceSelection: (campaignId: CampaignId) => Promise; patchAudienceSelection: (campaignId: CampaignId, patch: Campaign.AudienceSelectionData) => Promise; removeRecipient: (campaignId: CampaignId, recipientId: EmailRecipientId) => Promise; removeRecipients: (campaignId: CampaignId, params?: { query: Query; }) => Promise; }; export {};