declare class Ui { private constructor(); /** * An enum representing predetermined, localized dialog buttons returned by an alert or PromptResponse.getSelectedButton() to indicate * which button in a dialog the user clicked. */ static Button: Button; /** * An enum representing predetermined, localized sets of one or more dialog buttons that can be * added to an alert or a prompt. */ static ButtonSet: ButtonSet; /** * Opens a dialog box in the user's editor with the given message and an "OK" button. This method * suspends the server-side script while the dialog is open. The script resumes after the user * dismisses the dialog, but Jdbc * connections and LockService locks don't * persist across the suspension. For more information, see the guide to dialogs and sidebars. * *

	 * // Display "Hello, world" in a dialog box with an "OK" button. The user can also close the
	 * // dialog by clicking the close button in its title bar.
	 * SpreadsheetApp.getUi().alert('Hello, world');
	 * 
* * @param prompt - The message to display in the dialog box. * * @returns The button the user clicked. */ alert( prompt: string ): Button /** * Opens a dialog box in the user's editor with the given message and set of buttons. This method * suspends the server-side script while the dialog is open. The script resumes after the user * dismisses the dialog, but Jdbc * connections and LockService locks don't * persist across the suspension. For more information, see the guide to dialogs and sidebars. * *

	 * // Display a dialog box with a message and "Yes" and "No" buttons. The user can also close the
	 * // dialog by clicking the close button in its title bar.
	 * var ui = SpreadsheetApp.getUi();
	 * var response = ui.alert('Are you sure you want to continue?', ui.ButtonSet.YES_NO);
	 * 
	 * // Process the user's response.
	 * if (response == ui.Button.YES) {
	 *   Logger.log('The user clicked "Yes."');
	 * } else {
	 *   Logger.log('The user clicked "No" or the close button in the dialog\'s title bar.');
	 * }
	 * 
* * @param prompt - The message to display in the dialog box. * @param buttons - The button set to display in the dialog box. * * @returns The button the user clicked. */ alert( prompt: string, buttons: ButtonSet ): Button /** * Opens a dialog box in the user's editor with the given title, message, and set of buttons. This * method suspends the server-side script while the dialog is open. The script resumes after the * user dismisses the dialog, but Jdbc * connections and LockService locks don't * persist across the suspension. For more information, see the guide to dialogs and sidebars. * *

	 * // Display a dialog box with a title, message, and "Yes" and "No" buttons. The user can also
	 * // close the dialog by clicking the close button in its title bar.
	 * var ui = SpreadsheetApp.getUi();
	 * var response = ui.alert('Confirm', 'Are you sure you want to continue?', ui.ButtonSet.YES_NO);
	 * 
	 * // Process the user's response.
	 * if (response == ui.Button.YES) {
	 *   Logger.log('The user clicked "Yes."');
	 * } else {
	 *   Logger.log('The user clicked "No" or the close button in the dialog\'s title bar.');
	 * }
	 * 
* * @param title - The title to display above the dialog box. * @param prompt - The message to display in the dialog box. * @param buttons - The button set to display in the dialog box. * * @returns The button the user clicked. */ alert( title: string, prompt: string, buttons: ButtonSet ): Button /** * Creates a builder that can be used to insert a sub-menu into the editor's Add-on menu. The menu * isn't actually be updated until Menu.addToUi() is called. If the script is running as * an add-on, the sub-menu name matches the add-on's name in the web store; if the script is bound to the document directly, the sub-menu name * matches the script's name. For more information, see the guide to menus. * *

	 * // Add an item to the Add-on menu, under a sub-menu whose name is set automatically.
	 * function onOpen(e) {
	 *   SpreadsheetApp.getUi()
	 *       .createAddonMenu()
	 *       .addItem('Show', 'showSidebar')
	 *       .addToUi();
	 * }
	 * 
* * @returns The new menu builder. */ createAddonMenu(): Menu /** * Creates a builder that can be used to add a menu to the editor's user interface. The menu isn't * actually be added until Menu.addToUi() is called. For more information, see the guide to menus. The label for a top-level menu should be * in headline case (all major words capitalized), although the label for a sub-menu should be in * sentence case (only the first word capitalized). If the script is published as an add-on, the caption parameter is ignored and the * menu is added as a sub-menu of the Add-ons menu, equivalent to createAddonMenu(). * *

	 * // Add a custom menu to the active document, including a separator and a sub-menu.
	 * function onOpen(e) {
	 *   SpreadsheetApp.getUi()
	 *       .createMenu('My Menu')
	 *       .addItem('My menu item', 'myFunction')
	 *       .addSeparator()
	 *       .addSubMenu(SpreadsheetApp.getUi().createMenu('My sub-menu')
	 *           .addItem('One sub-menu item', 'mySecondFunction')
	 *           .addItem('Another sub-menu item', 'myThirdFunction'))
	 *       .addToUi();
	 * }
	 * 
* * @param caption - The label for the menu, with all major words capitalized for a top-level menu, * or only the first word capitalized for a sub-menu. * * @returns The new menu builder. */ createMenu( caption: string ): Menu /** * Opens an input dialog box in the user's editor with the given message and an "OK" button. This * method suspends the server-side script while the dialog is open. The script resumes after the * user dismisses the dialog, but Jdbc * connections and LockService locks don't * persist across the suspension. For more information, see the guide to dialogs and sidebars. * *

	 * // Display a dialog box with a message, input field, and an "OK" button. The user can also
	 * // close the dialog by clicking the close button in its title bar.
	 * var ui = SpreadsheetApp.getUi();
	 * var response = ui.prompt('Enter your name:');
	 * 
	 * // Process the user's response.
	 * if (response.getSelectedButton() == ui.Button.OK) {
	 *   Logger.log('The user\'s name is %s.', response.getResponseText());
	 * } else {
	 *   Logger.log('The user clicked the close button in the dialog\'s title bar.');
	 * }
	 * 
* * @param prompt - The message to display in the dialog box. * * @returns A representation of the user's response. */ prompt( prompt: string ): PromptResponse /** * Opens an input dialog box in the user's editor with the given message and set of buttons. This * method suspends the server-side script while the dialog is open. The script resumes after the * user dismisses the dialog, but Jdbc * connections and LockService locks don't * persist across the suspension. For more information, see the guide to dialogs and sidebars. * *

	 * // Display a dialog box with a message, input field, and "Yes" and "No" buttons. The user can
	 * // also close the dialog by clicking the close button in its title bar.
	 * var ui = SpreadsheetApp.getUi();
	 * var response = ui.prompt('May I know your name?', ui.ButtonSet.YES_NO);
	 * 
	 * // Process the user's response.
	 * if (response.getSelectedButton() == ui.Button.YES) {
	 *   Logger.log('The user\'s name is %s.', response.getResponseText());
	 * } else if (response.getSelectedButton() == ui.Button.NO) {
	 *   Logger.log('The user didn\'t want to provide a name.');
	 * } else {
	 *   Logger.log('The user clicked the close button in the dialog\'s title bar.');
	 * }
	 * 
* * @param prompt - The message to display in the dialog box. * @param buttons - The button set to display in the dialog box. * * @returns A representation of the user's response. */ prompt( prompt: string, buttons: ButtonSet ): PromptResponse /** * Opens an input dialog box in the user's editor with the given title, message, and set of * buttons. This method suspends the server-side script while the dialog is open. The script * resumes after the user dismisses the dialog, but Jdbc connections and LockService locks don't persist across the * suspension. For more information, see the guide to * dialogs and sidebars. * *

	 * // Display a dialog box with a title, message, input field, and "Yes" and "No" buttons. The
	 * // user can also close the dialog by clicking the close button in its title bar.
	 * var ui = SpreadsheetApp.getUi();
	 * var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO);
	 * 
	 * // Process the user's response.
	 * if (response.getSelectedButton() == ui.Button.YES) {
	 *   Logger.log('The user\'s name is %s.', response.getResponseText());
	 * } else if (response.getSelectedButton() == ui.Button.NO) {
	 *   Logger.log('The user didn\'t want to provide a name.');
	 * } else {
	 *   Logger.log('The user clicked the close button in the dialog\'s title bar.');
	 * }
	 * 
* * @param title - The title to display above the dialog box. * @param prompt - The message to display in the dialog box. * @param buttons - The button set to display in the dialog box. * * @returns A representation of the user's response. */ prompt( title: string, prompt: string, buttons: ButtonSet ): PromptResponse /** * Opens a dialog box in the user's editor with custom client-side content. This method does * not suspend the server-side script while the dialog is open. To communicate with the * server-side script, the client-side component must make asynchronous callbacks using the google.script API for HtmlService. To close the dialog * programmatically, call * google.script.host.close() on the client side of an HtmlService web * app. For more information, see the guide to dialogs and * sidebars. * *

	 * // Display a dialog box with custom HtmlService content.
	 * var htmlOutput = HtmlService
	 *     .createHtmlOutput('<p>A change of speed, a change of style...</p>')
	 *     .setTitle('My add-on')
	 *     .setWidth(250)
	 *     .setHeight(300);
	 * SpreadsheetApp.getUi().showDialog(htmlOutput);
	 * 
* * @param userInterface - An HtmlOutput * representing the interface to display. */ showDialog( userInterface: object ): void /** * Opens a modal dialog box in the user's editor with custom client-side content. This method does * not suspend the server-side script while the dialog is open. To communicate with the * server-side script, the client-side component must make asynchronous callbacks using the google.script API for HtmlService. To close the dialog * programmatically, call * google.script.host.close() on the client side of an HtmlService web * app. For more information, see the guide to dialogs and * sidebars. * *

Modal dialogs prevent the user from interacting with anything other than the dialog. By * contrast, modeless dialogs and sidebars let the user interact with the editor. In almost all cases, a * modal dialog or sidebar is a better choice than a modeless dialog. * *


	 * // Display a modal dialog box with custom HtmlService content.
	 * var htmlOutput = HtmlService
	 *     .createHtmlOutput('<p>A change of speed, a change of style...</p>')
	 *     .setWidth(250)
	 *     .setHeight(300);
	 * SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');
	 * 
* * @param userInterface - An HtmlOutput * representing the interface to display. * @param title - The title of the dialog; overrides any title set by calling setTitle() on * the userInterface object. */ showModalDialog( userInterface: object, title: string ): void /** * Opens a modeless dialog box in the user's editor with custom client-side content. This method * does not suspend the server-side script while the dialog is open. To communicate with * the server-side script, the client-side component must make asynchronous callbacks using the google.script API for HtmlService. To close the dialog * programmatically, call * google.script.host.close() on the client side of an HtmlService web * app. For more information, see the guide to dialogs and * sidebars. * *

Modeless dialogs let the user interact with the editor behind the dialog. By contrast, * modal dialogs do not. In almost all cases, a modal * dialog or sidebar is a better choice than a modeless dialog. * *


	 * // Display a modeless dialog box with custom HtmlService content.
	 * var htmlOutput = HtmlService
	 *     .createHtmlOutput('<p>A change of speed, a change of style...</p>')
	 *     .setWidth(250)
	 *     .setHeight(300);
	 * SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');
	 * 
* * @param userInterface - An HtmlOutput * representing the interface to display. * @param title - The title of the dialog; overrides any title set by calling setTitle() on * the userInterface object. */ showModelessDialog( userInterface: object, title: string ): void /** * Opens a sidebar in the user's editor with custom client-side content. This method does * not suspend the server-side script while the sidebar is open. To communicate with the * server-side script, the client-side component must make asynchronous callbacks using the google.script API for HtmlService. To close the sidebar * programmatically, call * google.script.host.close() on the client side of an HtmlService web * app. For more information, see the guide to dialogs and * sidebars. * *

The sidebar displays on the right side of the editor for users whose environments use a * left-to-right language and on the left side of the editor for right-to-left languages. All * sidebars shown by scripts are 300 pixels wide. * *


	 * // Display a sidebar with custom HtmlService content.
	 * var htmlOutput = HtmlService
	 *     .createHtmlOutput('<p>A change of speed, a change of style...</p>')
	 *     .setTitle('My add-on');
	 * SpreadsheetApp.getUi().showSidebar(htmlOutput);
	 * 
* * @param userInterface - An HtmlOutput * representing the interface to display. */ showSidebar( userInterface: object ): void }