From 3d4881b0799d1b2fabcebd8afbf0e50f450c6387 Mon Sep 17 00:00:00 2001 From: Darren Hill Date: Wed, 23 Dec 2015 11:25:30 -0500 Subject: [PATCH] Added Definitions for jSuite and SuiteScript --- jsuite/jsuite.d.ts | 42 + suitescript/suitescript.d.ts | 6625 ++++++++++++++++++++++++++++++++++ 2 files changed, 6667 insertions(+) create mode 100644 jsuite/jsuite.d.ts create mode 100644 suitescript/suitescript.d.ts diff --git a/jsuite/jsuite.d.ts b/jsuite/jsuite.d.ts new file mode 100644 index 0000000000..2d32c88e68 --- /dev/null +++ b/jsuite/jsuite.d.ts @@ -0,0 +1,42 @@ +// Type definitions for jSuite +// Project: https://github.com/darrenthill/jsuite +// Definitions by: Darren Hill +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// + +interface Iconfig { + logging?: boolean; + smartConvert?: boolean; + searchId?: string; + recordType?: string; + filterExpression?: any; + columns?: string; + start?: number; + end?: number; + maxUnitsUsage?: number; +} +declare module jSuite { + function getVersion(): string; + function setLogging(toggle: boolean): void; + function getRoleCenter(): any; + function getUser(): any; + function getScriptParameter(paramName: string): any; + function getDeploymentId(): any; + function getScriptId(): any; + function isProduction(): any; + function clearSublist(transaction: nlobjRecord, listType: string): void; + function getCompanyPreference(paramName: string): any; + function roundNum(num: number, length: number): number; + function isNumber(n: any): boolean; + function runSearch(config?: Iconfig): any; + function lookupField(dataIn: any): string; + function submitField(dataIn: any): any; + function asyncLookupField(config: any, callback: any): void; + function asyncSubmitField(config: any): JQueryXHR; + function audit(title: string, message: string): void; + function debug(title: string, message: string): void; + function error(title: string, message: string): void; + function emergency(title: string, message: string): void; +} diff --git a/suitescript/suitescript.d.ts b/suitescript/suitescript.d.ts new file mode 100644 index 0000000000..3fee0a8785 --- /dev/null +++ b/suitescript/suitescript.d.ts @@ -0,0 +1,6625 @@ +// Type definitions for Suite Script +// Project: http://www.netsuite.com +// Definitions by: Darren Hill +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare namespace nlobjRecord.prototype { + // nlobjRecord.prototype.getSubList.!ret + + /** + * + */ + interface GetSubListRet { + + /** + * + */ + prototype : { + + /** + * + */ + addButton : /*no type*/{}; + + /** + * + */ + setLabel : /* nlobjSubList.prototype.setLabel */ any; + + /** + * + */ + setHelpText : /* nlobjSubList.prototype.setHelpText */ any; + + /** + * + */ + setDisplayType : /* nlobjSubList.prototype.setDisplayType */ any; + + /** + * + */ + setLineItemValue : /* nlobjSubList.prototype.setLineItemValue */ any; + + /** + * + */ + setLineItemMatrixValue : /* nlobjSubList.prototype.setLineItemMatrixValue */ any; + + /** + * + */ + setLineItemValues : /* nlobjSubList.prototype.setLineItemValues */ any; + + /** + * + */ + getLineItemCount : /* nlobjSubList.prototype.getLineItemCount */ any; + + /** + * + */ + addField : /* nlobjSubList.prototype.addField */ any; + + /** + * + */ + setUniqueField : /* nlobjSubList.prototype.setUniqueField */ any; + + /** + * + */ + addRefreshButton : /* nlobjSubList.prototype.addRefreshButton */ any; + + /** + * + */ + addMarkAllButtons : /* nlobjSubList.prototype.addMarkAllButtons */ any; + } + } +} +declare namespace nlobjRecord.prototype.GetSubListRet.prototype { + // nlobjRecord.prototype.getSubList.!ret.prototype.addButton.!ret + + /** + * + */ + interface AddButtonRet { + + /** + * + */ + prototype : { + + /** + * + */ + setLabel : /* nlobjButton.prototype.setLabel */ any; + + /** + * + */ + setDisabled : /* nlobjButton.prototype.setDisabled */ any; + } + } +} +declare namespace nlobjRecord.prototype { + // nlobjRecord.prototype.getField.!ret + + /** + * + */ + interface GetFieldRet { + + /** + * + */ + prototype : { + + /** + * + */ + getName : /* nlobjField.prototype.getName */ any; + + /** + * + */ + getLabel : /* nlobjField.prototype.getLabel */ any; + + /** + * + */ + getType : /* nlobjField.prototype.getType */ any; + + /** + * + */ + isHidden : /* nlobjField.prototype.isHidden */ any; + + /** + * + */ + isMandatory : /* nlobjField.prototype.isMandatory */ any; + + /** + * + */ + isDisabled : /* nlobjField.prototype.isDisabled */ any; + + /** + * + */ + setLabel : /* nlobjField.prototype.setLabel */ any; + + /** + * + */ + setAlias : /* nlobjField.prototype.setAlias */ any; + + /** + * + */ + setDefaultValue : /* nlobjField.prototype.setDefaultValue */ any; + + /** + * + */ + setDisabled : /* nlobjField.prototype.setDisabled */ any; + + /** + * + */ + setMandatory : /* nlobjField.prototype.setMandatory */ any; + + /** + * + */ + setMaxLength : /* nlobjField.prototype.setMaxLength */ any; + + /** + * + */ + setDisplayType : /* nlobjField.prototype.setDisplayType */ any; + + /** + * + */ + setBreakType : /* nlobjField.prototype.setBreakType */ any; + + /** + * + */ + setLayoutType : /* nlobjField.prototype.setLayoutType */ any; + + /** + * + */ + setLinkText : /* nlobjField.prototype.setLinkText */ any; + + /** + * + */ + setDisplaySize : /* nlobjField.prototype.setDisplaySize */ any; + + /** + * + */ + setPadding : /* nlobjField.prototype.setPadding */ any; + + /** + * + */ + setHelpText : /* nlobjField.prototype.setHelpText */ any; + + /** + * + */ + addSelectOption : /* nlobjField.prototype.addSelectOption */ any; + } + } +} +declare namespace nlobjPortlet.prototype { + // nlobjPortlet.prototype.addEditColumn.!0 + + /** + * + */ + interface AddEditColumn0 { + + /** + * + */ + prototype : { + + /** + * + */ + setLabel : /* nlobjColumn.prototype.setLabel */ any; + + /** + * + */ + setURL : /* nlobjColumn.prototype.setURL */ any; + + /** + * + */ + addParamToURL : /* nlobjColumn.prototype.addParamToURL */ any; + } + } +} +declare namespace nlobjForm.prototype { + // nlobjForm.prototype.addTab.!ret + + /** + * + */ + interface AddTabRet { + + /** + * + */ + prototype : { + + /** + * + */ + setLabel : /* nlobjTab.prototype.setLabel */ any; + + /** + * + */ + setHelpText : /* nlobjTab.prototype.setHelpText */ any; + } + } +} +declare namespace nlobjAssistant.prototype { + // nlobjAssistant.prototype.setCurrentStep.!0 + + /** + * + */ + interface SetCurrentStep0 { + + /** + * + */ + prototype : { + + /** + * + */ + setLabel : /* nlobjAssistantStep.prototype.setLabel */ any; + + /** + * + */ + setHelpText : /* nlobjAssistantStep.prototype.setHelpText */ any; + + /** + * + */ + getStepNumber : /* nlobjAssistantStep.prototype.getStepNumber */ any; + + /** + * + */ + getFieldValue : /* nlobjAssistantStep.prototype.getFieldValue */ any; + + /** + * + */ + getFieldValues : /* nlobjAssistantStep.prototype.getFieldValues */ any; + + /** + * + */ + getLineItemCount : /* nlobjAssistantStep.prototype.getLineItemCount */ any; + + /** + * + */ + getLineItemValue : /* nlobjAssistantStep.prototype.getLineItemValue */ any; + + /** + * + */ + getAllFields : /* nlobjAssistantStep.prototype.getAllFields */ any; + + /** + * + */ + getAllLineItems : /* nlobjAssistantStep.prototype.getAllLineItems */ any; + + /** + * + */ + getAllLineItemFields : /* nlobjAssistantStep.prototype.getAllLineItemFields */ any; + } + } +} +declare namespace nlobjForm.prototype { + // nlobjForm.prototype.addFieldGroup.!ret + + /** + * + */ + interface AddFieldGroupRet { + + /** + * + */ + prototype : { + + /** + * + */ + setLabel : /* nlobjFieldGroup.prototype.setLabel */ any; + + /** + * + */ + setCollapsible : /* nlobjFieldGroup.prototype.setCollapsible */ any; + + /** + * + */ + setSingleColumn : /* nlobjFieldGroup.prototype.setSingleColumn */ any; + + /** + * + */ + setShowBorder : /* nlobjFieldGroup.prototype.setShowBorder */ any; + } + } +} +declare namespace nlobjForm.prototype { + // nlobjForm.prototype.addButton.!ret + + /** + * + */ + interface AddButtonRet { + + /** + * + */ + prototype : { + + /** + * + */ + setLabel : /* nlobjButton.prototype.setLabel */ any; + + /** + * + */ + setDisabled : /* nlobjButton.prototype.setDisabled */ any; + } + } +} + +/** + * Return a new record using values from an existing record. + * @governance 10 units for transactions, 2 for custom records, 4 for all other records + * + * @param {string} type The record type name. + * @param {int} id The internal ID for the record. + * @param {Object} initializeValues Contains an array of name/value pairs of defaults to be used during record initialization. + * @return {nlobjRecord} Returns an nlobjRecord object of a copied record. + * + * @since 2007.0 + * @param type + * @param id + * @param initializeValues + * @return + */ +declare function nlapiCopyRecord(type:string, id:any, initializeValues:any):nlobjRecord; + +declare function nlapiDisableLineItemField(type:string, fldnam:string, val:boolean):void; +declare function nlapiDisableField(fldnam:string, val:any):void; + +/** + * Load an existing record from the system. + * @governance 10 units for transactions, 2 for custom records, 4 for all other records + * + * @param {string} type The record type name. + * @param {int} id The internal ID for the record. + * @param {Object} initializeValues Contains an array of name/value pairs of defaults to be used during record initialization. + * @return {nlobjRecord} Returns an nlobjRecord object of an existing NetSuite record. + * + * @exception {SSS_INVALID_RECORD_TYPE} + * @exception {SSS_TYPE_ARG_REQD} + * @exception {SSS_INVALID_INTERNAL_ID} + * @exception {SSS_ID_ARG_REQD} + * + * @since 2007.0 + * @param type + * @param id + * @param initializeValues + * @return + */ +declare function nlapiLoadRecord(type:string, id:any, initializeValues:any):nlobjRecord; + +/** + * Instantiate a new nlobjRecord object containing all the default field data for that record type. + * @governance 10 units for transactions, 2 for custom records, 4 for all other records + * + * @param {string} type record type ID. + * @param {Object} initializeValues Contains an array of name/value pairs of defaults to be used during record initialization. + * @return {nlobjRecord} Returns an nlobjRecord object of a new record from the system. + * + * @exception {SSS_INVALID_RECORD_TYPE} + * @exception {SSS_TYPE_ARG_REQD} + * + * @since 2007.0 + * @param type + * @param initializeValues + * @return + */ +declare function nlapiCreateRecord(type:string, initializeValues:any):nlobjRecord; + +/** + * Submit a record to the system for creation or update. + * @governance 20 units for transactions, 4 for custom records, 8 for all other records + * + * @param {nlobjRecord} record nlobjRecord object containing the data record. + * @param {boolean} [doSourcing] If not set, this argument defaults to false. + * @param {boolean} [ignoreMandatoryFields] Disables mandatory field validation for this submit operation. + * @return {string} internal ID for committed record. + * + * @exception {SSS_INVALID_RECORD_OBJ} + * @exception {SSS_RECORD_OBJ_REQD} + * @exception {SSS_INVALID_SOURCE_ARG} + * + * @since 2007.0 + * @param record + * @param doSourcing? + * @param ignoreMandatoryFields? + * @return + */ +declare function nlapiSubmitRecord(record:any, doSourcing?:boolean, ignoreMandatoryFields?:boolean):string; + +/** + * Delete a record from the system. + * @governance 20 units for transactions, 4 for custom records, 8 for all other records + * + * @param {string} type The record type name. + * @param {int} id The internal ID for the record. + * @return {void} + * + * @exception {SSS_INVALID_RECORD_TYPE} + * @exception {SSS_TYPE_ARG_REQD} + * @exception {SSS_INVALID_INTERNAL_ID} + * @exception {SSS_ID_ARG_REQD} + * + * @since 2007.0 + * @param type + * @param id + * @return + */ +declare function nlapiDeleteRecord(type:string, id:any):void; + +/** + * Perform a record search using an existing search or filters and columns. + * @governance 10 units + * @restriction returns the first 1000 rows in the search + * + * @param {string} type record type ID. + * @param {int, string} [id] The internal ID or script ID for the saved search to use for search. + * @param {nlobjSearchFilter, nlobjSearchFilter[]} [filters] [optional] A single nlobjSearchFilter object - or - an array of nlobjSearchFilter objects. + * @param {nlobjSearchColumn, nlobjSearchColumn[]} [columns] [optional] A single nlobjSearchColumn object - or - an array of nlobjSearchColumn objects. + * @return {nlobjSearchResult[]} Returns an array of nlobjSearchResult objects corresponding to the searched records. + * + * @exception {SSS_INVALID_RECORD_TYPE} + * @exception {SSS_TYPE_ARG_REQD} + * @exception {SSS_INVALID_SRCH_ID} + * @exception {SSS_INVALID_SRCH_FILTER} + * @exception {SSS_INVALID_SRCH_FILTER_JOIN} + * @exception {SSS_INVALID_SRCH_OPERATOR} + * @exception {SSS_INVALID_SRCH_COL_NAME} + * @exception {SSS_INVALID_SRCH_COL_JOIN} + * + * @since 2007.0 + * @param type + * @param id + * @param filters + * @param columns + */ +declare function nlapiSearchRecord(type:string, id:any, filters:any, columns:any):nlobjSearchResult[]; + +/** + * Perform a global record search across the system. + * @governance 10 units + * @restriction returns the first 1000 rows in the search + * + * @param {string} keywords Global search keywords string or expression. + * @return {nlobjSearchResult[]} Returns an Array of nlobjSearchResult objects containing the following four columns: name, type (as shown in the UI), info1, and info2. + * + * @since 2008.1 + * @param keywords + */ +declare function nlapiSearchGlobal(keywords:string):nlobjSearchResult[]; + +/** + * Perform a duplicate record search using Duplicate Detection criteria. + * @governance 10 units + * @restriction returns the first 1000 rows in the search + * + * @param {string} type The recordType you are checking duplicates for (for example, customer|lead|prospect|partner|vendor|contact). + * @param {string[]} [fields] array of field names used to detect duplicate (for example, companyname|email|name|phone|address1|city|state|zipcode). + * @param {int} [id] internal ID of existing record. Depending on the use case, id may or may not be a required argument. + * @return {nlobjSearchResult[]} Returns an Array of nlobjSearchResult objects corresponding to the duplicate records. + * + * @since 2008.1 + * @param type + * @param fields + * @param id? + */ +declare function nlapiSearchDuplicate(type:string, fields:any, id?:any):nlobjSearchResult[]; + +/** + * Create a new record using values from an existing record of a different type. + * @governance 10 units for transactions, 2 for custom records, 4 for all other records + * + * @param {string} type The record type name. + * @param {int} id The internal ID for the record. + * @param {string} transformType The recordType you are transforming the existing record into. + * @param {Object} [transformValues] An object containing transform default option/value pairs used to pre-configure transformed record + * @return {nlobjRecord} + * + * @exception {SSS_INVALID_URL_CATEGORY} + * @exception {SSS_CATEGORY_ARG_REQD} + * @exception {SSS_INVALID_TASK_ID} + * @exception {SSS_TASK_ID_REQD} + * @exception {SSS_INVALID_INTERNAL_ID} + * @exception {SSS_INVALID_EDITMODE_ARG} + * + * @since 2007.0 + * @param type + * @param id + * @param transformType + * @param transformValues? + * @return + */ +declare function nlapiTransformRecord(type:string, id:any, transformType:string, transformValues?:any):nlobjRecord; + +/** + * void a transaction based on type and id . + * @governance 10 units for transactions + * + * @param {string} type The transaction type name. + * @param {string} id The internal ID for the record. + * @return {string} if accounting preference is reversing journal, then it is new journal id, + * otherwise, it is the input record id + * + * @since 2014.1 + * @param type + * @param id + * @return + */ +declare function nlapiVoidTransaction(type:string, id:string):string; + +/** + * Fetch the value of one or more fields on a record. This API uses search to look up the fields and is much + * faster than loading the record in order to get the field. + * @governance 10 units for transactions, 2 for custom records, 4 for all other records + * + * @param {string} type The record type name. + * @param {int} id The internal ID for the record. + * @param {string, string[]} fields - field or fields to look up. + * @param {boolean} [text] If set then the display value is returned instead for select fields. + * @return {string, Object} single value or an Object of field name/value pairs depending on the fields argument. + * + * @since 2008.1 + * @param type + * @param id + * @param fields + * @param text? + */ +declare function nlapiLookupField(type:string, id:number, fields:string, text?:boolean):string; +declare function nlapiLookupField(type:string, id:number, fields:string[], text?:boolean):any; + +/** + * Submit the values of a field or set of fields for an existing record. + * @governance 10 units for transactions, 2 for custom records, 4 for all other records + * @restriction only supported for records and fields where DLE (Direct List Editing) is supported + * + * @param {string} type The record type name. + * @param {int} id The internal ID for the record. + * @param {string, string[]} fields field or fields being updated. + * @param {string, string[]} values field value or field values used for updating. + * @param {boolean} [doSourcing] If not set, this argument defaults to false and field sourcing does not occur. + * @return {void} + * + * @since 2008.1 + * @param type + * @param id + * @param fields + * @param values + * @param doSourcing? + * @return + */ +declare function nlapiSubmitField(type:string, id:any, fields:any, values:any, doSourcing?:boolean):void; + +/** + * Attach a single record to another with optional properties. + * @governance 10 units + * + * @param {string} type1 The record type name being attached + * @param {int} id1 The internal ID for the record being attached + * @param {string} type2 The record type name being attached to + * @param {int} id2 The internal ID for the record being attached to + * @param {Object} [properties] Object containing name/value pairs used to configure attach operation + * @return {void} + * + * @since 2008.2 + * @param type1 + * @param id1 + * @param type2 + * @param id2 + * @param properties? + * @return + */ +declare function nlapiAttachRecord(type1:string, id1:any, type2:string, id2:any, properties?:any):void; + +/** + * Detach a single record from another with optional properties. + * @governance 10 units + * + * @param {string} type1 The record type name being attached + * @param {int} id1 The internal ID for the record being attached + * @param {string} type2 The record type name being attached to + * @param {int} id2 The internal ID for the record being attached to + * @param {Object} [properties] Object containing name/value pairs used to configure detach operation + * @return {void} + * + * @since 2008.2 + * @param type1 + * @param id1 + * @param type2 + * @param id2 + * @param properties? + * @return + */ +declare function nlapiDetachRecord(type1:string, id1:any, type2:string, id2:any, properties?:any):void; + +/** + * Resolve a URL to a resource or object in the system. + * + * @param {string} type type specifier for URL: suitelet|tasklink|record|mediaitem + * @param {string} subtype subtype specifier for URL (corresponding to type): scriptid|taskid|recordtype|mediaid + * @param {string} [id] internal ID specifier (sub-subtype corresponding to type): deploymentid|n/a|recordid|n/a + * @param {string} [pagemode] string specifier used to configure page (suitelet: external|internal, tasklink|record: edit|view) + * @return {string} + * + * @since 2007.0 + * @param type + * @param subtype + * @param id? + * @param pagemode? + * @return + */ +declare function nlapiResolveURL(type:string, subtype:string, id?:string, pagemode?:string):string; + +/** + * Redirect the user to a page. Only valid in the UI on Suitelets and User Events. In Client scripts this will initialize the redirect URL used upon submit. + * + * @param {string} type type specifier for URL: suitelet|tasklink|record|mediaitem + * @param {string} subtype subtype specifier for URL (corresponding to type): scriptid|taskid|recordtype|mediaid + * @param {string} [id] internal ID specifier (sub-subtype corresponding to type): deploymentid|n/a|recordid|n/a + * @param {string} [pagemode] string specifier used to configure page (suitelet: external|internal, tasklink|record: edit|view) + * @param {Object} [parameters] Object used to specify additional URL parameters as name/value pairs + * @return {void} + * + * @since 2007.0 + * @param type + * @param subtype + * @param id? + * @param pagemode? + * @param parameters? + * @return + */ +declare function nlapiSetRedirectURL(type:string, subtype:string, id?:string, pagemode?:string, parameters?:any):void; + +/** + * Request a URL to an external or internal resource. + * @restriction NetSuite maintains a white list of CAs that are allowed for https requests. Please see the online documentation for the complete list. + * @governance 10 units + * + * @param {string} url A fully qualified URL to an HTTP(s) resource + * @param {string, Object} [postdata] - string, document, or Object containing POST payload + * @param {Object} [headers] - Object containing request headers. + * @param {function} [callback] - available on the Client to support asynchronous requests. function is passed an nlobjServerResponse with the results. + * @return {nlobjServerResponse} + * + * @exception {SSS_UNKNOWN_HOST} + * @exception {SSS_INVALID_HOST_CERT} + * @exception {SSS_REQUEST_TIME_EXCEEDED} + * + * @since 2007.0 + * @param url + * @param postdata + * @param headers? + * @param callback? + * @param method + * @return + */ +declare function nlapiRequestURL(url:string, postdata:any, headers?:any, callback?:any, method?:any):any; + +/** + * Return context information about the current user/script. + * + * @return {nlobjContext} + * + * @since 2007.0 + * @return + */ +declare function nlapiGetContext():any; + +/** + * Return the internal ID for the currently logged in user. Returns -4 when called from online forms or "Available without Login" Suitelets. + * + * @return {int} + * + * @since 2005.0 + * @return + */ +declare function nlapiGetUser():any; + +/** + * Return the internal ID for the current user's role. Returns 31 (Online Form User) when called from online forms or "Available without Login" Suitelets. + * + * @return {int} + * + * @since 2005.0 + * @return + */ +declare function nlapiGetRole():any; + +/** + * Return the internal ID for the current user's department. + * + * @return {int} + * + * @since 2005.0 + * @return + */ +declare function nlapiGetDepartment():any; + +/** + * Return the internal ID for the current user's location. + * + * @return {int} + * + * @since 2005.0 + * @return + */ +declare function nlapiGetLocation():any; + +/** + * Return the internal ID for the current user's subsidiary. + * + * @return {int} + * + * @since 2008.1 + * @return + */ +declare function nlapiGetSubsidiary():any; + +/** + * Return the recordtype corresponding to the current page or userevent script. + * + * @return {string} + * + * @since 2007.0 + * @return + */ +declare function nlapiGetRecordType():string; + +/** + * Return the internal ID corresponding to the current page or userevent script. + * + * @return {int} + * + * @since 2007.0 + * @return + */ +declare function nlapiGetRecordId():any; + +/** + * Send out an email and associate it with records in the system. + * Supported base types are entity for entities, transaction for transactions, activity for activities and cases, record|recordtype for custom records + * @governance 10 units + * @restriction all outbound emails subject to email Anti-SPAM policies + * + * @param {int} from internal ID for employee user on behalf of whom this email is sent + * @param {string, int} to email address or internal ID of user that this email is being sent to + * @param {string} subject email subject + * @param {string} body email body + * @param {string, string[]} cc copy email address(es) + * @param {string, string[]} bcc blind copy email address(es) + * @param {Object} records Object of base types -> internal IDs used to associate email to records. i.e. {entity: 100, record: 23, recordtype: customrecord_surveys} + * @param {nlobjFile[]} files array of nlobjFile objects (files) to include as attachments + * @param {boolean} notifySenderOnBounce controls whether or not the sender will receive email notification of bounced emails (defaults to false) + * @param {boolean} internalOnly controls or not the resultingMmessage record will be visible to non-employees on the Communication tab of attached records (defaults to false) + * @param {string} replyTo email reply-to address + * @return {void} + * + * @since 2007.0 + * @param from + * @param to + * @param subject + * @param body + * @param cc + * @param bcc + * @param records + * @param files + * @param notifySenderOnBounce + * @param internalOnly + * @param replyTo + * @return + */ +declare function nlapiSendEmail(from:any, to:any, subject:string, body:string, cc:any, bcc:any, records:any, files:any, notifySenderOnBounce:boolean, internalOnly:boolean, replyTo:string):any; + +/** + * Sends a single on-demand campaign email to a specified recipient and returns a campaign response ID to track the email. + * @governance 10 units + * @restriction works in conjunction with the Lead Nurturing (campaigndrip) sublist only + * + * @param {int} campaigneventid internal ID of the campaign event + * @param {int} recipientid internal ID of the recipient - the recipient must have an email + * @return {int} + * + * @since 2010.1 + * @param campaigneventid + * @param recipientid + * @return + */ +declare function nlapiSendCampaignEmail(campaigneventid:any, recipientid:any):any; + +/** + * Send out a fax and associate it with records in the system. This requires fax preferences to be configured. + * Supported base types are entity for entities, transaction for transactions, activity for activities and cases, record|recordtype for custom records + * @governance 10 units + * + * @param {int} from internal ID for employee user on behalf of whom this fax is sent + * @param {string, int} to fax address or internal ID of user that this fax is being sent to + * @param {string} subject fax subject + * @param {string} body fax body + * @param {Object} records Object of base types -> internal IDs used to associate fax to records. i.e. {entity: 100, record: 23, recordtype: customrecord_surveys} + * @param {nlobjFile[]} files array of nlobjFile objects (files) to include as attachments + * @return {void} + * + * @since 2008.2 + * @param from + * @param to + * @param subject + * @param body + * @param records + * @param files + * @return + */ +declare function nlapiSendFax(from:any, to:any, subject:string, body:string, records:any, files:any):any; + +/** + * Return field definition for a field. + * + * @param {string} fldnam the name of the field + * @return {nlobjField} + * + * @since 2009.1 + * @param fldnam + * @return + */ +declare function nlapiGetField(fldnam:string):any; + +/** + * Return field definition for a matrix field. + * + * @param {string} type matrix sublist name + * @param {string} fldnam matrix field name + * @param {int} column matrix field column index (1-based) + * @return {nlobjField} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param column + * @return + */ +declare function nlapiGetMatrixField(type:string, fldnam:string, column:any):any; + +/** + * Return field definition for a sublist field. + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} [linenum] line number for sublist field (1-based) and only valid for sublists of type staticlist and list + * @return {nlobjField} + * + * @since 2009.1 + * @param type + * @param fldnam + * @param linenum? + * @return + */ +declare function nlapiGetLineItemField(type:string, fldnam:string, linenum?:any):any; + +/** + * Return an nlobjField containing sublist field metadata. + * + * @param {string} type matrix sublist name + * @param {string} fldnam matrix field name + * @param {int} linenum line number (1-based) + * @param {int} column matrix column index (1-based) + * @return {nlobjField} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param linenum + * @param column + * @return + */ +declare function nlapiGetLineItemMatrixField(type:string, fldnam:string, linenum:any, column:any):any; + +/** + * Return the value of a field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam the field name + * @return {string} + * + * @since 2005.0 + * @param fldnam + * @return + */ +declare function nlapiGetFieldValue(fldnam:string):string; + +/** + * Set the value of a field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} fldnam the field name + * @param {string} value value used to set field + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2005.0 + * @param fldnam + * @param value + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetFieldValue(fldnam:string, value:string, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Return the display value of a select field's current selection on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam the field name + * @return {string} + * + * @since 2005.0 + * @param fldnam + * @return + */ +declare function nlapiGetFieldText(fldnam:string):string; + +/** + * Set the value of a field on the current record on a page using it's label. + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} fldnam the field name + * @param {string} txt display name used to lookup field value + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2005.0 + * @param fldnam + * @param txt + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetFieldText(fldnam:string, txt:string, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Return the values of a multiselect field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam the field name + * @return {string[]} + * + * @since 2005.0 + * @param fldnam + */ +declare function nlapiGetFieldValues(fldnam:string):void; + +/** + * Set the values of a multiselect field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} fldnam field name + * @param {string[]} values array of strings containing values for field + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2005.0 + * @param fldnam + * @param values + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetFieldValues(fldnam:string, values:any, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Return the values (via display text) of a multiselect field on the current record. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam field name + * @return {string[]} + * + * @since 2009.1 + * @param fldnam + */ +declare function nlapiGetFieldTexts(fldnam:string):void; + +/** + * Set the values (via display text) of a multiselect field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} fldnam field name + * @param {string[]} texts array of strings containing display values for field + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2009.1 + * @param fldnam + * @param texts + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetFieldTexts(fldnam:string, texts:any, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Get the value of a matrix header field + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} column matrix column index (1-based) + * @return {string} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param column + * @return + */ +declare function nlapiGetMatrixValue(type:string, fldnam:string, column:any):string; + +/** + * Set the value of a matrix header field + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} column matrix column index (1-based) + * @param {string} value field value for matrix field + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param column + * @param value + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetMatrixValue(type:string, fldnam:string, column:any, value:string, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Get the current value of a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} column matrix column index (1-based) + * @return {string} value + * + * @since 2009.2 + * @param type + * @param fldnam + * @param column + * @return + */ +declare function nlapiGetCurrentLineItemMatrixValue(type:string, fldnam:string, column:any):string; + +/** + * Set the current value of a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @restriction synchronous arg is only supported in Client SuiteScript + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} column matrix column index (1-based) + * @param {string} value matrix field value + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param column + * @param value + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetCurrentLineItemMatrixValue(type:string, fldnam:string, column:any, value:string, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Return the value of a sublist matrix field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} linenum line number (1-based) + * @param {int} column column index (1-based) + * @param {string} value + * + * @since 2009.2 + * @param type + * @param fldnam + * @param linenum + * @param column + */ +declare function nlapiGetLineItemMatrixValue(type:string, fldnam:string, linenum:any, column:any):void; + +/** + * Return the value of a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} linenum line number (1-based) + * @return {string} + * + * @since 2005.0 + * @param type + * @param fldnam + * @param linenum + * @return + */ +declare function nlapiGetLineItemValue(type:string, fldnam:string, linenum:any):string; + +/** + * Return the value of a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} linenum line number (1-based) + * @param {string} timezone value + * @return {string} + * + * @since 2013.2 + * @param type + * @param fldnam + * @param linenum + * @param timezone + * @return + */ +declare function nlapiGetLineItemDateTimeValue(type:string, fldnam:string, linenum:any, timezone:string):string; + +/** + * Set the value of a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} linenum line number (1-based) + * @param {string} value + * @retun {void} + * + * @since 2005.0 + * @param type + * @param fldnam + * @param linenum + * @param value + */ +declare function nlapiSetLineItemValue(type:string, fldnam:string, linenum:any, value:string):void; + +/** + * Set the value of a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} linenum line number (1-based) + * @param {string} datetime value + * @param {string} timezone value + * @retun {void} + * + * @since 2013.2 + * @param type + * @param fldnam + * @param linenum + * @param value + * @param timezone + */ +declare function nlapiSetLineItemDateTimeValue(type:string, fldnam:string, linenum:any, value:any, timezone:string):void; + +/** + * Return the label of a select field's current selection for a particular line. + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} linenum line number (1-based) + * @return {string} + * + * @since 2005.0 + * @param type + * @param fldnam + * @param linenum + * @return + */ +declare function nlapiGetLineItemText(type:string, fldnam:string, linenum:any):string; + +/** + * Return the 1st line number that a sublist field value appears in + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {string} val the value being queried for in a sublist field + * @return {int} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param val + * @return + */ +declare function nlapiFindLineItemValue(type:string, fldnam:string, val:string):any; + +/** + * Return the 1st line number that a matrix field value appears in + * + * @param {string} type sublist name + * @param {string} fldnam matrix field name + * @param {int} column matrix column index (1-based) + * @param {string} val the value being queried for in a matrix field + * @return {int} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param column + * @param val + * @return + */ +declare function nlapiFindLineItemMatrixValue(type:string, fldnam:string, column:any, val:string):any; + +/** + * Return the number of columns for a matrix field + * + * @param {string} type sublist name + * @param {string} fldnam matrix field name + * @return {int} + * + * @since 2009.2 + * @param type + * @param fldnam + * @return + */ +declare function nlapiGetMatrixCount(type:string, fldnam:string):any; + +/** + * Return the number of sublists in a sublist on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @return {int} + * + * @since 2005.0 + * @param type + * @return + */ +declare function nlapiGetLineItemCount(type:string):any; + +/** + * Insert and select a new line into the sublist on a page or userevent. + * + * @param {string} type sublist name + * @param {int} [line] line number at which to insert a new line. + * @return{void} + * + * @since 2005.0 + * @param type + * @param line? + */ +declare function nlapiInsertLineItem(type:string, line?:any):void; + +/** + * Remove the currently selected line from the sublist on a page or userevent. + * + * @param {string} type sublist name + * @param {int} [line] line number to remove. + * @return {void} + * + * @since 2005.0 + * @param type + * @param line? + * @return + */ +declare function nlapiRemoveLineItem(type:string, line?:any):any; + +/** + * Set the value of a field on the currently selected line. + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {string} value field value + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2005.0 + * @param type + * @param fldnam + * @param value + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetCurrentLineItemValue(type:string, fldnam:string, value:string, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Set the value of a field on the currently selected line. + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {string} value field value + * @param {string} timezone value + * @return {void} + * + * @since 2013.2 + * @param type + * @param fldnam + * @param value + * @param timezone + * @return + */ +declare function nlapiSetCurrentLineItemDateTimeValue(type:string, fldnam:string, value:string, timezone:string):any; + +/** + * Set the value of a field on the currently selected line using it's label. + * @restriction synchronous arg is only supported in client SuiteScript + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {string} txt string containing display value or search text. + * @param {boolean} [firefieldchanged] if false then the field change event is suppressed (defaults to true) + * @param {boolean} [synchronous] if true then sourcing and field change execution happens synchronously (defaults to false). + * @return {void} + * + * @since 2005.0 + * @param type + * @param fldnam + * @param txt + * @param firefieldchanged? + * @param synchronous? + * @return + */ +declare function nlapiSetCurrentLineItemText(type:string, fldnam:string, txt:string, firefieldchanged?:boolean, synchronous?:boolean):any; + +/** + * Return the value of a field on the currently selected line. + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @return {string} + * + * @since 2005.0 + * @param type + * @param fldnam + * @return + */ +declare function nlapiGetCurrentLineItemValue(type:string, fldnam:string):string; + +/** + * Return the value of a field on the currently selected line. + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {string} timezone value + * @return {string} + * + * @since 2013.2 + * @param type + * @param fldnam + * @param timezone + * @return + */ +declare function nlapiGetCurrentLineItemDateTimeValue(type:string, fldnam:string, timezone:string):string; + +/** + * Return the label of a select field's current selection on the currently selected line. + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @return {string} + * + * @since 2005.0 + * @param type + * @param fldnam + * @return + */ +declare function nlapiGetCurrentLineItemText(type:string, fldnam:string):string; + +/** + * Return the line number for the currently selected line. + * + * @param {string} type sublist name + * @return {int} + * + * @since 2005.0 + * @param type + * @return + */ +declare function nlapiGetCurrentLineItemIndex(type:string):any; + +/** + * Disable a sublist field. + * @restriction Only supported on sublists of type inlineeditor, editor and list (current field only) + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {boolean} disable if true then field is disabled + * @param {int} linenum line number for sublist field (1-based) and only valid for sublists of type list + * @return {void} + * + * @since 2009.1 + * @param type + * @param fldnam + * @param disable + * @param linenum + * @return + */ +declare function nlapiSetLineItemDisabled(type:string, fldnam:string, disable:boolean, linenum:any):any; + +/** + * Return field mandatoriness. + * + * @param {string} fldnam field name + * @return {boolean} + * + * @since 2009.1 + * @param fldnam + * @return + */ +declare function nlapiGetFieldMandatory(fldnam:string):boolean; + +/** + * Return sublist field mandatoriness. + * @restriction Only supported on sublists of type inlineeditor or editor (current field only) + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @return {boolean} + * + * @since 2009.1 + * @param type + * @param fldnam + * @return + */ +declare function nlapiGetLineItemMandatory(type:string, fldnam:string):boolean; + +/** + * Make a field mandatory. + * + * @param {string} fldnam field name + * @param {boolean} mandatory if true then field is made mandatory + * @return {void} + * + * @since 2009.1 + * @param fldnam + * @param mandatory + * @return + */ +declare function nlapiSetFieldMandatory(fldnam:string, mandatory:boolean):any; + +/** + * Make a sublist field mandatory. + * @restriction Only supported on sublists of type inlineeditor or editor (current field only) + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {boolean} mandatory if true then field is made mandatory + * @return {void} + * + * @since 2009.2 + * @param type + * @param fldnam + * @param mandatory + * @return + */ +declare function nlapiSetLineItemMandatory(type:string, fldnam:string, mandatory:boolean):any; + +/** + * Select an existing line in a sublist. + * + * @param {string} type sublist name + * @param {int} linenum line number to select + * @return {void} + * + * @since 2005.0 + * @param type + * @param linenum + * @return + */ +declare function nlapiSelectLineItem(type:string, linenum:any):any; + +/** + * Save changes made on the currently selected line to the sublist. + * + * @param {string} type sublist name + * @return {void} + * + * @since 2005.0 + * @param type + * @return + */ +declare function nlapiCommitLineItem(type:string):any; + +/** + * Cancel any changes made on the currently selected line. + * @restriction Only supported for sublists of type inlineeditor and editor + * + * @param {string} type sublist name + * @return {void} + * + * @since 2005.0 + * @param type + * @return + */ +declare function nlapiCancelLineItem(type:string):any; + +/** + * Select a new line in a sublist. + * @restriction Only supported for sublists of type inlineeditor and editor + * + * @param {string} type sublist name + * @return {void} + * + * @since 2005.0 + * @param type + * @return + */ +declare function nlapiSelectNewLineItem(type:string):any; + +/** + * Refresh the sublist table. + * @restriction Only supported for sublists of type inlineeditor, editor, and staticlist + * @restriction Client SuiteScript only. + * + * @param {string} type sublist name + * @return{void} + * + * @since 2005.0 + * @param type + */ +declare function nlapiRefreshLineItems(type:string):void; + +/** + * Adds a select option to a scripted select or multiselect field. + * @restriction Client SuiteScript only + * + * @param {string} fldnam field name + * @param {string} value internal ID for select option + * @param {string} text display text for select option + * @param {boolean} [selected] if true then option will be selected by default + * @return {void} + * + * @since 2008.2 + * @param fldnam + * @param value + * @param text + * @param selected? + * @return + */ +declare function nlapiInsertSelectOption(fldnam:string, value:string, text:string, selected?:boolean):any; + +/** + * Removes a select option (or all if value is null) from a scripted select or multiselect field. + * @restriction Client SuiteScript only + * + * @param {string} fldnam field name + * @param {string} value internal ID of select option to remove + * @return {void} + * + * @since 2008.2 + * @param fldnam + * @param value + * @return + */ +declare function nlapiRemoveSelectOption(fldnam:string, value:string):any; + +/** + * Adds a select option to a scripted select or multiselect sublist field. + * @restriction Client SuiteScript only + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {string} value internal ID for select option + * @param {string} text display text for select option + * @param {boolean} [selected] if true then option will be selected by default + * @return {void} + * + * @since 2008.2 + * @param type + * @param fldnam + * @param value + * @param text + * @param selected? + * @return + */ +declare function nlapiInsertLineItemOption(type:string, fldnam:string, value:string, text:string, selected?:boolean):any; + +/** + * Removes a select option (or all if value is null) from a scripted select or multiselect sublist field. + * @restriction Client SuiteScript only + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {string} value internal ID for select option to remove + * @return {void} + * + * @since 2008.2 + * @param type + * @param fldnam + * @param value + * @return + */ +declare function nlapiRemoveLineItemOption(type:string, fldnam:string, value:string):any; + +/** + * Returns true if any changes have been made to a sublist. + * @restriction Client SuiteScript only + * + * @param {string} type sublist name + * @return {boolean} + * + * @since 2005.0 + * @param type + * @return + */ +declare function nlapiIsLineItemChanged(type:string):boolean; + +/** + * Return an record object containing the data being submitted to the system for the currenr record. + * @restriction User Event scripts only + * + * @return {nlobjRecord} + * + * @since 2008.1 + * @return + */ +declare function nlapiGetNewRecord():any; + +/** + * Return an record object containing the current record's data prior to the write operation. + * @restriction beforeSubmit|afterSubmit User Event scripts only + * + * @return {nlobjRecord} + * + * @since 2008.1 + * @return + */ +declare function nlapiGetOldRecord():any; + +/** + * Create an nlobjError object that can be used to abort script execution and configure error notification + * + * @param {string} code error code + * @param {string} details error description + * @param {boolean} [suppressEmail] if true then suppress the error notification emails from being sent out (false by default). + * @return {nlobjError} + * + * @since 2008.2 + * @param code + * @param details + * @param suppressEmail? + * @return + */ +declare function nlapiCreateError(code:string, details:string, suppressEmail?:boolean):any; + +/** + * Return a new entry form page. + * @restriction Suitelets only + * + * @param {string} title page title + * @param {boolean} [hideHeader] true to hide the page header (false by default) + * @return {nlobjForm} + * + * @since 2008.2 + * @param title + * @param hideHeader? + * @return + */ +declare function nlapiCreateForm(title:string, hideHeader?:boolean):nlobjForm; + +/** + * Return a new list page. + * @restriction Suitelets only + * + * @param {string} title page title + * @param {boolean} [hideHeader] true to hide the page header (false by default) + * @return {nlobjList} + * + * @since 2008.2 + * @param title + * @param hideHeader? + * @return + */ +declare function nlapiCreateList(title:string, hideHeader?:boolean):any; + +/** + * Return a new assistant page. + * @restriction Suitelets only + * + * @param {string} title page title + * @param {boolean} [hideHeader] true to hide the page header (false by default) + * @return {nlobjAssistant} + * + * @since 2009.2 + * @param title + * @param hideHeader? + * @return + */ +declare function nlapiCreateAssistant(title:string, hideHeader?:boolean):any; + +/** + * Load a file from the file cabinet (via its internal ID or path). + * @governance 10 units + * @restriction Server SuiteScript only + * + * @param {string, int} id internal ID or relative path to file in the file cabinet (i.e. /SuiteScript/foo.js) + * @return {nlobjFile} + * + * @since 2008.2 + * @param id + * @return + */ +declare function nlapiLoadFile(id:any):any; + +/** + * Add/update a file in the file cabinet. + * @governance 20 units + * @restriction Server SuiteScript only + * + * @param {nlobjFile} file a file object to submit + * @return {int} return internal ID of file + * + * @since 2009.1 + * @param file + * @return + */ +declare function nlapiSubmitFile(file:any):any; + +/** + * Delete a file from the file cabinet. + * @governance 20 units + * @restriction Server SuiteScript only + * + * @param {int} id internal ID of file to be deleted + * @return {id} + * + * @since 2009.1 + * @param id + * @return + */ +declare function nlapiDeleteFile(id:any):any; + +/** + * Instantiate a file object (specifying the name, type, and contents which are base-64 encoded for binary types.) + * @restriction Server SuiteScript only + * + * @param {string} name file name + * @param {string} type file type i.e. plainText, htmlDoc, pdf, word (see documentation for the list of supported file types) + * @param {string} contents string containing file contents (must be base-64 encoded for binary types) + * @return {nlobjFile} + * + * @since 2009.1 + * @param name + * @param type + * @param contents + * @return + */ +declare function nlapiCreateFile(name:string, type:string, contents:string):any; + +/** + * Perform a mail merge operation using any template and up to 2 records and returns an nlobjFile with the results. + * @restriction only supported for record types that are available in mail merge: transactions, entities, custom records, and cases + * @restriction Server SuiteScript only + * @governance 10 units + * + * @param {int} id internal ID of template + * @param {string} baseType primary record type + * @param {int} baseId internal ID of primary record + * @param {string} [altType] secondary record type + * @param {int} [altId] internal ID of secondary record + * @param {Object} [fields] Object of merge field values to use in the mail merge (by default all field values are obtained from records) which overrides those from the record. + * @return {nlobjFile} + * + * @since 2008.2 + * @param id + * @param baseType + * @param baseId + * @param altType? + * @param altId? + * @param fields? + * @return + */ +declare function nlapiMergeRecord(id:any, baseType:string, baseId:any, altType?:string, altId?:any, fields?:any):any; + +/** + * Print a record (transaction) gievn its type, id, and output format. + * @restriction Server SuiteScript only + * @governance 10 units + * + * @param {string} type print output type: transaction|statement|packingslip|pickingticket + * @param {int} id internal ID of record to print + * @param {string} [format] output format: html|pdf|default + * @param {Object} [properties] Object of properties used to configure print + * @return {nlobjFile} + * + * @since 2008.2 + * @param type + * @param id + * @param format? + * @param properties? + * @return + */ +declare function nlapiPrintRecord(type:string, id:any, format?:string, properties?:any):any; + +/** + * Generate a PDF from XML using the BFO report writer (see http://big.faceless.org/products/report/). + * @restriction Server SuiteScript only + * @governance 10 units + * + * @param {string} input string containing BFO compliant XHTML + * @return {nlobjFile} + * + * @since 2009.1 + * @param input + * @return + */ +declare function nlapiXMLToPDF(input:string):any; + +/** + * Create a template renderer used to generate various outputs based on a template. + * @restriction Server SuiteScript only + * @governance 10 units + * + * @param {string} type media type: pdf|html + * @param {string} [engineType] [optional]: default is freemarker/html + * @return {nlobjTemplateRenderer} + * @return + */ +declare function nlapiCreateTemplateRenderer():any; + +/** + * Create an email merger used to assemble subject and body text of an email from a given + * FreeMarker template and a set of associated records. + * @restriction Server SuiteScript only + * + * @param {int} templateId internal ID of the template + * @return {nlobjEmailMerger} + * + * @since 2015.1 + * @param id + * @return + */ +declare function nlapiCreateEmailMerger(id:any):any; + +/** + * Create an entry in the script execution log (note that execution log entries are automatically purged after 30 days). + * + * @param {string} type log type: debug|audit|error|emergency + * @param {string} title log title (up to 90 characters supported) + * @param {string} [details] log details (up to 3000 characters supported) + * @return {void} + * + * @since 2008.1 + * @param type + * @param title + * @param details? + * @return + */ +declare function nlapiLogExecution(type:string, title:string, details?:string):any; + +/** + * Queue a scheduled script for immediate execution and return the status QUEUED if successfull. + * @restriction Server SuiteScript only + * @governance 20 units + * + * @param {string, int} script script ID or internal ID of scheduled script + * @param {string, int} [deployment] script ID or internal ID of scheduled script deployment. If empty, the first "free" deployment (i.e. status = Not Scheduled or Completed) will be used + * @param {Object} parameters Object of parameter name->values used in this scheduled script instance + * @return {string} QUEUED or null if no available deployments were found or the current status of the deployment specified if it was not available. + * + * @since 2008.1 + * @param script + * @param deployment + * @param parameters + * @return + */ +declare function nlapiScheduleScript(script:any, deployment:any, parameters:any):string; + +/** + * Return a URL with a generated OAuth token. + * @restriction Suitelets and Portlets only + * @governance 20 units + * + * @param {string} ssoAppKey + * @return {string} + * + * @since 2009.2 + * @param ssoAppKey + * @return + */ +declare function nlapiOutboundSSO(ssoAppKey:string):string; + +/** + * Loads a configuration record + * @restriction Server SuiteScript only + * @governance 10 units + * + * @param {string} type + * @return {nlobjConfiguration} + * + * @since 2009.2 + * @param type + * @return + */ +declare function nlapiLoadConfiguration(type:string):any; + +/** + * Commits all changes to a configuration record. + * @restriction Server SuiteScript only + * @governance 10 units + * + * @param {nlobjConfiguration} setup record + * @return (void) + * + * @since 2009.2 + * @param setup + */ +declare function nlapiSubmitConfiguration(setup:any):void; + +/** + * Convert a String into a Date object. + * + * @param {string} str date string in the user's date format, timeofday format, or datetime format + * @param {string} format format type to use: date|datetime|timeofday with date being the default + * @return {date} + * + * @since 2005.0 + * @param str + * @param format + * @return + */ +declare function nlapiStringToDate(str:string, format:string):any; + +/** + * Convert a Date object into a String + * + * @param {date} d date object being converted to a string + * @param {string} [formattype] format type to use: date|datetime|timeofday with date being the default + * @return {string} + * + * @since 2005.0 + * @param d + * @param formattype? + * @return + */ +declare function nlapiDateToString(d:any, formattype?:string):string; + +/** + * Add days to a Date object and returns a new Date + * + * @param {date} d date object used to calculate the new date + * @param {int} days the number of days to add to this date object. + * @return {date} + * + * @since 2008.1 + * @param d + * @param days + * @return + */ +declare function nlapiAddDays(d:any, days:any):any; + +/** + * Add months to a Date object and returns a new Date. + * + * @param {date} d date object used to calculate the new date + * @param {int} months the number of months to add to this date object. + * @return {date} + * + * @since 2008.1 + * @param d + * @param months + * @return + */ +declare function nlapiAddMonths(d:any, months:any):any; + +/** + * Format a number for data entry into a currency field. + * + * @param {string} str numeric string used to format for display as currency using user's locale + * @return {string} + * + * @since 2008.1 + * @param str + * @return + */ +declare function nlapiFormatCurrency(str:string):string; + +/** + * Encrypt a String using a SHA-1 hash function + * + * @param {string} s string to encrypt + * @return {string} + * + * @since 2009.2 + * @param s + * @return + */ +declare function nlapiEncrypt(s:string):string; + +/** + * Escape a String for use in an XML document. + * + * @param {string} text string to escape + * @return {string} + * + * @since 2008.1 + * @param text + * @return + */ +declare function nlapiEscapeXML(text:string):string; + +/** + * Convert a String into an XML document. Note that in Server SuiteScript XML is supported natively by the JS runtime using the e4x standard (http://en.wikipedia.org/wiki/E4X) + * This makes scripting XML simpler and more efficient + * + * @param {string} str string being parsed into an XML document + * @return {document} + * + * @since 2008.1 + * @param str + * @return + */ +declare function nlapiStringToXML(str:string):any; + +/** + * Convert an XML document into a String. Note that in Server SuiteScript XML is supported natively by the JS runtime using the e4x standard (http://en.wikipedia.org/wiki/E4X) + * This makes scripting XML data simpler and more efficient + * + * @param {document} xml document being serialized into a string + * @return {string} + * + * @since 2008.1 + * @param xml + * @return + */ +declare function nlapiXMLToString(xml:any):string; + +/** + * Validate that a given XML document conforms to a given XML schema. XML Schema Definition (XSD) is the expected schema format. + * + * @param {document} xmlDocument xml to validate + * @param {document} schemaDocument schema to enforce + * @param {string} schemaFolderId if your schema utilizes or tags which refer to sub-schemas by file name (as opposed to URL), + * provide the Internal Id of File Cabinet folder containing these sub-schemas as the schemaFolderId argument + * @throws {nlobjError} error containsing validation failure message(s) - limited to first 10 + * + * @since 2014.1 + * @param xmlDocument + * @param schemaDocument + * @param schemaFolderId + */ +declare function nlapiValidateXML(xmlDocument:any, schemaDocument:any, schemaFolderId:string):void; + +/** + * select a value from an XML node using XPath. Supports custom namespaces (nodes in default namespace can be referenced using "nlapi" as the prefix) + * + * @param {node} node node being queried + * @param {string} xpath string containing XPath expression. + * @return {string} + * + * @since 2008.2 + * @param node + * @param xpath + * @return + */ +declare function nlapiSelectValue(node:any, xpath:string):string; + +/** + * Select an array of values from an XML node using XPath. Supports custom namespaces (nodes in default namespace can be referenced using "nlapi" as the prefix) + * + * @param {node} node node being queried + * @param {string} xpath string containing XPath expression. + * @return {string[]} + * + * @since 2008.1 + * @param node + * @param xpath + */ +declare function nlapiSelectValues(node:any, xpath:string):void; + +/** + * Select a node from an XML node using XPath. Supports custom namespaces (nodes in default namespace can be referenced using "nlapi" as the prefix) + * + * @param {node} node node being queried + * @param {string} xpath string containing XPath expression. + * @return {node} + * + * @since 2008.1 + * @param node + * @param xpath + * @return + */ +declare function nlapiSelectNode(node:any, xpath:string):any; + +/** + * Select an array of nodes from an XML node using XPath. Supports custom namespaces (nodes in default namespace can be referenced using "nlapi" as the prefix) + * + * @param {node} node node being queried + * @param {string} xpath string containing XPath expression. + * @return {node[]} + * + * @since 2008.1 + * @param node + * @param xpath + */ +declare function nlapiSelectNodes(node:any, xpath:string):void; + +/** + * Calculate exchange rate between two currencies as of today or an optional effective date. + * @governance 10 units + * + * @param {string, int} fromCurrency internal ID or currency code of currency we are converting from + * @param {string, int} toCurrency internal ID or currency code of currency we are converting to + * @param {string} [date] string containing date of effective exchange rate. defaults to today + * @return {float} + * + * @since 2009.1 + * @param fromCurrency + * @param toCurrency + * @param date? + * @return + */ +declare function nlapiExchangeRate(fromCurrency:any, toCurrency:any, date?:string):any; + +/** + * Initiates a workflow on-demand and returns the workflow instance ID for the workflow-record combination. + * @governance 20 units + * + * @param {string} recordtype record type ID of the workflow base record + * @param {int} id internal ID of the base record + * @param {string, int} workflowid internal ID or script ID for the workflow definition + * @return {int} + * + * @since 2010.1 + * @param recordtype + * @param id + * @param workflowid + * @return + */ +declare function nlapiInitiateWorkflow(recordtype:string, id:any, workflowid:any):any; + +/** + * Initiates a workflow on-demand and returns the workflow instance ID for the workflow-record combination. + * @governance 20 units + * + * @param {string} recordtype record type ID of the workflow base record + * @param {string, int} id internal ID of the base record + * @param {string, int} workflowid internal ID or script ID for the workflow definition + * @return {string} + * + * @since 2014.2 + * @param recordType + * @param id + * @param workflowId + * @param parameters + * @return + */ +declare function nlapiInitiateWorkflowAsync(recordType:any, id:any, workflowId:any, parameters:any):string; + +/** + * Triggers a workflow on a record. + * @governance 20 units + * + * @param {string} recordtype record type ID of the workflow base record + * @param {int} id internal ID of the base record + * @param {string, int} workflowid internal ID or script ID for the workflow definition + * @param {string, int} actionid internal ID or script ID of the action script + * @param {string, int} stateid internal ID or script ID of the state contains the referenced add button action + * @return {int} + * + * @since 2010.1 + * @param recordtype + * @param id + * @param workflowid + * @param actionid + * @param stateid + * @return + */ +declare function nlapiTriggerWorkflow(recordtype:string, id:any, workflowid:any, actionid:any, stateid:any):any; + +/** + * Create a subrecord on a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @retun {nlobjSubrecord} + * + * @since 2011.2 + * @param type + * @param fldnam + */ +declare function nlapiCreateCurrentLineSubrecord(type:string, fldnam:string):void; + +/** + * edit a subrecord on a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @retun {nlobjSubrecord} + * + * @since 2011.2 + * @param type + * @param fldnam + */ +declare function nlapiEditCurrentLineItemSubrecord(type:string, fldnam:string):void; + +/** + * remove a subrecord on a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @retun {void} + * + * @since 2011.2 + * @param type + * @param fldnam + */ +declare function nlapiRemoveCurrentLineItemSubrecord(type:string, fldnam:string):void; + +/** + * view a subrecord on a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @retun {nlobjSubrecord} + * + * @since 2011.2 + * @param type + * @param fldnam + */ +declare function nlapiViewCurrentLineItemSubrecord(type:string, fldnam:string):void; + +/** + * view a subrecord on a sublist field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @retun {nlobjSubrecord} + * + * @since 2011.2 + * @param type + * @param fldnam + * @param linenum + */ +declare function nlapiViewLineItemSubrecord(type:string, fldnam:string, linenum:any):void; + +/** + * get a cache object. + * @param {string} name of the cache + * @return {nlobjCache} + * + * @since 2013.2 + * @param name + * @return + */ +declare function nlapiGetCache(name:string):any; + +/** + * create a subrecord on body field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam body field name + * @retun {nlobjSubrecord} + * + * @since 2011.2 + * @param fldnam + */ +declare function createSubrecord(fldnam:string):void; + +/** + * edit a subrecord on body field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam body field name + * @retun {nlobjSubrecord} + * + * @since 2011.2 + * @param fldnam + */ +declare function editSubrecord(fldnam:string):void; + +/** + * remove a subrecord on body field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam body field name + * @retun {void} + * + * @since 2011.2 + * @param fldnam + */ +declare function removeSubrecord(fldnam:string):void; + +/** + * view a subrecord on body field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam body field name + * @retun {nlobjSubrecord} + * + * @since 2011.2 + * @param fldnam + */ +declare function viewSubrecord(fldnam:string):void; + +/** + * Return a new instance of nlobjRecord used for accessing and manipulating record objects. + * + * @classDescription Class definition for business records in the system. + * @return {nlobjRecord} + * @constructor + * + * @since 2008.2 + */ +declare interface nlobjRecord { + + /** + * + * @return + */ + new (): any; + + /** + * Return the internalId of the record or NULL for new records. + * + * @return {int} Return the integer value of the record ID. + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @return + */ + getId(): any; + + /** + * Return the recordType corresponding to this record. + * + * @return {string} The string value of the record name internal ID + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @return + */ + getRecordType(): string; + + /** + * Return field metadata for field. + * + * @param {string} fldnam field name + * @return {nlobjField} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.1 + * @param fldnam + * @return + */ + getField(fldnam:string): () => void; + + /** + * Return sublist metadata for sublist. + * + * @param {string} type sublist name + * @return {nlobjSubList} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param type + * @return + */ + getSubList(type:string): () => void; + + /** + * Return field metadata for field. + * + * @param {string} type matrix sublist name + * @param {string} fldnam matrix field name + * @param {column} linenum matrix column (1-based) + * @return {nlobjField} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param type + * @param fldnam + * @param column + * @return + */ + getMatrixField(type:string, fldnam:string, column:any): () => void; + + /** + * Return metadata for sublist field. + * + * @param {string} type sublist name + * @param {string} fldnam sublist field name + * @param {int} [linenum] line number (1-based). If empty, the current sublist field is returned. only settable for sublists of type list + * @return {nlobjField} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param type + * @param fldnam + * @param linenum? + * @return + */ + getLineItemField(type:string, fldnam:string, linenum?:any): () => void; + + /** + * Return metadata for sublist field. + * + * @param {string} type matrix sublist name + * @param {string} fldnam matrix field name + * @param {int} linenum line number + * @param {column} linenum matrix column (1-based) + * @return {nlobjField} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param type + * @param fldnam + * @param linenum + * @param column + * @return + */ + getLineItemMatrixField(type:string, fldnam:string, linenum:any, column:any): () => void; + + /** + * Set the value of a field. + * + * @param {string} name field name + * @param {string} value field value + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @param name + * @param value + * @return + */ + setFieldValue(name:string, value:string): any; + + /** + * Set the values of a multi-select field. + * + * @param {string} name field name + * @param {string[]} values string array containing field values + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @param name + * @param values + */ + setFieldValues(name:string, values:any): void; + + /** + * Return the value of a field. + * + * @param {string} name field name + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @param name + * @return + */ + getFieldValue(name:string): string; + + /** + * Return the selected values of a multi-select field as an Array. + * + * @param {string} name field name + * @return {string[]} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @param name + */ + getFieldValues(name:string): void; + + /** + * Set the value (via display value) of a select field. + * @restriction only supported for select fields + * + * @param {string} name field name + * @param {string} text field display value + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.2 + * @param name + * @param text + * @return + */ + setFieldText(name:string, text:string): any; + + /** + * Set the values (via display values) of a multi-select field. + * @restriction only supported for multi-select fields + * + * @param {string} name field name + * @param {string[]} texts array of field display values + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.2 + * @param name + * @param texts + * @return + */ + setFieldTexts(name:string, texts:any): any; + + /** + * Return the display value for a select field. + * @restriction only supported for select fields + * + * @param {string} name field name + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.2 + * @param name + * @return + */ + getFieldText(name:string): string; + + /** + * Return the selected display values of a multi-select field as an Array. + * @restriction only supported for multi-select fields + * + * @param {string} name field name + * @return {string[]} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.2 + * @param name + */ + getFieldTexts(name:string): void; + + /** + * Get the value of a matrix header field. + * + * @param {string} type matrix sublist name + * @param {string} name matrix field name + * @param {int} column matrix column index (1-based) + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param type + * @param name + * @param column + * @return + */ + getMatrixValue(type:string, name:string, column:any): string; + + /** + * Set the value of a matrix header field. + * + * @param {string} type matrix sublist name + * @param {string} name matrix field name + * @param {int} column matrix column index (1-based) + * @param {string} value field value + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param type + * @param name + * @param column + * @param value + * @return + */ + setMatrixValue(type:string, name:string, column:any, value:string): any; + + /** + * Return an Array of all field names on the record. + * + * @return {string[]} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + */ + getAllFields(): void; + + /** + * Return an Array of all field names on a record for a particular sublist. + * + * @param {string} group sublist name + * @return {string[]} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.2 + * @param group + */ + getAllLineItemFields(group:string): void; + + /** + * Set the value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {int} line line number (1-based) + * @param {string} value sublist field value + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @param group + * @param name + * @param line + * @param value + */ + setLineItemValue(group:string, name:string, line:any, value:string): void; + + /** + * Set the value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {int} line line number (1-based) + * @param {string} datetime value + * @param {string} timezone value + * + * @method + * @memberOf nlobjRecord + * + * @since 2013.2 + * @param group + * @param name + * @param line + * @param value + * @param timezone + */ + setLineItemDateTimeValue(group:string, name:string, line:any, value:any, timezone:string): void; + + /** + * Return the value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {int} line line number (1-based) + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.1 + * @param group + * @param name + * @param line + */ + getLineItemValue(group:string, name:string, line:any): void; + + /** + * Return the value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {int} line line number (1-based) + * @param {string} timezone value + * + * @method + * @memberOf nlobjRecord + * + * @since 2013.2 + * @param group + * @param name + * @param line + * @param timezone + */ + getLineItemDateTimeValue(group:string, name:string, line:any, timezone:string): void; + + /** + * Return the text value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {int} line line number (1-based) + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2008.2 + * @param group + * @param name + * @param line + * @return + */ + getLineItemText(group:string, name:string, line:any): string; + + /** + * Set the current value of a sublist field. + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {string} value sublist field value + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param name + * @param value + * @return + */ + setCurrentLineItemValue(group:string, name:string, value:string): any; + + /** + * Set the current value of a sublist field. + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {string} value sublist field value + * @param {string} timezone value + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2013.2 + * @param group + * @param name + * @param value + * @param timezone + * @return + */ + setCurrentLineItemDateTimeValue(group:string, name:string, value:string, timezone:string): any; + + /** + * Return the current value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param name + * @return + */ + getCurrentLineItemValue(group:string, name:string): string; + + /** + * Return the current value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {string} timezone value + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2013.2 + * @param group + * @param name + * @param timezone + * @return + */ + getCurrentLineItemDateTimeValue(group:string, name:string, timezone:string): string; + + /** + * Return the current display value of a sublist field. + * + * @param {string} group sublist name + * @param {string} name sublist field name + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param name + * @return + */ + getCurrentLineItemText(group:string, name:string): string; + + /** + * Set the current value of a sublist matrix field. + * + * @param {string} group matrix sublist name + * @param {string} name matrix field name + * @param {int} column matrix field column index (1-based) + * @param {string} value matrix field value + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param name + * @param column + * @param value + * @return + */ + setCurrentLineItemMatrixValue(group:string, name:string, column:any, value:string): any; + + /** + * Return the current value of a sublist matrix field. + * + * @param {string} group matrix sublist name + * @param {string} name matrix field name + * @param {int} column matrix field column index (1-based) + * @return {string} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param name + * @param column + * @return + */ + getCurrentLineItemMatrixValue(group:string, name:string, column:any): string; + + /** + * Return the number of columns for a matrix field. + * + * @param {string} group matrix sublist name + * @param {string} name matrix field name + * @return {int} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param name + * @return + */ + getMatrixCount(group:string, name:string): any; + + /** + * Return the number of lines in a sublist. + * + * @param {string} group sublist name + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + */ + getLineItemCount(group:string): void; + + /** + * Return line number for 1st occurence of field value in a sublist column. + * + * @param {string} group sublist name + * @param {string} fldnam sublist field name + * @param {string} value sublist field value + * @return {int} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param fldnam + * @param value + * @return + */ + findLineItemValue(group:string, fldnam:string, value:string): any; + + /** + * Return line number for 1st occurence of field value in a sublist column. + * + * @param {string} group sublist name + * @param {string} fldnam sublist field name + * @param {int} column matrix column index (1-based) + * @param {string} value matrix field value + * @return {int} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param fldnam + * @param column + * @param value + * @return + */ + findLineItemMatrixValue(group:string, fldnam:string, column:any, value:string): any; + + /** + * Insert a new line into a sublist. + * + * @param {string} group sublist name + * @param {int} [line] line index at which to insert line + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param line? + */ + insertLineItem(group:string, line?:any): void; + + /** + * Remove an existing line from a sublist. + * + * @param {string} group sublist name + * @param {int} [line] line number to remove + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param line? + */ + removeLineItem(group:string, line?:any): void; + + /** + * Insert and select a new line in a sublist. + * + * @param {string} group sublist name + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @return + */ + selectNewLineItem(group:string): any; + + /** + * Select an existing line in a sublist. + * + * @param {string} group sublist name + * @param {int} line line number to select + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @param line + * @return + */ + selectLineItem(group:string, line:any): any; + + /** + * Commit the current line in a sublist. + * + * @param {string} group sublist name + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 2009.2 + * @param group + * @return + */ + commitLineItem(group:string): any; + + /** + * set the value of a field. + * + * @param {string} name field name + * @param {string} value field value + * @return {void} + * + * @method + * @memberOf nlobjRecord + * + * @since 20013.2 + * @param name + * @param value + * @param timezone + * @return + */ + setDateTimeValue(name:string, value:string, timezone:string): any; + + /** + * Return the value of a field on the current record on a page. + * @restriction supported in client and user event scripts only. + * @param {string} fldnam the field name + * @param {string} timezone Olson value + * @return {string} + * + * @since 2013.2 + * @param fldnam + * @param timezone + * @return + */ + getDateTimeValue(fldnam:string, timezone:string): string; +} + +/** + * Return a new instance of nlobjConfiguration.. + * + * @classDescription Class definition for interacting with setup/configuration pages + * @return {nlobjConfiguration} + * @constructor + * + * @since 2009.2 + */ +declare interface nlobjConfiguration { + + /** + * + * @return + */ + new (): any; + + /** + * return the type corresponding to this setup record. + * + * @return {string} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @return + */ + getType(): string; + + /** + * return field metadata for field. + * + * @param {string} fldnam field name + * @return {nlobjField} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param fldnam + * @return + */ + getField(fldnam:string): () => void; + + /** + * set the value of a field. + * + * @param {string} name field name + * @param {string} value field value + * @return {void} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + * @param value + * @return + */ + setFieldValue(name:string, value:string): any; + + /** + * Set the values of a multi-select field. + * @restriction only supported for multi-select fields + * + * @param {string} name field name + * @param {string[]} value field values + * @return {void} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + * @param value + * @return + */ + setFieldValues(name:string, value:any): any; + + /** + * return the value of a field. + * + * @param {string} name field name + * @return {string} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + * @return + */ + getFieldValue(name:string): string; + + /** + * return the selected values of a multi-select field as an Array. + * @restriction only supported for multi-select fields + * + * @param {string} name field name + * @return {string[]} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + */ + getFieldValues(name:string): void; + + /** + * set the value (via display value) of a field. + * @restriction only supported for select fields + * + * @param {string} name field name + * @param {string} text field display text + * @return {void} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + * @param text + * @return + */ + setFieldText(name:string, text:string): any; + + /** + * set the values (via display values) of a multi-select field. + * @restriction only supported for multi-select fields + * + * @param {string} name field name + * @param {string[]} texts array of field display text values + * @return {void} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + * @param texts + * @return + */ + setFieldTexts(name:string, texts:any): any; + + /** + * return the text value of a field. + * @restriction only supported for select fields + * + * @param {string} name field name + * @return {string} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + * @return + */ + getFieldText(name:string): string; + + /** + * return the selected text values of a multi-select field as an Array. + * @param {string} name field name + * @return {string[]} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + * @param name + */ + getFieldTexts(name:string): void; + + /** + * return an Array of all field names on the record. + * @return {string[]} + * + * @method + * @memberOf nlobjConfiguration + * + * @since 2009.2 + */ + getAllFields(): void; +} + +/** + * Return a new instance of nlobjFile used for accessing and manipulating files in the file cabinet. + * + * @classDescription Encapsulation of files (media items) in the file cabinet. + * @return {nlobjFile} + * @constructor + * + * @since 2009.1 + */ +declare interface nlobjFile { + + /** + * + * @return + */ + new (): any; + + /** + * Return the name of the file. + * @return {string} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getName(): string; + + /** + * Sets the name of a file. + * @param {string} name the name of the file + * @return {void} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @param name + * @return + */ + setName(name:string): any; + + /** + * return the internal ID of the folder that this file is in. + * @return {int} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getFolder(): any; + + /** + * sets the internal ID of the folder that this file is in. + * @param {int} folder + * @return {void} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @param folder + * @return + */ + setFolder(folder:any): any; + + /** + * sets the character encoding for the file. + * @param {String} encoding + * @return {void} + * + * @method + * @memberOf nlobjFile + * + * @since 2010.2 + * @param encoding + * @return + */ + setEncoding(encoding:string): any; + + /** + * return true if the file is "Available without Login". + * @return {boolean} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + isOnline(): boolean; + + /** + * sets the file's "Available without Login" status. + * @param {boolean} online + * @return {void} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @param online + * @return + */ + setIsOnline(online:boolean): any; + + /** + * return true if the file is inactive. + * @return {boolean} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + isInactive(): boolean; + + /** + * sets the file's inactive status. + * @param {boolean} inactive + * @return {void} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @param inactive + * @return + */ + setIsInactive(inactive:boolean): any; + + /** + * return the file description. + * @return {string} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getDescription(): string; + + /** + * sets the file's description. + * @param {string} descr the file description + * @return {void} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @param descr + * @return + */ + setDescription(descr:string): any; + + /** + * Return the id of the file (if stored in the FC). + * @return {int} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getId(): any; + + /** + * Return the size of the file in bytes. + * @return {int} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getSize(): any; + + /** + * Return the URL of the file (if stored in the FC). + * @return {string} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getURL(): string; + + /** + * Return the type of the file. + * @return {string} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getType(): string; + + /** + * Return the value (base64 encoded for binary types) of the file. + * @return {string} + * + * @method + * @memberOf nlobjFile + * + * @since 2009.1 + * @return + */ + getValue(): string; +} + +/** + * Return a new instance of nlobjSearchFilter filter objects used to define search criteria. + * + * @classDescription search filter + * @constructor + * @param {string} name filter name. + * @param {string} join internal ID for joined search where this filter is defined + * @param {string} operator operator name (i.e. anyOf, contains, lessThan, etc..) + * @param {string|string[]} value + * @param {string} value2 + * @return {nlobjSearchFilter} + * + * @since 2007.0 + */ +declare interface nlobjSearchFilter { + + /** + * + * @param name + * @param join + * @param operator + * @param value + * @param value2 + * @return + */ + new (name:string, join:string, operator:string, value:any, value2:string): any; + + /** + * Return the name of this search filter. + * @return {string} + * + * @method + * @memberOf nlobjSearchFilter + * + * @since 2007.0 + * @return + */ + getName(): string; + + /** + * Return the join id for this search filter. + * @return {string} + * + * @method + * @memberOf nlobjSearchFilter + * + * @since 2008.1 + * @return + */ + getJoin(): string; + + /** + * Return the filter operator used. + * @return {string} + * + * @method + * @memberOf nlobjSearchFilter + * + * @since 2008.2 + * @return + */ + getOperator(): string; +} + +/** + * Return a new instance of nlobjSearchColumn used for column objects used to define search return columns. + * + * @classDescription search column. + * @return {nlobjSearchColumn} + * @constructor + * @param {string} name column name. + * @param {string} join internal ID for joined search where this column is defined + * @param {string} summary + * + * @since 2007.0 + */ +declare interface nlobjSearchColumn { + + /** + * + * @param name + * @param join + * @param summary + * @return + */ + new (name:string, join:string, summary:string): any; + + /** + * return the name of this search column. + * @return {string} + * + * @method + * @memberOf nlobjSearchColumn + * @since 2008.1 + * @return + */ + getName(): string; + + /** + * return the join id for this search column. + * @return {string} + * + * @method + * @memberOf nlobjSearchColumn + * @since 2008.1 + * @return + */ + getJoin(): string; + + /** + * return the label of this search column. + * @return {string} + * + * @method + * @memberOf nlobjSearchColumn + * + * @since 2009.1 + * @return + */ + getLabel(): string; + + /** + * return the summary type (avg,group,sum,count) of this search column. + * @return {string} + * + * @method + * @memberOf nlobjSearchColumn + * @since 2008.1 + * @return + */ + getSummary(): string; + + /** + * return formula for this search column. + * @return {string} + * + * @method + * @memberOf nlobjSearchColumn + * + * @since 2009.2 + * @return + */ + getFormula(): string; + + /** + * return nlobjSearchColumn sorted in either ascending or descending order. + * @return {nlobjSearchColumn} + * @param {boolean} sort if not set, defaults to false, which returns column data in ascending order. + * + * @method + * @memberOf nlobjSearchColumn + * + * @since 2010.1 + * @param order + * @return + */ + setSort(order:any): (name:string, join:string, summary:string) => void; +} + +/** + * Return a new instance of nlobjSearchResult used for search result row object. + * + * @classDescription Class definition for interacting with the results of a search operation + * @return {nlobjSearchResult} + * @constructor + */ +declare interface nlobjSearchResult { + + /** + * + * @return + */ + new (): any; + + /** + * return the internalId for the record returned in this row. + * @method + * @memberOf nlobjSearchResult + * @return {int} + * @return + */ + getId(): any; + + /** + * return the recordtype for the record returned in this row. + * @method + * @memberOf nlobjSearchResult + * @return {string} + * @return + */ + getRecordType(): string; + + /** + * return the value for a return column specified by name, join ID, and summary type. + * @param {string} name the name of the search column + * @param {string} join the join ID for the search column + * @param {string} summary summary type specified for this column + * @return {string} + * + * @method + * @memberOf nlobjSearchResult + * + * @since 2008.1 + * @param name + * @param join + * @param summary + * @return + */ + getValue(name:string, join:string, summary:string): string; + + /** + * return the text value of this return column if it's a select field. + * @param {string} name the name of the search column + * @param {string} join the join ID for the search column + * @param {string} summary summary type specified for this column + * @return {string} + * + * @method + * @memberOf nlobjSearchResult + * + * @since 2008.1 + * @param name + * @param join + * @param summary + * @return + */ + getText(name:string, join:string, summary:string): string; + + /** + * return an array of all nlobjSearchColumn objects returned in this search. + * @return {nlobjSearchColumn[]} + * + * @method + * @memberOf nlobjSearchResult + * + * @since 2009.2 + */ + getAllColumns(): void; +} + +/** + * Return a new instance of nlobjContext used for user and script context information. + * + * @classDescription Utility class providing information about the current user and the script runtime. + * @return {nlobjContext} + * @constructor + */ +declare interface nlobjContext { + + /** + * + * @return + */ + new (): any; + + /** + * return the name of the current user. + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getName(): string; + + /** + * return the internalId of the current user. + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getUser(): string; + + /** + * return the internalId of the current user's role. + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getRole(): string; + + /** + * return the script ID of the current user's role. + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2008.2 + * @return + */ + getRoleId(): string; + + /** + * return the internalId of the current user's center type. + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2008.2 + * @return + */ + getRoleCenter(): string; + + /** + * return the email address of the current user. + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getEmail(): string; + + /** + * return the internal ID of the contact logged in on behalf of a customer, vendor, or partner. It returns -1 for non-contact logins + * @return {int} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.1 + * @return + */ + getContact(): any; + + /** + * return the account ID of the current user. + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getCompany(): string; + + /** + * return the internalId of the current user's department. + * @return {int} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getDepartment(): any; + + /** + * return the internalId of the current user's location. + * @return {int} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getLocation(): any; + + /** + * return the internalId of the current user's subsidiary. + * @return {int} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getSubsidiary(): any; + + /** + * return the execution context for this script: webServices|csvImport|client|userInterface|scheduledScript|portlet|suitelet|debugger|custommassupdate + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getExecutionContext(): string; + + /** + * return the amount of usage units remaining for this script. + * @return {int} + * + * @method + * @memberOf nlobjContext + * + * @since 2007.0 + * @return + */ + getRemainingUsage(): any; + + /** + * return true if feature is enabled, false otherwise + * @param {string} name + * @return {boolean} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @param name + * @return + */ + getFeature(name:string): boolean; + + /** + * return current user's permission level (0-4) for this permission + * @param {string} name + * @return {int} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @param name + * @return + */ + getPermission(name:string): any; + + /** + * return system or script preference selection for current user + * @param {string} name + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @param name + * @return + */ + getPreference(name:string): string; + + /** + * return value of session object set by script + * @param {string} name + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @param name + * @return + */ + getSessionObject(name:string): string; + + /** + * set the value of a session object using a key. + * @param {string} name + * @param {string} value + * @return {void} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @param name + * @param value + * @return + */ + setSessionObject(name:string, value:string): any; + + /** + * return an array containing the names of all keys used to set session objects + * @return {string[]} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + */ + getAllSessionObjects(): void; + + /** + * return the NetSuite version for the current account + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @return + */ + getVersion(): string; + + /** + * return the environment that the script is executing in: SANDBOX, PRODUCTION, BETA, INTERNAL + * @since 2008.2 + */ + getEnvironment(): void; + + /** + * return the logging level for the current script execution. Not supported in CLIENT scripts + * @since 2008.2 + */ + getLogLevel(): void; + + /** + * return the script ID for the current script + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @return + */ + getScriptId(): string; + + /** + * return the deployment ID for the current script + * @return {string} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @return + */ + getDeploymentId(): string; + + /** + * return the % complete specified for the current scheduled script execution + * @return {int} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @return + */ + getPercentComplete(): any; + + /** + * set the % complete for the current scheduled script execution + * @param {float} ct the percentage of records completed + * @return {void} + * + * @method + * @memberOf nlobjContext + * + * @since 2009.2 + * @param pct + * @return + */ + setPercentComplete(pct:any): any; + + /** + * return a system/script setting. Types are SCRIPT, SESSION, FEATURE, PERMISSION + * + * @param {string} type + * @param {string} name + * @since 2007.0 + * @deprecated + * @param type + * @param name + */ + getSetting(type:string, name:string): void; + + /** + * set a system/script setting. Only supported type is SESSION + * + * @param {string} type + * @param {string} name + * @param {string} value + * @since 2007.0 + * @deprecated + * @param type + * @param name + * @param value + */ + setSetting(type:string, name:string, value:string): void; + + /** + * return an Object containing name/value pairs of color groups to their corresponding RGB hex color based on the currenly logged in user's color them preferences. + * @return {Object} + * + * @method + * @memberOf nlobjContext + * + * @since 2010.1 + * @return + */ + getColorPreferences(): any; + + /** + * return the runtime version of SuiteScript, could be 1.0 or 2.0 + * @return {Object} + * + * @method + * @memberOf nlobjContext + * + * @since 2014.1 + * @return + */ + getRuntimeVersion(): any; +} + +/** + * Return a new instance of nlobjError used system or user-defined error object. + * + * @classDescription Encapsulation of errors thrown during script execution. + * @return {nlobjError} + * @constructor + */ +declare interface nlobjError { + + /** + * + * @return + */ + new (): any; + + /** + * return the error db ID for this error (if it was an unhandled unexpected error). + * @return {string} + * + * @method + * @memberOf nlobjError + * + * @since 2008.2 + * @return + */ + getId(): string; + + /** + * return the error code for this system or user-defined error. + * @return {string} + * + * @method + * @memberOf nlobjError + * + * @since 2008.2 + * @return + */ + getCode(): string; + + /** + * return the error description for this error. + * @return {string} + * + * @method + * @memberOf nlobjError + * + * @since 2008.2 + * @return + */ + getDetails(): string; + + /** + * return a stacktrace containing the location of the error. + * @return {string[]} + * + * @method + * @memberOf nlobjError + * + * @since 2008.2 + */ + getStackTrace(): void; + + /** + * return the userevent script name where this error was thrown. + * @return {string} + * + * @method + * @memberOf nlobjError + * + * @since 2008.2 + * @return + */ + getUserEvent(): string; + + /** + * return the internalid of the record if this error was thrown in an aftersubmit script. + * @return {int} + * + * @method + * @memberOf nlobjError + * + * @since 2008.2 + * @return + */ + getInternalId(): any; +} + +/** + * Return a new instance of nlobjServerResponse.. + * + * @classDescription Contains the results of a server response to an outbound Http(s) call. + * @return {nlobjServerResponse} + * @constructor + * + * @since 2008.1 + */ +declare interface nlobjServerResponse { + + /** + * + * @return + */ + new (): any; + + /** + * return the Content-Type header in response + * @return {string} + * + * @method + * @memberOf nlobjServerResponse + * + * @since 2008.1 + * @return + */ + getContentType(): string; + + /** + * return the value of a header returned. + * @param {string} name the name of the header to return + * @return {string} + * + * @method + * @memberOf nlobjServerResponse + * + * @since 2008.1 + * @param name + * @return + */ + getHeader(name:string): string; + + /** + * return all the values of a header returned. + * @param {string} name the name of the header to return + * @return {string[]} + * + * @method + * @memberOf nlobjServerResponse + * + * @since 2008.1 + * @param name + */ + getHeaders(name:string): void; + + /** + * return an Array of all headers returned. + * @return {string[]} + * + * @method + * @memberOf nlobjServerResponse + * + * @since 2008.1 + */ + getAllHeaders(): void; + + /** + * return the response code returned. + * @return {int} + * + * @method + * @memberOf nlobjServerResponse + * + * @since 2008.1 + * @return + */ + getCode(): any; + + /** + * return the response body returned. + * @return {string} + * + * @method + * @memberOf nlobjServerResponse + * + * @since 2008.1 + * @return + */ + getBody(): string; + + /** + * return the nlobjError thrown via a client call to nlapiRequestURL. + * @return {nlobjError} + * + * @method + * @memberOf nlobjServerResponse + * + * @since 2008.1 + * @return + */ + getError(): () => void; +} + +/** + * Return a new instance of nlobjResponse used for scripting web responses in Suitelets + * + * @classDescription Accessor to Http response made available to Suitelets. + * @return {nlobjResponse} + * @constructor + */ +declare interface nlobjResponse { + + /** + * + * @return + */ + new (): any; + + /** + * add a value for a response header. + * @param {string} name of header + * @param {string} value for header + * @return {void} + * + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param name + * @param value + * @return + */ + addHeader(name:string, value:string): any; + + /** + * set the value of a response header. + * @param {string} name of header + * @param {string} value for header + * @return {void} + * + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param name + * @param value + * @return + */ + setHeader(name:string, value:string): any; + + /** + * return the value of a response header. + * @param {string} name of header + * @return {string} + * + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @return + */ + getHeader(): string; + + /** + * return an Array of all response header values for a header + * @param {string} name of header + * @return {string[]} + * + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param name + */ + getHeaders(name:string): void; + + /** + * return an Array of all response headers + * @return {Object} + * + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @return + */ + getAllHeaders(): any; + + /** + * suppress caching for this response. + * @return {void} + * + * @method + * @memberOf nlobjResponse + * + * @since 2009.1 + * @return + */ + sendNoCache(): any; + + /** + * sets the content type for the response (and an optional filename for binary output). + * + * @param {string} type the file type i.e. plainText, word, pdf, htmldoc (see list of media item types) + * @param {string} filename the file name + * @param {string} disposition Content Disposition used for streaming attachments: inline|attachment + * @return {void} + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param type + * @param filename + * @param disposition + * @return + */ + setContentType(type:string, filename:string, disposition:string): any; + + /** + * sets the redirect URL for the response. all URLs must be internal unless the Suitelet is being executed in an "Available without Login" context + * at which point it can use type "external" to specify an external url via the subtype arg + * + * @param {string} type type specifier for URL: suitelet|tasklink|record|mediaitem|external + * @param {string} subtype subtype specifier for URL (corresponding to type): scriptid|taskid|recordtype|mediaid|url + * @param {string} [id] internal ID specifier (sub-subtype corresponding to type): deploymentid|n/a|recordid|n/a + * @param {string} [pagemode] string specifier used to configure page (suitelet: external|internal, tasklink|record: edit|view) + * @param {Object} [parameters] Object used to specify additional URL parameters as name/value pairs + * @return {void} + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param type + * @param subtype + * @param id? + * @param pagemode? + * @param parameters? + * @return + */ + sendRedirect(type:string, subtype:string, id?:string, pagemode?:string, parameters?:any): any; + + /** + * write information (text/xml/html) to the response. + * + * @param {string} output + * @return {void} + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param output + * @return + */ + write(output:string): any; + + /** + * write line information (text/xml/html) to the response. + * + * @param {string} output + * @return {void} + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param output + * @return + */ + writeLine(output:string): any; + + /** + * write a UI object page. + * + * @param {Object} pageobject page UI object: nlobjList|nlobjAssistant|nlobjForm|nlobjDashboard + * @return {void} + * @method + * @memberOf nlobjResponse + * + * @since 2008.2 + * @param pageobject + * @return + */ + writePage(pageobject:any): any; + + /** + * sets the character encoding for the response. + * @param {String} encoding + * @return {void} + * @method + * @memberOf nlobjResponse + * + * @since 2012.2 + * @param encoding + * @return + */ + setEncoding(encoding:string): any; +} + +/** + * Return a new instance of nlobjRequest used for scripting web requests in Suitelets + * + * @classDescription Accessor to Http request data made available to Suitelets + * @return {nlobjRequest} + * @constructor + */ +declare interface nlobjRequest { + + /** + * + * @return + */ + new (): any; + + /** + * return the value of a request parameter. + * + * @param {string} name parameter name + * @return {string} + * @method + * @memberOf nlobjRequest + * + * @since 2008.2 + * @param name + * @return + */ + getParameter(name:string): string; + + /** + * return the values of a request parameter as an Array. + * + * @param {string} name parameter name + * @return {string[]} + * @method + * @memberOf nlobjRequest + * + * @since 2008.2 + * @param name + */ + getParameterValues(name:string): void; + + /** + * return an Object containing all the request parameters and their values. + * @return {Object} + * @method + * @memberOf nlobjRequest + * + * @since 2008.2 + * @return + */ + getAllParameters(): any; + + /** + * return the value of a sublist value. + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {int} line sublist line number + * @return {string} + * + * @method + * @memberOf nlobjRequest + * + * @since 2008.2 + * @param group + * @param name + * @param line + * @return + */ + getLineItemValue(group:string, name:string, line:any): string; + + /** + * return the number of lines in a sublist. + * @param {string} group sublist name + * @return {int} + * + * @method + * @memberOf nlobjRequest + * + * @since 2008.2 + * @param group + * @return + */ + getLineItemCount(group:string): any; + + /** + * return the value of a request header. + * @param {string} name + * @return {string} + * + * @method + * @memberOf nlobjRequest + * + * @since 2008.2 + * @param name + * @return + */ + getHeader(name:string): string; + + /** + * return an Object containing all the request headers and their values. + * @return {Object} + * + * @method + * @memberOf nlobjRequest + * + * @since 2008.2 + * @return + */ + getAllHeaders(): any; + + /** + * return the value of an uploaded file. + * @param {string} name file field name + * @return {nlobjFile} + * + * @method + * @memberOf nlobjRequest + * + * @since 2009.1 + * @param name + * @return + */ + getFile(name:string): () => void; + + /** + * return an Object containing field names to file objects for all uploaded files. + * @return {Object} + * + * @method + * @memberOf nlobjRequest + * + * @since 2009.1 + * @return + */ + getAllFiles(): any; + + /** + * return the body of the POST request + * @return {string} + * + * @method + * @memberOf nlobjRequest + * @since 2008.1 + * @return + */ + getBody(): string; + + /** + * return the URL of the request + * @return {string} + * + * @method + * @memberOf nlobjRequest + * @since 2008.1 + * @return + */ + getURL(): string; + + /** + * return the METHOD of the request + * @return {string} + * + * @method + * @memberOf nlobjRequest + * @since 2008.1 + * @return + */ + getMethod(): string; +} + +/** + * Return a new instance of nlobjPortlet used for scriptable dashboard portlet. + * + * @classDescription UI Object used for building portlets that are displayed on dashboard pages + * @return {nlobjPortlet} + * @constructor + */ +declare interface nlobjPortlet { + + /** + * + * @return + */ + new (): any; + + /** + * set the portlet title. + * + * @param {string} title + * @since 2008.2 + * @param title + */ + setTitle(title:string): void; + + /** + * set the entire contents of the HTML portlet (will be placed inside a ...). + * + * @param {string} html + * @since 2008.2 + * @param html + */ + setHtml(html:string): void; + + /** + * add a column (nlobjColumn) to this LIST portlet and return it. + * + * @param {string} name column name + * @param {string} type column type + * @param {string} label column label + * @param {string} [align] column alignment + * @since 2008.2 + * @param name + * @param type + * @param label + * @param align? + */ + addColumn(name:string, type:string, label:string, align?:string): void; + + /** + * add an Edit column (nlobjColumn) to the left of the column specified (supported on LIST portlets only). + * + * @param {nlobjColumn} column + * @param {boolean} showView should Edit|View instead of Edit link + * @param {string} [showHref] column that evaluates to T or F that determines whether to disable the edit|view link per-row. + * @return {nlobjColumn} + * + * @since 2008.2 + * @param column + * @param showView + * @param showHref? + * @return + */ + addEditColumn(column:() => void, showView:boolean, showHref?:string): () => void; + + /** + * add a row (nlobjSearchResult or Array of name-value pairs) to this LIST portlet. + * + * @param {string[]|nlobjSearchResult} row + * @since 2008.2 + * @param row + */ + addRow(row:any): void; + + /** + * add multiple rows (Array of nlobjSearchResults or name-value pair Arrays) to this LIST portlet. + * + * @param {string[][]|nlobjSearchResult[]} rows + * @since 2008.2 + * @param rows + */ + addRows(rows:any): void; + + /** + * add a field (nlobjField) to this FORM portlet and return it. + * + * @param {string} name field name + * @param {string} type field type + * @param {string} [label] field label + * @param {string, int} [source] script ID or internal ID for source list (select and multiselects only) -or- radio value for radio fields + * @return {nlobjField} + * + * @since 2008.2 + * @param name + * @param type + * @param label? + * @param source + * @return + */ + addField(name:string, type:string, label?:string, source?:any): () => void; + + /** + * add a FORM submit button to this FORM portlet. + * + * @param {string} url URL that this form portlet will POST to + * @param {string} [label] label for submit button (defaults to Save) + * @since 2008.2 + * @param url + * @param label? + */ + setSubmitButton(url:string, label?:string): void; + + /** + * add a line (containing text or simple HTML) with optional indenting and URL to this LINKS portlet. + * + * @param {string} text data to output to line + * @param {string} [url] URL if this line should be clickable (if NULL then line will not be clickable) + * @param {int} indent # of indents to insert before text + * @since 2008.2 + * @param text + * @param url? + * @param indent + */ + addLine(text:string, url?:string, indent?:any): void; +} + +/** + * Return a new instance of nlobjList used for scriptable list page. + * + * @classDescription UI Object page type used for building lists + * @return {nlobjList} + * @constructor + */ +declare interface nlobjList { + + /** + * + * @return + */ + new (): any; + + /** + * set the page title. + * + * @param {string} title + * @since 2008.2 + * @param title + */ + setTitle(title:string): void; + + /** + * set the global style for this list: grid|report|plain|normal. + * + * @param {string} style overall style used to render list + * @since 2008.2 + * @param style + */ + setStyle(style:string): void; + + /** + * set the Client SuiteScript used for this page. + * + * @param {string, int} script script ID or internal ID for global client script used to enable Client SuiteScript on page + * @since 2008.2 + * @param script + */ + setScript(script:any): void; + + /** + * add a column (nlobjColumn) to this list and return it. + * + * @param {string} name column name + * @param {string} type column type + * @param {string} label column label + * @param {string} [align] column alignment + * @return {nlobjColumn} + * + * @since 2008.2 + * @param name + * @param type + * @param label + * @param align? + * @return + */ + addColumn(name:string, type:string, label:string, align?:string): () => void; + + /** + * add an Edit column (nlobjColumn) to the left of the column specified. + * + * @param {nlobjColumn} column + * @param {boolean} showView should Edit|View instead of Edit link + * @param {string} [showHref] column that evaluates to T or F that determines whether to disable the edit|view link per-row. + * @return {nlobjColumn} + * + * @since 2008.2 + * @param column + * @param showView + * @param showHref? + * @return + */ + addEditColumn(column:() => void, showView:boolean, showHref?:string): () => void; + + /** + * add a row (Array of name-value pairs or nlobjSearchResult) to this portlet. + * + * @param {string[], nlobjSearchResult} row data used to add a single row + * @since 2008.2 + * @param row + */ + addRow(row:any): void; + + /** + * add multiple rows (Array of nlobjSearchResults or name-value pair Arrays) to this portlet. + * + * @param {string[][], nlobjSearchResult[]} rows data used to add multiple rows + * @since 2008.2 + * @param rows + */ + addRows(rows:any): void; + + /** + * add a button (nlobjButton) to the footer of this page. + * + * @param {string} name button name + * @param {string} label button label + * @param {string} script button script (function name) + * @since 2008.2 + * @param name + * @param label + * @param script + */ + addButton(name:string, label:string, script:string): void; + + /** + * add a navigation cross-link to the page. + * + * @param {string} type page link type: crosslink|breadcrumb + * @param {string} title page link title + * @param {string} url URL for page link + * @since 2008.2 + * @param type + * @param title + * @param url + */ + addPageLink(type:string, title:string, url:string): void; +} + +/** + * Return a new instance of nlobjForm used for scriptable form page. + * + * @classDescription UI Object page type used for building basic data entry forms. + * @return {nlobjForm} + * @constructor + */ +declare interface nlobjForm { + + /** + * + * @return + */ + new (): nlobjForm; + + /** + * set the page title. + * + * @param {string} title + * @since 2008.2 + * @param title + */ + setTitle(title:string): void; + + /** + * set additional title Html. INTERNAL ONLY + * + * @param {string} title + * @since 2008.2 + * @param html + */ + addTitleHtml(html:any): void; + + /** + * set the Client Script definition used for this page. + * + * @param {string, int} script script ID or internal ID for global client script used to enable Client SuiteScript on page + * @since 2008.2 + * @param script + */ + setScript(script:any): void; + + /** + * set the values for all the fields on this form. + * + * @param {Object} values Object containing field name/value pairs + * @since 2008.2 + * @param values + */ + setFieldValues(values:any): void; + + /** + * add a navigation cross-link to the page. + * + * @param {string} type page link type: crosslink|breadcrumb + * @param {string} title page link title + * @param {string} url URL for page link + * @since 2008.2 + * @param type + * @param title + * @param url + */ + addPageLink(type:string, title:string, url:string): void; + + /** + * add a button to this form. + * + * @param {string} name button name + * @param {string} label button label + * @param {string} script button script (function name) + * @return {nlobjButton} + * + * @since 2008.2 + * @param name + * @param label + * @param script + * @return + */ + addButton(name:string, label:string, script?:string): nlobjButton; + + /** + * get a button from this form by name. + * @param {string} name + * @return {nlobjButton} + * + * @method + * @memberOf nlobjForm + * + * @since 2009.2 add + * @param name + * @return + */ + getButton(name:string): nlobjButton; + + /** + * add a reset button to this form. + * + * @param {string} [label] label for this button. defaults to "Reset" + * @return {nlobjButton} + * + * @since 2008.2 + * @param label? + * @return + */ + addResetButton(label?:string): nlobjButton; + + /** + * add a submit button to this form. + * + * @param {string} [label] label for this submit button. defaults to "Save" + * @return {nlobjButton} + * + * @since 2008.2 + * @param label? + * @return + */ + addSubmitButton(label?:string): nlobjButton; + + /** + * add a tab (nlobjTab) to this form and return it. + * + * @param {string} name tab name + * @param {string} label tab label + * @return {nlobjTab} + * + * @since 2008.2 + * @param name + * @param label + * @return + */ + addTab(name:string, label:string): nlobjTab; + + /** + * add a field (nlobjField) to this form and return it. + * + * @param {string} name field name + * @param {string} type field type + * @param {string} [label] field label + * @param {string, int} [source] script ID or internal ID for source list (select and multiselects only) -or- radio value for radio fields + * @param {string} [tab] tab name that this field will live on. If empty then the field is added to the main section of the form (immediately below the title bar) + * @return {nlobjField} + * + * @since 2008.2 + * @param name + * @param type + * @param label? + * @param sourceOrRadio + * @param tab? + * @return + */ + addField(name:string, type:string, label?:string, sourceOrRadio?:any, tab?:string): nlobjField; + + /** + * + * @param name + * @param label + * @param domain + * @param scriptId + * @param value + */ + addCredentialField(name:string, label:string, website?:string, scriptId?:string, value?:string, entityMatch?:boolean, tab?:string): nlobjField; + + /** + * add a subtab (nlobjTab) to this form and return it. + * + * @param {string} name subtab name + * @param {string} label subtab label + * @param {string} [tab] parent tab that this subtab lives on. If empty, it is added to the main tab. + * @return {nlobjTab} + * + * @since 2008.2 + * @param name + * @param label + * @param tab? + * @return + */ + addSubTab(name:string, label:string, tab?:string): nlobjTab; + + /** + * add a sublist (nlobjSubList) to this form and return it. + * + * @param {string} name sublist name + * @param {string} type sublist type: inlineeditor|editor|list|staticlist + * @param {string} label sublist label + * @param {string} [tab] parent tab that this sublist lives on. If empty, it is added to the main tab + * @return {nlobjSubList} + * + * @since 2008.2 + * @param name + * @param type + * @param label + * @param tab? + * @return + */ + addSubList(name:string, type:string, label:string, tab?:string): nlobjSubList; + + /** + * insert a tab (nlobjTab) before another tab (name). + * + * @param {nlobjTab} tab the tab object to insert + * @param {string} nexttab the name of the tab before which to insert this tab + * @return {nlobjTab} + * + * @since 2008.2 + * @param tab + * @param nexttab + * @return + */ + insertTab(tab:() => void, nexttab:string): nlobjTab; + + /** + * insert a field (nlobjField) before another field (name). + * + * @param {nlobjField} field the field object to insert + * @param {string} nextfld the name of the field before which to insert this field + * @return {nlobjField} + * + * @since 2008.2 + * @param field + * @param nextfld + * @return + */ + insertField(field:() => void, nextfld:string): nlobjField; + + /** + * insert a subtab (nlobjTab) before another subtab or sublist (name). + * + * @param {nlobjTab} subtab the subtab object to insert + * @param {string} nextsubtab the name of the subtab before which to insert this subtab + * @return {nlobjTab} + * + * @since 2008.2 + * @param subtab + * @param nextsubtab + * @return + */ + insertSubTab(subtab:() => void, nextsubtab:string): nlobjTab; + + /** + * insert a sublist (nlobjSubList) before another subtab or sublist (name). + * + * @param {nlobjSubList} sublist the sublist object to insert + * @param {string} nextsublist the name of the sublist before which to insert this sublist + * @return {nlobjSubList} + * + * @since 2008.2 + * @param sublist + * @param nextsublist + * @return + */ + insertSubList(sublist:() => void, nextsublist:string): nlobjSubList; + + /** + * return a tab (nlobjTab) on this form. + * + * @param {string} name tab name + * @return {nlobjTab} + * + * @since 2008.2 + * @param name + * @return + */ + getTab(name:string): nlobjTab; + + /** + * return a field (nlobjField) on this form. + * + * @param {string} name field name + * @param {string} [radio] if this is a radio field, specify which radio field to return based on radio value + * @return {nlobjField} + * + * @since 2008.2 + * @param name + * @param radio? + * @return + */ + getField(name:string, radio?:string): nlobjField; + + /** + * return a subtab (nlobjTab) on this form. + * + * @param {string} name subtab name + * @return {nlobjTab} + * + * @since 2008.2 + * @param name + * @return + */ + getSubTab(name:string): nlobjTab; + + /** + * return a sublist (nlobjSubList) on this form. + * + * @param {string} name sublist name + * @return {nlobjSubList} + * + * @since 2008.2 + * @param name + * @return + */ + getSubList(name:string): nlobjSubList; + + /** + * add a field group to the form. + * @param {string} name field group name + * @param {string} label field group label + * @param tab + * @return {nlobjFieldGroup} + * + * @method + * @memberOf nlobjForm + * + * @since 2011.1 + * @param name + * @param label + * @param tab + * @return + */ + addFieldGroup(name:string, label:string, tab:any): nlobjFieldGroup; + + /** + * get a list of all tabs. + * @return an array with names of all tabs + * + * @method + * @memberOf nlobjForm + * + * @since 2012.2 + */ + getTabs(): nlobjTab[]; +} + +/** + * Return a new instance of nlobjAssistant. + * + * @classDescription UI Object page type used to build multi-step "assistant" pages to simplify complex workflows. All data and state for an assistant is tracked automatically + * throughout the user's session up until completion of the assistant. + * + * @return {nlobjAssistant} + * @constructor + * + * @since 2009.2 + */ +declare interface nlobjAssistant { + + /** + * + * @return + */ + new (): any; + + /** + * set the page title. + * @param {string} title + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param title + * @return + */ + setTitle(title:string): any; + + /** + * set the script ID for Client Script used for this form. + * @param {string, int} script script ID or internal ID for global client script used to enable Client SuiteScript on page + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param script + * @return + */ + setScript(script:any): any; + + /** + * set the splash screen used for this page. + * @param {string} title splash portlet title + * @param {string} text1 splash portlet content (left side) + * @param {string} [text2] splash portlet content (right side) + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param title + * @param text1 + * @param text2? + * @return + */ + setSplash(title:string, text1:string, text2?:string): any; + + /** + * show/hide shortcut link. Always hidden on external pages + * @param {boolean} show enable/disable "Add To Shortcut" link on this page + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param show + * @return + */ + setShortcut(show:boolean): any; + + /** + * set the values for all the fields on this page. + * @param {Object} values Object of field name/value pairs used to set all fields on page + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param values + * @return + */ + setFieldValues(values:any): any; + + /** + * if ordered, steps are show on left and must be completed sequentially, otherwise steps are shown on top and can be done in any order + * @param {boolean} ordered If true (default assistant behavior) then a navigation order thru the steps/pages will be imposed on the user. Otherwise the user + * will be allowed to navigate across steps/pages in any order they choose. + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param ordered + * @return + */ + setOrdered(ordered:boolean): any; + + /** + * if numbered, step numbers are displayed next to the step's label in the navigation area + * @param {boolean} numbered If true (default assistant behavior) step numbers will be displayed next to the step label + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param numbered + * @return + */ + setNumbered(numbered:boolean): any; + + /** + * return true if all the steps have been completed. + * @return {boolean} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @return + */ + isFinished(): boolean; + + /** + * mark assistant page as completed and optionally set the rich text to display on completed page. + * @param {string} html completion message (rich text) to display on the "Finish" page + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param html + * @return + */ + setFinished(html:string): any; + + /** + * return true if the assistant has an error message to display for the current step. + * @return {boolean} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @return + */ + hasError(): boolean; + + /** + * set the error message for the currrent step. + * @param {string} html error message (rich text) to display on the page to the user + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param html + * @return + */ + setError(html:string): any; + + /** + * mark a step as current. It will be highlighted accordingly when the page is displayed + * @param {nlobjAssistantStep} step assistant step object representing the current step that the user is on. + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param step + * @return + */ + setCurrentStep(step:() => void): any; + + /** + * add a step to the assistant. + * @param {string} name the name of the step + * @param {string} label label used for this step + * @return {nlobjAssistantStep} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @param label + * @return + */ + addStep(name:string, label:string): () => void; + + /** + * add a field to this page and return it. + * @param {string} name field name + * @param {string} type field type + * @param {string} [label] field label + * @param {string, int} [source] script ID or internal ID for source list (select and multiselects only) -or- radio value for radio fields + * @param {string} [group] group name that this field will live on. If empty then the field is added to the main section of the page + * @return {nlobjField} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @param type + * @param label? + * @param source + * @param group? + * @return + */ + addField(name:string, type:string, label?:string, source?:any, group?:string): () => void; + + /** + * add a sublist to this page and return it. For now only sublists of type inlineeditor are supported + * @param {string} name sublist name + * @param {string} type sublist type (inlineeditor only for now) + * @param {string} label sublist label + * @return {nlobjSubList} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @param type + * @param label + * @return + */ + addSubList(name:string, type:string, label:string): () => void; + + /** + * add a field group to the page. + * @param {string} name field group name + * @param {string} label field group label + * @return {nlobjFieldGroup} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @param label + * @return + */ + addFieldGroup(name:string, label:string): () => void; + + /** + * return an assistant step on this page. + * @param {string} name step name + * @return {nlobjAssistantStep} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @return + */ + getStep(name:string): () => void; + + /** + * return a field on this page. + * @param {string} name field name + * @return {nlobjField} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @return + */ + getField(name:string): () => void; + + /** + * return a sublist on this page. + * @param {string} name sublist name + * @return {nlobjSubList} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @return + */ + getSubList(name:string): () => void; + + /** + * return a field group on this page. + * @param {string} name field group name + * @return {nlobjFieldGroup} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param name + * @return + */ + getFieldGroup(name:string): () => void; + + /** + * return an array of all the assistant steps for this assistant. + * @return {nlobjAssistantStep[]} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + */ + getAllSteps(): void; + + /** + * return an array of the names of all fields on this page. + * @return {string[]} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + */ + getAllFields(): void; + + /** + * return an array of the names of all sublists on this page . + * @return {string[]} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + */ + getAllSubLists(): void; + + /** + * return an array of the names of all field groups on this page. + * @return {string[]} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + */ + getAllFieldGroups(): void; + + /** + * return the last submitted action by the user: next|back|cancel|finish|jump + * @return {string} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @return + */ + getLastAction(): string; + + /** + * return step from which the last submitted action came from + * @return {nlobjAssistantStep} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @return + */ + getLastStep(): () => void; + + /** + * return the next logical step corresponding to the user's last submitted action. You should only call this after + * you have successfully captured all the information from the last step and are ready to move on to the next step. You + * would use the return value to set the current step prior to continuing. + * + * @return {nlobjAssistantStep} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @return + */ + getNextStep(): () => void; + + /** + * return current step set via nlobjAssistant.setCurrentStep(step) + * @return {nlobjAssistantStep} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @return + */ + getCurrentStep(): () => void; + + /** + * return the total number of steps in the assistant + * @return {int} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @return + */ + getStepCount(): any; + + /** + * redirect the user following a user submit operation. Use this to automatically redirect the user to the next logical step. + * @param {nlobjResponse} response the response object used to communicate back to the user's client + * @return {void} + * + * @method + * @memberOf nlobjAssistant + * + * @since 2009.2 + * @param response + * @return + */ + sendRedirect(response:() => void): any; +} + +/** + * Return a new instance of nlobjField used for scriptable form/sublist field. + * This object is READ-ONLY except for scripted fields created via the UI Object API using Suitelets or beforeLoad user events + * + * @classDescription Core descriptor for fields used to define records and also used to build pages and portlets. + * @return {nlobjField} + * @constructor + */ +declare interface nlobjField { + + /** + * + * @return + */ + new (): /* nlobjField */ any; + + /** + * return field name. + * @return {string} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @return + */ + getName(): string; + + /** + * return field label. + * @return {string} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @return + */ + getLabel(): string; + + /** + * return field type. + * @return {string} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @return + */ + getType(): string; + + /** + * return true if field is hidden. + * @return {boolean} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @return + */ + isHidden(): boolean; + + /** + * return true if field is mandatory. + * @return {boolean} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @return + */ + isMandatory(): boolean; + + /** + * return true if field is disabled. + * @return {boolean} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @return + */ + isDisabled(): boolean; + + /** + * set the label for this field. + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} label + * @return {nlobjField} + * + * @since 2008.2 + * @param label + * @return + */ + setLabel(label:string): () => void; + + /** + * set the alias used to set the value for this field. Defaults to field name. + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} alias column used to populate the field (mostly relevant when populating sublist fields) + * @return {nlobjField} + * + * @since 2008.2 + * @param alias + * @return + */ + setAlias(alias:string): () => void; + + /** + * set the default value for this field. + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} value + * @return {nlobjField} + * + * @since 2008.2 + * @param value + * @return + */ + setDefaultValue(value:string): () => void; + + /** + * Disable field via field metadata. + * This method is only supported on scripted fields via the UI Object API + * @param {boolean} disabled if true then field should be disabled. + * @return {nlobjField} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @param disabled + * @return + */ + setDisabled(disabled:boolean): () => void; + + /** + * make this field mandatory. + * This method is only supported on scripted fields via the UI Object API + * + * @param {boolean} mandatory if true then field becomes mandatory + * @return {nlobjField} + * + * @since 2008.2 + * @param mandatory + * @return + */ + setMandatory(mandatory:boolean): () => void; + + /** + * set the maxlength for this field (only valid for certain field types). + * This method is only supported on scripted fields via the UI Object API + * + * @param {int} maxlength maximum length for this field + * @return {nlobjField} + * + * @since 2008.2 + * @param maxlength + * @return + */ + setMaxLength(maxlength:any): () => void; + + /** + * set the display type for this field. + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} type display type: inline|normal|hidden|disabled|readonly|entry + * @return {nlobjField} + * + * @since 2008.2 + * @param type + * @return + */ + setDisplayType(type:string): () => void; + + /** + * set the break type (startcol|startrow|none) for this field. startrow is only used for fields with a layout type of outside + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} breaktype break type used to add a break in flow layout for this field: startcol|startrow|none + * @return {nlobjField} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @param breaktype + * @return + */ + setBreakType(breaktype:string): () => void; + + /** + * set the layout type and optionally the break type. + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} type layout type: outside|startrow|midrow|endrow|normal + * @param {string} [breaktype] break type: startcol|startrow|none + * @return {nlobjField} + * + * @since 2008.2 + * @param type + * @param breaktype? + * @return + */ + setLayoutType(type:string, breaktype?:string): () => void; + + /** + * set the text that gets displayed in lieu of the field value for URL fields. + * + * @param {string} text user-friendly display value in lieu of URL + * @return {nlobjField} + * + * @since 2008.2 + * @param text + * @return + */ + setLinkText(text:string): () => void; + + /** + * set the width and height for this field. + * This method is only supported on scripted fields via the UI Object API + * + * @param {int} width + * @param {int} height + * @return {nlobjField} + * + * @since 2008.2 + * @param width + * @param height + * @return + */ + setDisplaySize(width:any, height:any): () => void; + + /** + * set the amount of emppty vertical space (rows) between this field and the previous field. + * This method is only supported on scripted fields via the UI Object API + * + * @param {int} padding # of empty rows to display above field + * @return {nlobjField} + * + * @since 2008.2 + * @param padding + * @return + */ + setPadding(padding:any): () => void; + + /** + * set help text for this field. If inline is set on assistant pages, help is displayed inline below field + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} help field level help content (rich text) for field + * @param {string} [inline] if true then in addition to the popup field help, the help will also be displayed inline below field (supported on assistant pages only) + * @return {nlobjField} + * + * @method + * @memberOf nlobjField + * + * @since 2009.2 + * @param help + * @param inline? + * @return + */ + setHelpText(help:string, inline?:string): () => void; + + /** + * add a select option to this field (valid for select/multiselect fields). + * This method is only supported on scripted fields via the UI Object API + * + * @param {string} value internal ID for this select option + * @param {string} text display value for this select option + * @param {boolean} [selected] if true then this select option will be selected by default + * @since 2008.2 + * @param value + * @param text + * @param selected? + */ + addSelectOption(value:string, text:string, selected?:boolean): void; +} + +/** + * Return a new instance of nlobjSubList used for scriptable sublist (sublist). + * This object is READ-ONLY except for instances created via the UI Object API using Suitelets or beforeLoad user events. + * + * @classDescription high level container for defining sublist (many to one) relationships on a record or multi-line data entry UIs on pages. + * @return {nlobjSubList} + * @constructor + */ +declare interface nlobjSubList { + + /** + * + * @return + */ + new (): /* nlobjSubList */ any; + + /** + * set the label for this sublist. + * This method is only supported on sublists via the UI Object API + * + * @param {string} label + * @since 2008.2 + * @param label + */ + setLabel(label:string): void; + + /** + * set helper text for this sublist. + * This method is only supported on sublists via the UI Object API + * + * @param {string} help + * @since 2008.2 + * @param help + */ + setHelpText(help:string): void; + + /** + * set the displaytype for this sublist: hidden|normal. + * This method is only supported on scripted or staticlist sublists via the UI Object API + * + * @param {string} type + * @since 2008.2 + * @param type + */ + setDisplayType(type:string): void; + + /** + * set the value of a cell in this sublist. + * + * @param {string} field sublist field name + * @param {int} line line number (1-based) + * @param {string} value sublist value + * + * @method + * @memberOf nlobjSubList + * + * @since 2008.2 + * @param field + * @param line + * @param value + */ + setLineItemValue(field:string, line:any, value:string): void; + + /** + * set the value of a matrix cell in this sublist. + * @param {string} field matrix field name + * @param {int} line line number (1-based) + * @param {int} column matrix column index (1-based) + * @param {string} value matrix field value + * @return {void} + * + * @method + * @memberOf nlobjSubList + * + * @since 2009.2 + * @param field + * @param line + * @param column + * @param value + * @return + */ + setLineItemMatrixValue(field:string, line:any, column:any, value:string): any; + + /** + * set values for multiple lines (Array of nlobjSearchResults or name-value pair Arrays) in this sublist. + * Note that this method is only supported on scripted sublists via the UI Object API + * + * @param {string[][], nlobjSearchResult[]} values + * @since 2008.2 + * @param values + */ + setLineItemValues(values:any): void; + + /** + * Return the number of lines in a sublist. + * + * @param {string} group sublist name + * + * @method + * @memberOf nlobjSubList + * @since 2010.1 + * @param group + */ + getLineItemCount(group:string): void; + + /** + * add a field (column) to this sublist. + * + * @param {string} name field name + * @param {string} type field type + * @param {string} label field label + * @param {string, int} [source] script ID or internal ID for source list used for this select field + * @return {nlobjField} + * + * @method + * @memberOf nlobjSubList + * + * @since 2008.2 + * @param name + * @param type + * @param label + * @param source + * @return + */ + addField(name:string, type:string, label:string, source:any): () => void; + + /** + * designate a field on sublist that must be unique across all lines (only supported on sublists of type inlineeditor, editor). + * @param {string} fldnam the name of a field on this sublist whose value must be unique across all lines + * @return {nlobjField} + * + * @method + * @memberOf nlobjSubList + * + * @since 2009.2 + * @param fldnam + * @return + */ + setUniqueField(fldnam:string): () => void; + + /** + * add a button to this sublist. + * + * @param {string} name button name + * @param {string} label button label + * @param {string} script button script (function name) + * @return {nlobjButton} + * + * @method + * @memberOf nlobjSubList + * + * @since 2008.2 + * @param name + * @param label + * @param script + * @return + */ + addButton(name:string, label:string, script:string): () => void; + + /** + * add "Refresh" button to sublists of type "staticlist" to support manual refreshing of the sublist (without entire page reloads) if it's contents are very volatile + * @return {nlobjButton} + * + * @method + * @memberOf nlobjSubList + * + * @since 2009.2 + * @return + */ + addRefreshButton(): () => void; + + /** + * add "Mark All" and "Unmark All" buttons to this sublist of type "list". + * + * @method + * @memberOf nlobjSubList + * + * @since 2008.2 + */ + addMarkAllButtons(): void; +} + +/** + * Return a new instance of nlobjColumn used for scriptable list column. + * + * @classDescription Class definition for columns used on lists and list portlets. + * @return {nlobjColumn} + * @constructor + */ +declare interface nlobjColumn { + + /** + * + * @return + */ + new (): /* nlobjColumn */ any; + + /** + * set the header name for this column. + * + * @param {string} label the label for this column + * + * @method + * @memberOf nlobjColumn + * + * @since 2008.2 + * @param label + */ + setLabel(label:string): void; + + /** + * set the base URL (optionally defined per row) for this column. + * + * @param {string} value the base URL or a column in the datasource that returns the base URL for each row + * @param {boolean} perRow if true then the 1st arg is expected to be a column in the datasource + * + * @method + * @memberOf nlobjColumn + * + * @since 2008.2 + * @param value + * @param perRow + */ + setURL(value:string, perRow:boolean): void; + + /** + * add a URL parameter (optionally defined per row) to this column's URL. + * + * @param {string} param the name of a parameter to add to URL + * @param {string} value the value of the parameter to add to URL -or- a column in the datasource that returns the parameter value for each row + * @param {boolean} [perRow] if true then the 2nd arg is expected to be a column in the datasource + * + * @method + * @memberOf nlobjColumn + * + * @since 2008.2 + * @param param + * @param value + * @param perRow? + */ + addParamToURL(param:string, value:string, perRow?:boolean): void; +} + +/** + * Return a new instance of nlobjTab used for scriptable tab or subtab. + * + * @classDescription high level grouping for fields on a data entry form (nlobjForm). + * @return {nlobjTab} + * @constructor + */ +declare interface nlobjTab { + + /** + * + * @return + */ + new (): /* nlobjTab */ any; + + /** + * set the label for this tab or subtab. + * + * @param {string} label string used as label for this tab or subtab + * @return {nlobjTab} + * + * @since 2008.2 + * @param label + * @return + */ + setLabel(label:string): () => void; + + /** + * set helper text for this tab or subtab. + * + * @param {string} help inline help text used for this tab or subtab + * @return {nlobjTab} + * + * @since 2008.2 + * @param help + * @return + */ + setHelpText(help:string): () => void; +} + +/** + * Return a new instance of nlobjAssistantStep. + * + * @classDescription assistant step definition. Used to define individual steps/pages in multi-step workflows. + * @return {nlobjAssistantStep} + * @constructor + * + * @since 2009.2 + */ +declare interface nlobjAssistantStep { + + /** + * + * @return + */ + new (): /* nlobjAssistantStep */ any; + + /** + * set the label for this assistant step. + * @param {string} label display label used for this assistant step + * @return {void} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @param label + * @return + */ + setLabel(label:string): any; + + /** + * set helper text for this assistant step. + * @param {string} help inline help text to display on assistant page for this step + * @return {nlobjAssistantStep} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @param help + * @return + */ + setHelpText(help:string): () => void; + + /** + * return the index of this step in the assistant page (1-based) + * @return {int} the index of this step in the assistant (1-based) based on the order in which the steps were added. + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @return + */ + getStepNumber(): any; + + /** + * return the value of a field entered by the user during this step. + * @param {string} name field name + * @return {string} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @param name + * @return + */ + getFieldValue(name:string): string; + + /** + * return the selected values of a multi-select field as an Array entered by the user during this step. + * @param {string} name multi-select field name + * @return {string[]} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @param name + */ + getFieldValues(name:string): void; + + /** + * return the number of lines previously entered by the user in this step (or -1 if the sublist does not exist). + * @param {string} group sublist name + * @return {int} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @param group + * @return + */ + getLineItemCount(group:string): any; + + /** + * return the value of a sublist field entered by the user during this step. + * @param {string} group sublist name + * @param {string} name sublist field name + * @param {int} line sublist (1-based) + * @return {string} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @param group + * @param name + * @param line + * @return + */ + getLineItemValue(group:string, name:string, line:any): string; + + /** + * return an array of the names of all fields entered by the user during this step. + * @return {string[]} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + */ + getAllFields(): void; + + /** + * return an array of the names of all sublists entered by the user during this step. + * @return {string[]} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + */ + getAllLineItems(): void; + + /** + * return an array of the names of all sublist fields entered by the user during this step + * @param {string} group sublist name + * @return {string[]} + * + * @method + * @memberOf nlobjAssistantStep + * + * @since 2009.2 + * @param group + */ + getAllLineItemFields(group:string): void; +} + +/** + * Return a new instance of nlobjFieldGroup (currently only supported on nlobjAssistant pages) + * + * @classDescription object used for grouping fields on pages (currently only supported on assistant pages). + * @return {nlobjFieldGroup} + * @constructor + * + * @since 2009.2 + */ +declare interface nlobjFieldGroup { + + /** + * + * @return + */ + new (): /* nlobjFieldGroup */ any; + + /** + * set the label for this field group. + * @param {string} label display label for field group + * @return {nlobjFieldGroup} + * + * @method + * @memberOf nlobjFieldGroup + * + * @since 2009.2 + * @param label + * @return + */ + setLabel(label:string): () => void; + + /** + * set collapsibility property for this field group. + * + * @param {boolean} collapsible if true then this field group is collapsible + * @param {boolean} [defaultcollapsed] if true and the field group is collapsible, collapse this field group by default + * @return {nlobjFieldGroup} + * + * @method + * @memberOf nlobjFieldGroup + * + * @since 2009.2 + * @param collapsible + * @param defaultcollapsed? + * @return + */ + setCollapsible(collapsible:boolean, defaultcollapsed?:boolean): () => void; + + /** + * set singleColumn property for this field group. + * + * @param {boolean} singleColumn if true then this field group is displayed in single column + * @return {nlobjFieldGroup} + * + * @method + * @memberOf nlobjFieldGroup + * + * @since 2011.1 + * @param singleColumn + * @return + */ + setSingleColumn(singleColumn:boolean): () => void; + + /** + * set showBorder property for this field group. + * + * @param {boolean} showBorder if true then this field group shows border including label of group + * @return {nlobjFieldGroup} + * + * @method + * @memberOf nlobjFieldGroup + * + * @since 2011.1 + * @param showBorder + * @return + */ + setShowBorder(showBorder:boolean): () => void; +} + +/** + * Return a new instance of nlobjButton. + * + * @classDescription buttons used for triggering custom behaviors on pages. + * @return {nlobjButton} + * @constructor + * + * @since 2009.2 + */ +declare interface nlobjButton { + + /** + * + * @return + */ + new (): nlobjButton; + + /** + * set the label for this button. + * @param {string} label display label for button + * @return {nlobjButton} + * + * @method + * @memberOf nlobjButton + * + * @since 2008.2 + * @param label + * @return + */ + setLabel(label:string): nlobjButton; + + /** + * disable or enable button. + * @param {boolean} disabled if true then this button should be disabled on the page + * @return {nlobjButton} + * + * @method + * @memberOf nlobjButton + * + * @since 2008.2 + * @param disabled + * @return + */ + setDisabled(disabled:boolean): nlobjButton; + + setVisible(visible:boolean): nlobjButton; +} + +/** + * Return a new instance of nlobjSelectOption. + * + * @classDescription select|radio option used for building select fields via the UI Object API and for describing select|radio fields. + * @return {nlobjSelectOption} + * @constructor + * + * @since 2009.2 + */ +declare interface nlobjSelectOption { + + /** + * + * @return + */ + new (): any; + + /** + * return internal ID for select option + * @return {string} + * + * @method + * @memberOf nlobjSelectOption + * + * @since 2009.2 + * @return + */ + getId(): string; + + /** + * return display value for select option. + * @return {string} + * + * @method + * @memberOf nlobjSelectOption + * + * @since 2009.2 + * @return + */ + getText(): string; +} + +/** + * @return nlobjLogin + * + * @since 2012.2 + */ +declare function nlapiGetLogin():void; + +/** + * @param {string} Job Type + * @return {nlobjJobManager} + * + * @since 2013.1 + * @param jobType + * @return + */ +declare function nlapiGetJobManager(jobType:any):any;