import type { ApiClient } from '../../core/ApiClient'; import { BaseCrudApi } from '../../core/BaseCrudApi'; import type { ListQuery, Paginated } from '../../core/types'; import type { Contact, CountContactsQuery, CountMediaResult, CreateContactPayload, ExistsContactsParams, ExportTemplatePayload, TransferTicketPayload, UpdateContactPayload } from './types'; export declare class ContactsApi extends BaseCrudApi { constructor(client: ApiClient); /** * Downloads a CSV template for importing contacts, with columns based on the service type. * @permissions contacts.view AND contacts.export */ exportTemplate(body: ExportTemplatePayload, headers?: Record): Promise; /** * Returns the total number of contacts matching the given query filters. * @permissions contacts.view */ count(query?: CountContactsQuery, headers?: Record): Promise<{ count: number; }>; /** * Returns the total number of contacts matching the given filters (POST variant for complex queries). * @permissions contacts.view */ countPost(body: CountContactsQuery, headers?: Record): Promise<{ count: number; }>; /** * Returns a paginated list of contacts available for message forwarding. * @permissions contacts.view */ forward(query?: ListQuery, headers?: Record): Promise>; /** * Checks whether contacts exist for the given phone numbers on a specific service. Returns a map of number to boolean. * @permissions contacts.view */ exists(params: ExistsContactsParams, headers?: Record): Promise>; /** * Returns media counts grouped by type (e.g. image, video, document, link) for a contact. * @permissions contacts.view */ countMedia(contactId: string, headers?: Record): Promise; /** * Returns a paginated list of contacts using POST body for advanced filtering. * @permissions contacts.view */ list(body: Record, headers?: Record): Promise>; /** * Opens (or transfers) the contact's ticket to a department, and optionally a user. * This is the real ticket-open flow used by the UI — there is no `POST /tickets`. * @permissions tickets.transfer.all OR tickets.transfer.me */ transferTicket(contactId: string, payload: TransferTicketPayload, headers?: Record): Promise; } //# sourceMappingURL=ContactsApi.d.ts.map