/** Request payload and query parameters for finding or creating a contact. */ interface FindOrCreateContactRequest { contactName: string; companyId: string; email: string; } /** Contact returned by the Contact List API. */ interface ContactResponse { id: string; belongsTo: string; name: string; cpf: string | null; isActive: boolean; avatar: string | null; declinedMarketing: boolean; customField: Record; deletedAt: string | null; createdAt: string; updatedAt: string; categoryId: string | null; organizationId: string | null; } /** Query parameters for searching contact phones. */ interface GetContactPhonesParams { limit: number; offset: number; companyId: string; orderBy?: string; filter?: string; associations?: string[]; campaigns?: { isActive: boolean; }; excluding?: string[]; } /** Contact phone entity returned by the Contact List API. */ interface ContactPhoneResponse { id: number; contactId: string; number: string; ddi: string; declinedMarketing: boolean; contact: { name: string; avatar: string; category: { id: string; name: string; } | null; organization: { name: string; } | null; campaigns: { campaignId: string; }[]; }; } /** Paginated response returned by the Contact List API for phone search. */ interface ContactPhoneSearchResponse { phones: ContactPhoneResponse[]; } /** Contact category entity returned by the Contact List API. */ interface ContactCategoryResponse { id: string; name: string; } export type { ContactCategoryResponse, ContactPhoneResponse, ContactPhoneSearchResponse, ContactResponse, FindOrCreateContactRequest, GetContactPhonesParams };