export interface IContactPhoneNumber { number?: string; usage?: string; public?: boolean; } export interface IContactType { qcode?: string; name?: string; assignable?: boolean; } export interface IContact { _id: string; is_active?: boolean; public?: boolean; organisation?: string; first_name?: string; last_name?: string; honorific?: string; job_title?: string; mobile?: Array; contact_phone?: Array; fax?: Array; contact_email?: Array; twitter?: string; facebook?: string; instagram?: string; website?: string; contact_address?: Array; locality?: string; city?: string; contact_state?: { name?: string, qcode?: string, }; postcode?: string; country?: { name?: string, qcode?: string, }; notes?: string; contact_type?: string; } export interface IContactsService { getCriteria(param: any): { max_results: number, sort: string, page: number, all: boolean, q?: string, default_operator?: string, filter?: string, }; query(param: any): Promise<{_items: Array}>; queryField(field: string, text: string): Promise<{_items: Array}>; toggleStatus(contact: IContact, active: boolean): Promise; togglePublic(contact: IContact, isPublic: boolean): Promise; save(contact: IContact, updates: IContact): Promise; convertForClient(contact: IContact): IContact; sortOptions: Array<{ field: string; label: string; defaultDir: string; }>; twitterPattern: string; privacyOptions: Array<{ name: string; value: string; }>; statusOptions: Array<{ name: string; value: string; }>; }