// Type definitions for Google Apps Script 2019-09-11
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
///
///
declare namespace GoogleAppsScript {
export module Contacts {
/**
* Address field in a contact.
*/
export interface AddressField {
deleteAddressField(): void;
getAddress(): string;
getLabel(): Field|ExtendedField|string;
isPrimary(): boolean;
setAddress(address: string): AddressField;
setAsPrimary(): AddressField;
setLabel(field: Field): AddressField;
setLabel(label: string): AddressField;
}
/**
* Company field in a Contact.
*/
export interface CompanyField {
deleteCompanyField(): void;
getCompanyName(): string;
getJobTitle(): string;
isPrimary(): boolean;
setAsPrimary(): CompanyField;
setCompanyName(company: string): CompanyField;
setJobTitle(title: string): CompanyField;
}
/**
* A Contact contains the name, address, and various contact details of a contact.
*/
export interface Contact {
addAddress(label: typeof ContactsApp.Field|string, address: string): AddressField;
addCompany(company: string, title: string): CompanyField;
addCustomField(label: typeof ContactsApp.ExtendedField|string, content: any): CustomField;
addDate(label: typeof ContactsApp.Field|string, month: Base.Month, day: Integer, year: Integer): DateField;
addEmail(label: typeof ContactsApp.Field|string, address: string): EmailField;
addIM(label: typeof ContactsApp.Field|string, address: string): IMField;
addPhone(label: typeof ContactsApp.Field|string, number: string): PhoneField;
addToGroup(group: ContactGroup): Contact;
addUrl(label: typeof ContactsApp.Field|string, url: string): UrlField;
deleteContact(): void;
getAddresses(): AddressField[];
getAddresses(label: typeof ContactsApp.Field|string): AddressField[];
getCompanies(): CompanyField[];
getContactGroups(): ContactGroup[];
getCustomFields(): CustomField[];
getCustomFields(label: typeof ContactsApp.ExtendedField|string): CustomField[];
getDates(): DateField[];
getDates(label: typeof ContactsApp.Field|string): DateField[];
getEmails(): EmailField[];
getEmails(label: typeof ContactsApp.Field|string): EmailField[];
getFamilyName(): string;
getFullName(): string;
getGivenName(): string;
getIMs(): IMField[];
getIMs(label: typeof ContactsApp.Field|string): IMField[];
getId(): string;
getInitials(): string;
getLastUpdated(): Date;
getMaidenName(): string;
getMiddleName(): string;
getNickname(): string;
getNotes(): string;
getPhones(): PhoneField[];
getPhones(label: typeof ContactsApp.Field|string): PhoneField[];
getPrefix(): string;
getPrimaryEmail(): string;
getShortName(): string;
getSuffix(): string;
getUrls(): UrlField[];
getUrls(label: typeof ContactsApp.Field|string): UrlField[];
removeFromGroup(group: ContactGroup): Contact;
setFamilyName(familyName: string): Contact;
setFullName(fullName: string): Contact;
setGivenName(givenName: string): Contact;
setInitials(initials: string): Contact;
setMaidenName(maidenName: string): Contact;
setMiddleName(middleName: string): Contact;
setNickname(nickname: string): Contact;
setNotes(notes: string): Contact;
setPrefix(prefix: string): Contact;
setShortName(shortName: string): Contact;
setSuffix(suffix: string): Contact;
/** @deprecated DO NOT USE */
getEmailAddresses(): string[];
/** @deprecated DO NOT USE */
getHomeAddress(): string;
/** @deprecated DO NOT USE */
getHomeFax(): string;
/** @deprecated DO NOT USE */
getHomePhone(): string;
/** @deprecated DO NOT USE */
getMobilePhone(): string;
/** @deprecated DO NOT USE */
getPager(): string;
/** @deprecated DO NOT USE */
getUserDefinedField(key: string): string;
/** @deprecated DO NOT USE */
getUserDefinedFields(): any;
/** @deprecated DO NOT USE */
getWorkAddress(): string;
/** @deprecated DO NOT USE */
getWorkFax(): string;
/** @deprecated DO NOT USE */
getWorkPhone(): string;
/** @deprecated DO NOT USE */
setHomeAddress(addr: string): void;
/** @deprecated DO NOT USE */
setHomeFax(phone: string): void;
/** @deprecated DO NOT USE */
setHomePhone(phone: string): void;
/** @deprecated DO NOT USE */
setMobilePhone(phone: string): void;
/** @deprecated DO NOT USE */
setPager(phone: string): void;
/** @deprecated DO NOT USE */
setPrimaryEmail(primaryEmail: string): void;
/** @deprecated DO NOT USE */
setUserDefinedField(key: string, value: string): void;
/** @deprecated DO NOT USE */
setUserDefinedFields(o: any): void;
/** @deprecated DO NOT USE */
setWorkAddress(addr: string): void;
/** @deprecated DO NOT USE */
setWorkFax(phone: string): void;
/** @deprecated DO NOT USE */
setWorkPhone(phone: string): void;
}
/**
* A ContactGroup is is a group of contacts.
*/
export interface ContactGroup {
addContact(contact: Contact): ContactGroup;
deleteGroup(): void;
getContacts(): Contact[];
getId(): string;
getName(): string;
isSystemGroup(): boolean;
removeContact(contact: Contact): ContactGroup;
setName(name: string): ContactGroup;
/** @deprecated DO NOT USE */
getGroupName(): string;
/** @deprecated DO NOT USE */
setGroupName(name: string): void;
}
/**
* This class allows users to access their own Google Contacts and create, remove, and update
* contacts listed therein.
*/
export interface ContactsApp {
ExtendedField: typeof ExtendedField;
Field: typeof Field;
Gender: typeof Gender;
Month: typeof Base.Month;
Priority: typeof Priority;
Sensitivity: typeof Sensitivity;
createContact(givenName: string, familyName: string, email: string): Contact;
createContactGroup(name: string): ContactGroup;
deleteContact(contact: Contact): void;
deleteContactGroup(group: ContactGroup): void;
getContact(emailAddress: string): Contact;
getContactById(id: string): Contact;
getContactGroup(name: string): ContactGroup;
getContactGroupById(id: string): ContactGroup;
getContactGroups(): ContactGroup[];
getContacts(): Contact[];
getContactsByAddress(query: string): Contact[];
getContactsByAddress(query: string, label: Field): Contact[];
getContactsByAddress(query: string, label: string): Contact[];
getContactsByCompany(query: string): Contact[];
getContactsByCustomField(query: typeof ContactsApp.ExtendedField|string, label: ExtendedField): Contact[];
getContactsByDate(month: Base.Month, day: Integer, label: Field): Contact[];
getContactsByDate(month: Base.Month, day: Integer, year: Integer, label: Field): Contact[];
getContactsByDate(month: Base.Month, day: Integer, year: Integer, label: string): Contact[];
getContactsByDate(month: Base.Month, day: Integer, label: string): Contact[];
getContactsByEmailAddress(query: string): Contact[];
getContactsByEmailAddress(query: string, label: Field): Contact[];
getContactsByEmailAddress(query: string, label: string): Contact[];
getContactsByGroup(group: ContactGroup): Contact[];
getContactsByIM(query: string): Contact[];
getContactsByIM(query: string, label: Field): Contact[];
getContactsByIM(query: string, label: string): Contact[];
getContactsByJobTitle(query: string): Contact[];
getContactsByName(query: string): Contact[];
getContactsByName(query: string, label: Field): Contact[];
getContactsByNotes(query: string): Contact[];
getContactsByPhone(query: string): Contact[];
getContactsByPhone(query: string, label: Field): Contact[];
getContactsByPhone(query: string, label: string): Contact[];
getContactsByUrl(query: string): Contact[];
getContactsByUrl(query: string, label: Field): Contact[];
getContactsByUrl(query: string, label: string): Contact[];
/** @deprecated DO NOT USE */
findByEmailAddress(email: string): Contact;
/** @deprecated DO NOT USE */
findContactGroup(name: string): ContactGroup;
/** @deprecated DO NOT USE */
getAllContacts(): Contact[];
}
/**
* A custom field in a Contact.
*/
export interface CustomField {
deleteCustomField(): void;
getLabel(): Field|ExtendedField|string;
getValue(): any;
setLabel(field: ExtendedField): CustomField;
setLabel(label: string): CustomField;
setValue(value: any): CustomField;
}
/**
* A date field in a Contact.
*
* This class is only used by the Contacts service, and dates used elsewhere in App Script use
* JavaScript's standard
* Date object.
*/
export interface DateField {
deleteDateField(): void;
getDay(): Integer;
getLabel(): Field|ExtendedField|string;
getMonth(): Base.Month;
getYear(): Integer;
setDate(month: Base.Month, day: Integer): DateField;
setDate(month: Base.Month, day: Integer, year: Integer): DateField;
setLabel(label: Field): DateField;
setLabel(label: string): DateField;
}
/**
* An email field in a Contact.
*/
export interface EmailField {
deleteEmailField(): void;
getAddress(): string;
getDisplayName(): string;
getLabel(): Field|ExtendedField|string;
isPrimary(): boolean;
setAddress(address: string): EmailField;
setAsPrimary(): EmailField;
setDisplayName(name: string): EmailField;
setLabel(field: Field): EmailField;
setLabel(label: string): EmailField;
}
/**
* An enum for extended contacts fields.
*/
export enum ExtendedField { HOBBY, MILEAGE, LANGUAGE, GENDER, BILLING_INFORMATION, DIRECTORY_SERVER, SENSITIVITY, PRIORITY, HOME, WORK, USER, OTHER }
/**
* An enum for contacts fields.
*/
export enum Field { FULL_NAME, GIVEN_NAME, MIDDLE_NAME, FAMILY_NAME, MAIDEN_NAME, NICKNAME, SHORT_NAME, INITIALS, PREFIX, SUFFIX, HOME_EMAIL, WORK_EMAIL, BIRTHDAY, ANNIVERSARY, HOME_ADDRESS, WORK_ADDRESS, ASSISTANT_PHONE, CALLBACK_PHONE, MAIN_PHONE, PAGER, HOME_FAX, WORK_FAX, HOME_PHONE, WORK_PHONE, MOBILE_PHONE, GOOGLE_VOICE, NOTES, GOOGLE_TALK, AIM, YAHOO, SKYPE, QQ, MSN, ICQ, JABBER, BLOG, FTP, PROFILE, HOME_PAGE, WORK_WEBSITE, HOME_WEBSITE, JOB_TITLE, COMPANY }
/**
* An enum for contact gender.
*/
export enum Gender { MALE, FEMALE }
/**
* An instant messaging field in a Contact.
*/
export interface IMField {
deleteIMField(): void;
getAddress(): string;
getLabel(): Field|ExtendedField|string;
isPrimary(): boolean;
setAddress(address: string): IMField;
setAsPrimary(): IMField;
setLabel(field: Field): IMField;
setLabel(label: string): IMField;
}
/**
* A phone number field in a Contact.
*/
export interface PhoneField {
deletePhoneField(): void;
getLabel(): Field|ExtendedField|string;
getPhoneNumber(): string;
isPrimary(): boolean;
setAsPrimary(): PhoneField;
setLabel(field: Field): PhoneField;
setLabel(label: string): PhoneField;
setPhoneNumber(number: string): PhoneField;
}
/**
* An enum for contact priority.
*/
export enum Priority { HIGH, LOW, NORMAL }
/**
* An enum for contact sensitivity.
*/
export enum Sensitivity { CONFIDENTIAL, NORMAL, PERSONAL, PRIVATE }
/**
* A URL field in a Contact.
*/
export interface UrlField {
deleteUrlField(): void;
getAddress(): string;
getLabel(): Field|ExtendedField|string;
isPrimary(): boolean;
setAddress(address: string): UrlField;
setAsPrimary(): UrlField;
setLabel(field: Field): UrlField;
setLabel(label: string): UrlField;
}
}
}
declare var ContactsApp: GoogleAppsScript.Contacts.ContactsApp;