import { ApplicationContactGroupId, ApplicationContactId, ApplicationCustomFieldId, ApplicationInboxId, ApplicationTeammateId } from './idTypesV2'; export interface ApplicationContact { /** Unique ID of the Contact. */ id: ApplicationContactId; /** Name of the contact. */ name: string | undefined; /** Description of the contact. */ description: string | undefined; /** List of the contact's handles. */ handles: ReadonlyArray; /** List of groups the contact belongs to. */ groupIds: ReadonlyArray; /** List of the contact's custom attributes. */ customAttributes: ReadonlyArray; } export type ApplicationContactHandleType = 'email' | 'phone' | 'twitter' | 'custom' | 'facebook' | 'intercom' | 'smooch' | 'frontChat' | 'frontCompanion' | 'whatsapp' | 'googlePlay'; interface ApplicationContactHandle { /** Type of the handle. */ type: ApplicationContactHandleType; /** Handle used to exchange messages with the contact. */ handle: string; } interface ApplicationCustomFieldTypeMap { string: string; enum: string; datetime: Date; boolean: boolean; number: number; teammateId: ApplicationTeammateId; inboxId: ApplicationInboxId; unknown: string; } interface ApplicationCustomAttributeBase { id: ApplicationCustomFieldId; name: string; type: T; value: ApplicationCustomFieldTypeMap[T]; } export type ApplicationCustomAttribute = ApplicationCustomAttributeBase<'string'> | ApplicationCustomAttributeBase<'enum'> | ApplicationCustomAttributeBase<'datetime'> | ApplicationCustomAttributeBase<'boolean'> | ApplicationCustomAttributeBase<'number'> | ApplicationCustomAttributeBase<'teammateId'> | ApplicationCustomAttributeBase<'inboxId'> | ApplicationCustomAttributeBase<'unknown'>; export {};