///
///
declare namespace GoogleAppsScript {
namespace Contacts {
/**
* Address field in a contact.
*/
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.
*/
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.
*/
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(): Base.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(): object;
/** @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: object): 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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
enum ExtendedField {
HOBBY,
MILEAGE,
LANGUAGE,
GENDER,
BILLING_INFORMATION,
DIRECTORY_SERVER,
SENSITIVITY,
PRIORITY,
HOME,
WORK,
USER,
OTHER,
}
/**
* An enum for contacts fields.
*/
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.
*/
enum Gender {
MALE,
FEMALE,
}
/**
* An instant messaging field in a Contact.
*/
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.
*/
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.
*/
enum Priority {
HIGH,
LOW,
NORMAL,
}
/**
* An enum for contact sensitivity.
*/
enum Sensitivity {
CONFIDENTIAL,
NORMAL,
PERSONAL,
PRIVATE,
}
/**
* A URL field in a Contact.
*/
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;