// For Library Version: 1.108.37

declare module "sap/fe/core/library" {
  /**
   * @SINCE 1.86.0
   *
   * Possible initial load (first app startup) modes for a ListReport.
   */
  export enum InitialLoadMode {
    /**
     * Data will be loaded initially if filters are set.
     */
    Auto = "undefined",
    /**
     * Data will not be loaded initially.
     */
    Disabled = "undefined",
    /**
     * Data will be loaded initially.
     */
    Enabled = "undefined",
  }
}

declare module "sap/fe/core/AppComponent" {
  import {
    default as UIComponent,
    $UIComponentSettings,
  } from "sap/ui/core/UIComponent";

  /**
   * Main class for components used for an application in SAP Fiori elements.
   * Application developers using the templates and building blocks provided by SAP Fiori elements should
   * create their apps by extending this component.
   * This ensures that all the necessary services that you need for the building blocks and templates to work
   * properly are started.
   *
   * When you use sap.fe.core.AppComponent as the base component, you also need to use a rootView. SAP Fiori
   * elements provides two options:
   *
   *  - sap.fe.core.rootView.NavContainer when using sap.m.routing.Router
   *
   *  - sap.fe.core.rootView.Fcl when using sap.f.routing.Router (FCL use case)
   */
  export default class AppComponent extends UIComponent {
    constructor();
  }

  export interface $AppComponentSettings extends $UIComponentSettings {}
}

declare module "sap/fe/core/BaseController" {
  import Controller from "sap/ui/core/mvc/Controller";

  import AppComponent from "sap/fe/core/AppComponent";

  import Model from "sap/ui/model/Model";

  import View from "sap/ui/core/mvc/View";

  /**
   * @SINCE 1.90.0
   *
   * Internal base controller class for SAP Fiori elements application.
   * If you want to extend a base controller for your custom page, please use for sap.fe.core.PageController.
   */
  export default class BaseController extends Controller {
    constructor();

    /**
     * @SINCE 1.91.0
     *
     * Returns the current app component.
     *
     * @returns The app component or, if not found, null
     */
    getAppComponent(): AppComponent;
    /**
     * Convenience method provided by SAP Fiori elements to enable applications to include the view model by
     * name into each controller.
     *
     * @returns The model instance
     */
    getModel(
      /**
       * The model name
       */
      sName?: string
    ): Model;
    /**
     * Convenience method for setting the view model in every controller of the application.
     *
     * @returns The view instance
     */
    setModel(
      /**
       * The model instance
       */
      oModel: Model,
      /**
       * The model name
       */
      sName: string
    ): View;
  }
}

declare module "sap/fe/core/ExtensionAPI" {
  import BaseObject from "sap/ui/base/Object";

  import Control from "sap/ui/core/Control";

  import Model from "sap/ui/model/Model";

  import Context from "sap/ui/model/Context";

  /**
   * @SINCE 1.79.0
   *
   * Common Extension API for all pages of SAP Fiori elements for OData V4.
   */
  export default class ExtensionAPI extends BaseObject {
    constructor();

    /**
     * Add any control as a dependent control to this SAP Fiori elements page.
     */
    addDependent(
      /**
       * Control to be added as a dependent control
       */
      oControl: Control
    ): void;
    /**
     * Retrieves the editFlow controller extension for this page.
     *
     * @returns The editFlow controller extension
     */
    getEditFlow(): /* was: sap.fe.core.EditFlow */ any;
    /**
     * Retrieves the intentBasedNavigation controller extension for this page.
     *
     * @returns The intentBasedNavigation controller extension
     */
    getIntentBasedNavigation(): /* was: sap.fe.core.IntentBasedNavigation */ any;
    /**
     * Get access to models managed by SAP Fiori elements.
     *
     * The following models can be accessed:
     *
     *
     * 	 - undefined: the undefined model returns the SAPUI5 OData V4 model bound to this page
     *
     * 	 - i18n / further data models defined in the manifest
     * ui: returns a SAPUI5 JSON model containing UI information.
     * Only the following properties are public and supported:
     *
     *
     * 	 - isEditable: set to true if the application is in edit mode
     *
     *
     * .
     * editMode is deprecated and should not be used anymore. Use isEditable instead.
     *
     * @returns The required model
     */
    getModel(
      /**
       * Name of the model
       */
      sModelName?: string
    ): undefined | Model;
    /**
     * Retrieves the routing controller extension for this page.
     *
     * @returns The routing controller extension
     */
    getRouting(): /* was: sap.fe.core.Routing */ any;
    /**
     * Load a fragment and go through the template preprocessor with the current page context.
     *
     * @returns The fragment definition
     */
    loadFragment(
      /**
       * The settings object
       */
      mSettings: {
        /**
         * The contextPath to be used for the templating process
         */
        contextPath: string;
        /**
         * The controller to be attached to the fragment
         */
        controller: object;
        /**
         * The ID of the fragment itself
         */
        id: string;
        /**
         * The initial binding context
         */
        initialBindingContext: Context;
        /**
         * The name of the fragment to be loaded
         */
        name: string;
      }
    ): Promise<any>;
    /**
     * Navigate to another target.
     */
    navigateToTarget(
      /**
       * Name of the target route
       */
      sTarget: string,
      /**
       * undefined
       */
      oContext: Context
    ): void;
    /**
     * Remove a dependent control from this SAP Fiori elements page.
     */
    removeDependent(
      /**
       * Control to be added as a dependent control
       */
      oControl: Control
    ): void;
    /**
     * Triggers an update of the app state.
     * Should be called if the state of a control, or any other state-relevant information, was changed.
     *
     * @returns A promise that resolves with the new app state object.
     */
    updateAppState(): undefined | Promise<any>;
  }
}

declare module "sap/fe/core/PageController" {
  import BaseController from "sap/fe/core/BaseController";

  import AppComponent from "sap/fe/core/AppComponent";

  import ExtensionAPI from "sap/fe/core/ExtensionAPI";

  import Model from "sap/ui/model/Model";

  import View from "sap/ui/core/mvc/View";

  /**
   * @SINCE 1.88.0
   *
   * Base controller class for your custom page used inside an SAP Fiori elements application.
   * This controller provides preconfigured extensions that will ensure you have the basic functionalities
   * required to use the building blocks.
   */
  export default class PageController extends BaseController {
    constructor();

    /**
     * @SINCE 1.91.0
     *
     * Returns the current app component.
     *
     * @returns The app component or, if not found, null
     */
    getAppComponent(): AppComponent;
    /**
     * Get the extension API for the current page.
     *
     * @returns The extension API.
     */
    getExtensionAPI(): ExtensionAPI;
    /**
     * Convenience method provided by SAP Fiori elements to enable applications to include the view model by
     * name into each controller.
     *
     * @returns The model instance
     */
    getModel(
      /**
       * The model name
       */
      sName?: string
    ): Model;
    /**
     * Convenience method for setting the view model in every controller of the application.
     *
     * @returns The view instance
     */
    setModel(
      /**
       * The model instance
       */
      oModel: Model,
      /**
       * The model name
       */
      sName: string
    ): View;
  }
}

declare module "sap/fe/core/controllerextensions/EditFlow" {
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

  import ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";

  import Context from "sap/ui/model/odata/v4/Context";

  import ODataModel from "sap/ui/model/odata/v4/ODataModel";

  /**
   * @SINCE 1.90.0
   *
   * A controller extension offering hooks into the edit flow of the application
   */
  export default class EditFlow extends ControllerExtension {
    constructor();

    /**
     * @SINCE 1.90.0
     *
     * Submit the current set of changes and navigate back.
     *
     * @returns Promise resolves once the changes have been saved
     */
    applyDocument(
      /**
       * Context of the document
       */
      oContext: object
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * Discard the editable document.
     *
     * @returns Promise resolves once editable document has been discarded
     */
    cancelDocument(
      /**
       * Context of the editable document
       */
      oContext: /* was: sap.fe.core.V4Context */ any,
      /**
       * Can contain the following attributes:
       */
      mParameters: {
        /**
         * This is the control used to open the discard popover
         */
        control: object;
        /**
         * Optional, supresses the discard popover and allows custom handling
         */
        skipDiscardPopover?: boolean;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * Creates a new document.
     *
     * @returns Promise resolves once the object has been created
     */
    createDocument(
      /**
       * ODataListBinding object or the binding path for a temporary list binding
       */
      vListBinding: string | ODataListBinding,
      /**
       * Contains the following attributes:
       */
      mInParameters: {
        /**
         * Specifies if the new entry should be created at the top or bottom of a table in case of creationMode
         * 'Inline'
         */
        createAtEnd?: boolean;
        /**
         * The creation mode using one of the following:
         *                    NewPage - the created document is shown in a new page, depending on whether metadata
         * 'Sync', 'Async' or 'Deferred' is used
         *                    Inline - The creation is done inline (in a table)
         *                    External - The creation is done in a different application specified via the parameter
         * 'outbound'
         */
        creationMode: string;
        /**
         * The navigation target where the document is created in case of creationMode 'External'
         */
        outbound?: string;
        /**
         * ID of the table
         */
        tableId?: string;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * Deletes the document.
     *
     * @returns Promise resolves once document has been deleted
     */
    deleteDocument(
      /**
       * Context of the document
       */
      oContext: Context,
      /**
       * Can contain the following attributes:
       */
      mInParameters: {
        /**
         * Description of the object being deleted
         */
        description: string;
        /**
         * Title of the object being deleted
         */
        title: string;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * Creates a draft document for an existing active document.
     *
     * @returns Promise resolved once the editable document is available
     */
    editDocument(
      /**
       * Context of the active document
       */
      context: /* was: sap.fe.core.V4Context */ any
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * Invokes an action (bound or unbound) and tracks the changes so that other pages can be refreshed and
     * show the updated data upon navigation.
     *
     * @returns A promise which resolves once the action has been executed, providing the response
     */
    invokeAction(
      /**
       * The name of the action to be called
       */
      sActionName: string,
      /**
       * Contains the following attributes:
       */
      mInParameters?: {
        /**
         * For a bound action, a context or an array with contexts for which the action is to be called must be
         * provided
         */
        contexts?: Context | Context[];
        /**
         * Mode how actions are to be called: 'ChangeSet' to put all action calls into one changeset, 'Isolated'
         * to put them into separate changesets
         */
        invocationGrouping?: string;
        /**
         * A human-readable label for the action. This is needed in case the action has a parameter and a parameter
         * dialog is shown to the user. The label will be used for the title of the dialog and for the confirmation
         * button
         */
        label?: string;
        /**
         * For an unbound action, an instance of an OData V4 model must be provided
         */
        model?: ODataModel;
        /**
         * An optional array of objects representing the action parameters, where each object has a name of string
         * type and a value that can be of any data type.
         */
        parameterValues?: object[];
        /**
         * Boolean value indicating whether navigation is required after the action has been executed. Navigation
         * takes place to the context returned by the action
         */
        requiresNavigation?: boolean;
        /**
         * Skips the action parameter dialog if values are provided for all of them in parameterValues
         */
        skipParameterDialog?: boolean;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.98.0
     *
     * This function can be used to intercept the 'Create' action. You can execute custom coding in this function.
     * The framework waits for the returned promise to be resolved before continuing the 'Create' action.
     * If you reject the promise, the 'Create' action is stopped.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     *
     *
     * @returns A promise to be returned by the overridden method. If resolved, the 'Create' action is triggered.
     * If rejected, the 'Create' action is not triggered.
     */
    onBeforeCreate(
      /**
       * Object containing the parameters passed to onBeforeCreate
       */
      mParameters?: {
        /**
         * Path pointing to the context on which Create action is triggered
         */
        contextPath?: string;
        /**
         * Array of values that are filled in the Action Parameter Dialog
         */
        createParameters?: any[];
      }
    ): Promise<any>;
    /**
     * @SINCE 1.98.0
     *
     * This function can be used to intercept the 'Delete' action. You can execute custom coding in this function.
     * The framework waits for the returned promise to be resolved before continuing the 'Delete' action.
     * If you reject the promise, the 'Delete' action is stopped.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     *
     *
     * @returns A promise to be returned by the overridden method. If resolved, the 'Delete' action is triggered.
     * If rejected, the 'Delete' action is not triggered.
     */
    onBeforeDelete(
      /**
       * Object containing the parameters passed to onBeforeDelete
       */
      mParameters?: {
        /**
         * An array of contexts that are going to be deleted
         */
        contexts?: Context[];
      }
    ): Promise<any>;
    /**
     * @SINCE 1.98.0
     *
     * This function can be used to intercept the 'Discard' action. You can execute custom coding in this function.
     * The framework waits for the returned promise to be resolved before continuing the 'Discard' action.
     * If you reject the promise, the 'Discard' action is stopped and the user stays in edit mode.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     *
     *
     * @returns A promise to be returned by the overridden method. If resolved, the 'Discard' action is triggered.
     * If rejected, the 'Discard' action is not triggered and the user stays in edit mode.
     */
    onBeforeDiscard(
      /**
       * Object containing the parameters passed to onBeforeDiscard
       */
      mParameters?: {
        /**
         * Page context that is going to be discarded.
         */
        context?: Context;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.98.0
     *
     * This function can be used to intercept the 'Edit' action. You can execute custom coding in this function.
     * The framework waits for the returned promise to be resolved before continuing the 'Edit' action.
     * If you reject the promise, the 'Edit' action is stopped and the user stays in display mode.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     *
     *
     * @returns A promise to be returned by the overridden method. If resolved, the 'Edit' action is triggered.
     * If rejected, the 'Edit' action is not triggered and the user stays in display mode.
     */
    onBeforeEdit(
      /**
       * Object containing the parameters passed to onBeforeEdit
       */
      mParameters?: {
        /**
         * Page context that is going to be edited.
         */
        context?: Context;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * This function can be used to intercept the 'Save' action. You can execute custom coding in this function.
     * The framework waits for the returned promise to be resolved before continuing the 'Save' action.
     * If you reject the promise, the 'Save' action is stopped and the user stays in edit mode.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     *
     *
     * @returns A promise to be returned by the overridden method. If resolved, the 'Save' action is triggered.
     * If rejected, the 'Save' action is not triggered and the user stays in edit mode.
     */
    onBeforeSave(
      /**
       * Object containing the parameters passed to onBeforeSave
       */
      mParameters?: {
        /**
         * Page context that is going to be saved.
         */
        context?: Context;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * Saves a new document after checking it.
     *
     * @returns Promise resolves once save is complete
     */
    saveDocument(
      /**
       * Context of the editable document
       */
      oContext: /* was: sap.fe.core.V4Context */ any,
      /**
       * undefined
       */
      mParameters: any
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     * @EXPERIMENTAL (since 1.90.0)
     *
     * Secured execution of the given function. Ensures that the function is only executed when certain conditions
     * are fulfilled.
     *
     * @returns A promise that is rejected if the execution is prohibited and resolved by the promise returned
     * by the fnFunction.
     */
    securedExecution(
      /**
       * The function to be executed. Should return a promise that is settled after completion of the execution.
       * If nothing is returned, immediate completion is assumed.
       */
      fnFunction: Function,
      /**
       * Definitions of the preconditions to be checked before execution
       */
      mParameters?: {
        /**
         * Defines the busy indicator
         */
        busy?: {
          /**
           * Executes function only if application isn't busy.
           */
          check?: boolean;
          /**
           * Triggers a busy indicator when the function is executed.
           */
          set?: boolean;
        };
        /**
         * This operation updates the current document without using the bound model and context. As a result, the
         * draft status is updated if a draft document exists, and the user has to confirm the cancellation of the
         * editing process.
         */
        updatesDocument?: boolean;
      }
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * Updates the draft status and displays the error messages if there are errors during an update.
     *
     * @returns Promise resolves once draft status has been updated
     */
    updateDocument(
      /**
       * Context of the updated field
       */
      oContext: object,
      /**
       * Promise to determine when the update operation is completed. The promise should be resolved when the
       * update operation is completed, so the draft status can be updated.
       */
      oPromise: Promise<any>
    ): Promise<any>;
  }
}

declare module "sap/fe/core/controllerextensions/IntentBasedNavigation" {
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

  /**
   * @SINCE 1.86.0
   *
   * Controller extension providing hooks for intent-based navigation
   */
  export default class IntentBasedNavigation extends ControllerExtension {
    constructor();

    /**
     * @SINCE 1.86.0
     *
     * Provides a hook to customize the {@link sap.fe.navigation.SelectionVariant} related to the intent-based
     * navigation.
     */
    adaptNavigationContext(
      /**
       * SelectionVariant provided by SAP Fiori elements.
       */
      oSelectionVariant: /* was: sap.fe.core.SelectionVariant */ any,
      /**
       * Object containing intent-based navigation-related info
       */
      oNavigationInfo: {
        /**
         * Action related to the intent
         */
        action: string;
        /**
         * Semantic object related to the intent
         */
        semanticObject: string;
      }
    ): void;
    /**
     * @SINCE 1.86.0
     *
     * Navigates to an intent defined by an outbound definition in the manifest.
     */
    navigateOutbound(
      /**
       * Identifier to locate the outbound definition in the manifest.
       * This provides the semantic object and action for the intent-based navigation.
       * Additionally, the outbound definition can be used to provide parameters for intent-based navigation.
       * See {@link topic:be0cf40f61184b358b5faedaec98b2da Descriptor for Applications, Components, and Libraries}
       * for more information.
       */
      sOutbound: string,
      /**
       * Optional map containing key/value pairs to be passed to the intent.
       * If mNavigationParameters are provided, the parameters provided in the outbound definition of the manifest
       * are ignored.
       */
      mNavigationParameters: object
    ): void;
  }
}

declare module "sap/fe/core/controllerextensions/MessageHandler" {
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

  /**
   * @SINCE 1.90.0
   * @EXPERIMENTAL (since 1.90.0)
   *
   * A controller extension offering message handling.
   */
  export default class MessageHandler extends ControllerExtension {
    constructor();

    /**
     * @SINCE 1.90.0
     * @EXPERIMENTAL (since 1.90.0)
     *
     * Shows a message dialog with transition messages if there are any.
     * The message dialog is shown as a modal dialog. Once the user confirms the dialog, all transition messages
     * are removed from the message model. If there is more than one message, a list of messages is shown. The
     * user
     * can filter on message types and can display details as well as the long text. If there is one message,
     * the dialog immediately shows the details of the message. If there is just one success message, a message
     * toast is shown instead.
     *
     * @returns A promise that is resolved once the user closes the dialog. If there are no messages
     * to be shown, the promise is resolved immediately
     */
    showMessageDialog(): Promise<any>;
  }
}

declare module "sap/fe/core/controllerextensions/Paginator" {
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

  import Context from "sap/ui/model/odata/v4/Context";

  /**
   * @SINCE 1.94.0
   *
   * Controller extension providing hooks for the navigation using paginators
   */
  export default class Paginator extends ControllerExtension {
    constructor();

    /**
     * @SINCE 1.94.0
     *
     * Initiates the paginator control.
     */
    initialize(
      /**
       * ODataListBinding object
       */
      oBinding: any,
      /**
       * Current context where the navigation is initiated
       */
      oContext?: Context
    ): void;
    /**
     * @SINCE 1.94.0
     *
     * Returns the updated context after the paginator operation.
     */
    onContextUpdate(
      /**
       * Final context returned after the paginator action
       */
      oContext: Context
    ): void;
  }
}

declare module "sap/fe/core/controllerextensions/Routing" {
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

  import Context from "sap/ui/model/odata/v4/Context";

  /**
   * @SINCE 1.86.0
   *
   * A controller extension offering hooks into the routing flow of the application
   */
  export default class Routing extends ControllerExtension {
    constructor();

    /**
     * @SINCE 1.90.0
     *
     * Allows navigation to a specific context.
     */
    navigate(
      /**
       * Object containing the context to be navigated
       */
      oContext: Context,
      /**
       * Object containing the parameters for the navigation
       */
      parameters?: {
        /**
         * By default, the internal algorithm decides whether the navigation preserves the previous entry. PreserveHistory
         * allows you to override this behavior.
         */
        preserveHistory: boolean;
      }
    ): void;
    /**
     * Navigate to another target.
     *
     * @returns Promise that is resolved when the navigation is finalized
     */
    navigateToRoute(
      /**
       * Name of the target route
       */
      sTargetRouteName: string,
      /**
       * Parameters to be used with route to create the target hash
       */
      oParameters?: any
    ): Promise<any>;
    /**
     * @SINCE 1.90.0
     *
     * This function is used to intercept the routing event after binding a page.
     * If it is declared as an extension, it allows you to intercept and change the normal flow of binding.
     *
     * This function is not called directly, but overridden separately by consuming controllers.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    onAfterBinding(
      /**
       * Object containing the context to be navigated
       */
      oContext: object
    ): void;
    /**
     * @SINCE 1.90.0
     *
     * This function is used to intercept the routing event before binding a page.
     * If it is declared as an extension, it allows you to intercept and change the normal flow of binding.
     *
     * This function is not called directly, but overridden separately by consuming controllers.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    onBeforeBinding(
      /**
       * Object containing the context for the navigation
       */
      oContext: object
    ): void;
    /**
     * @SINCE 1.86.0
     *
     * This function can be used to intercept the routing event happening during the normal process of navigating
     * from one page to another.
     * If declared as an extension, it allows you to intercept and change the normal navigation flow.
     * If you decide to do your own navigation processing, you can return `true` to prevent the default routing
     * behavior.
     *
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     *
     *
     * @returns `true` to prevent the default execution, false to keep the standard behavior
     */
    onBeforeNavigation(
      /**
       * Object containing row context and page context
       */
      mNavigationParameters: {
        /**
         * The currently selected context
         */
        bindingContext: Context;
      }
    ): boolean;
  }
}

declare module "sap/fe/core/controllerextensions/Share" {
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

  /**
   * @SINCE 1.86.0
   *
   * A controller extension offering hooks into the routing flow of the application
   */
  export default class Share extends ControllerExtension {
    constructor();

    /**
     * @SINCE 1.93.0
     *
     * Adapts the metadata used while sharing the page URL via 'Send Email', 'Share in SAP Jam', and 'Save as
     * Tile'.
     *
     * @returns Share Metadata or a Promise resolving the Share Metadata
     */
    adaptShareMetadata(
      /**
       * Object containing the share metadata.
       */
      oShareMetadata: {
        /**
         * Email-specific metadata.
         */
        email?: {
          /**
           * Title that will be used as "email subject" in 'Send Email'. This takes precedence over oShareMetadata.title.
           */
          title: string;
          /**
           * URL that will be used specifically for 'Send Email'. This takes precedence over oShareMetadata.url.
           */
          url: string;
        };
        /**
         * SAP Jam-specific metadata.
         */
        jam?: {
          /**
           * Title that will be used as 'share text' in 'Share in SAP Jam'. This takes precedence over oShareMetadata.title.
           */
          title: string;
          /**
           * URL that will be used specifically for 'Share in SAP Jam'. This takes precedence over oShareMetadata.url.
           */
          url: string;
        };
        /**
         * Save as Tile-specific metadata.
         */
        tile?: {
          /**
           * Icon to be used for the tile.
           */
          icon: string;
          /**
           * Query URL of an OData service from which data for a dynamic tile is read.
           */
          queryUrl: string;
          /**
           * Subtitle to be used for the tile.
           */
          subtitle: string;
          /**
           * Title to be used for the tile. This takes precedence over oShareMetadata.title.
           */
          title: string;
          /**
           * URL that will be used specifically for 'Save as Tile'. This takes precedence over oShareMetadata.url.
           */
          url: string;
        };
        /**
         * Default title that will be used as 'email subject' in 'Send Email', 'share text' in 'Share in SAP Jam'
         * and 'title' in 'Save as Tile'
         */
        title: string;
        /**
         * Default URL that will be used via 'Send Email', 'Share in SAP Jam', and 'Save as Tile'
         */
        url: string;
      }
    ): object | Promise<any>;
    /**
     * @SINCE 1.93.0
     *
     * Opens the share sheet.
     */
    openShareSheet(
      /**
       * The control to which the ActionSheet is opened.
       */
      oControl: object
    ): void;
  }
}

declare module "sap/fe/core/controllerextensions/ViewState" {
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

  import ManagedObject from "sap/ui/base/ManagedObject";

  /**
   * @SINCE 1.85.0
   *
   * A controller extension offering hooks for state handling
   * If you need to maintain a specific state for your application, you can use the controller extension.
   */
  export default class ViewState extends ControllerExtension {
    constructor();

    /**
     * This function should add all controls relevant for refreshing to the provided control array.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    adaptBindingRefreshControls(
      /**
       * The collected controls
       */
      aCollectedControls: ManagedObject[]
    ): void;
    /**
     * Customize the `refreshBinding` function for a certain control.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    adaptBindingRefreshHandler(
      /**
       * The control for which the refresh handler is adapted.
       */
      oControl: ManagedObject,
      /**
       * A plain object which can have one function: `refreshBinding`
       */
      oControlHandler: any[]
    ): void;
    /**
     * Customize the `retrieve` and `apply` functions for a certain control.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    adaptControlStateHandler(
      /**
       * The control to get state handler for
       */
      oControl: ManagedObject,
      /**
       * A list of plain objects with two functions: `retrieve` and `apply`
       */
      aControlHandler: object[]
    ): void;
    /**
     * This function should add all controls for given view that should be considered for the state handling
     * to the provided control array.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    adaptStateControls(
      /**
       * The collected controls
       */
      aCollectedControls: ManagedObject[]
    ): void;
    /**
     * Applying additional, not control related, states - is called only if navigation type is iAppState.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    applyAdditionalStates(
      /**
       * The current view state
       */
      oViewState: object,
      /**
       * Extensible array of promises to be resolved before continuing
       */
      aPromises: Promise<any>
    ): void;
    /**
     * Defines whether the view state should only be applied once initially.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.Instead}.
     *
     * Important:
     * You should only override this method for custom pages and not for the standard ListReportPage and ObjectPage!
     *
     *
     * @returns If `true`, only the initial view state is applied once,
     * else any new view state is also applied on follow-up calls (default)
     */
    applyInitialStateOnly(): boolean;
    /**
     * Apply navigation parameters is not called if the navigation type is iAppState
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    applyNavigationParameters(
      /**
       * The current navigation parameter
       */
      oNavParameter: {
        /**
         * The actual navigation type
         */
        navigationType: any;
        /**
         * undefined
         */
        requiresStandardVariant?: boolean;
        /**
         * undefined
         */
        selectionVariant?: object;
        /**
         * undefined
         */
        selectionVariantDefaults?: object;
      },
      /**
       * Extensible array of promises to be resolved before continuing
       */
      aPromises: Promise<any>
    ): void;
    /**
     * Applies the given view state to this extensions view.
     *
     * @returns Promise for async state handling
     */
    applyViewState(
      /**
       * The view state to apply (can be undefined)
       */
      oViewState: any,
      /**
       * The current navigation parameter
       */
      oNavParameter: {
        /**
         * The actual navigation type
         */
        navigationType: any;
        /**
         * Defines whether the standard variant must be used in variant management
         */
        requiresStandardVariant?: boolean;
        /**
         * The selectionVariant from the navigation
         */
        selectionVariant?: object;
        /**
         * The selectionVariant defaults from the navigation
         */
        selectionVariantDefaults?: object;
      }
    ): Promise<any>;
    /**
     * Hook to react when state for given view was applied.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    onAfterStateApplied(
      /**
       * Extensible array of promises to be resolved before continuing
       */
      aPromises: Promise<any>
    ): void;
    /**
     * Hook to react before a state for given view is applied.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    onBeforeStateApplied(
      /**
       * Extensible array of promises to be resolved before continuing
       */
      aPromises: Promise<any>
    ): void;
    /**
     * Called when the application is restored due to keep-alive mode.
     */
    onRestore(): void;
    /**
     * Called when the application is suspended due to keep-alive mode.
     */
    onSuspend(): void;
    /**
     * Extend the map of additional states (not control bound) to be added to the current view state of the
     * given view.
     * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
     */
    retrieveAdditionalStates(
      /**
       * The additional state
       */
      mAdditionalStates: object
    ): void;
    /**
     * Retrieve the view state of this extensions view.
     * When this function is called more than once before finishing, all but the final response will resolve
     * to `undefined`.
     *
     * @returns A promise resolving the view state
     */
    retrieveViewState(): Promise<any>;
  }
}

declare module "sap/fe/core/fpm/Component" {
  /**
   * @SINCE 1.92.0
   * @EXPERIMENTAL (since 1.92.0)
   *
   * Component that can be used as a wrapper component for custom pages.
   * The component can be used in case you want to use SAP Fiori elements Building Blocks or XML template
   * constructions. You can either extend the component and set the viewName and contextPath within your code
   * or you can use it to wrap your custom XML view directly the manifest when you define your custom page
   * under sapui5/routing/targets:
   *
   *
   * ```javascript
   *
   * "myCustomPage": {
   * 	"type": "Component",
   * 	"id": "myCustomPage",
   * 	"name": "sap.fe.core.fpm",
   * 	"title": "My Custom Page",
   * 	"options": {
   * 		"settings": {
   * 			"viewName": "myNamespace.myView",
   * 			"contextPath": "/MyEntitySet"
   * 			}
   * 		}
   * 	}
   * ```
   */
  export default class Component
    /* was: sap.fe.core.TemplateComponent */ extends Object {
    constructor();
  }
}

declare module "sap/fe/core/rootView/NavContainer.controller" {
  import AppComponent from "sap/fe/core/AppComponent";

  import Model from "sap/ui/model/Model";

  import View from "sap/ui/core/mvc/View";

  /**
   * @SINCE 1.108.0
   *
   * Base controller class for your own root view with a sap.m.NavContainer control.
   * By using or extending this controller you can use your own root view with the sap.fe.core.AppComponent
   * and
   * you can make use of SAP Fiori elements pages and SAP Fiori elements building blocks.
   */
  export default class NavContainer
    /* was: sap.fe.core.RootViewBaseController */ extends Object {
    constructor();

    /**
     * @SINCE 1.91.0
     *
     * Returns the current app component.
     *
     * @returns The app component or, if not found, null
     */
    getAppComponent(): AppComponent;
    /**
     * Convenience method provided by SAP Fiori elements to enable applications to include the view model by
     * name into each controller.
     *
     * @returns The model instance
     */
    getModel(
      /**
       * The model name
       */
      sName?: string
    ): Model;
    /**
     * Convenience method for getting the resource bundle.
     *
     * @returns The resourceModel of the component
     */
    getResourceBundle(): /* was: sap.base.i18n.ResourceBundle */
      | any
      | Promise<any>;
    /**
     * Convenience method for setting the view model in every controller of the application.
     *
     * @returns The view instance
     */
    setModel(
      /**
       * The model instance
       */
      oModel: Model,
      /**
       * The model name
       */
      sName: string
    ): View;
  }
}

declare namespace sap {
  interface IUI5DefineDependencyNames {
    "sap/fe/core/AppComponent": undefined;

    "sap/fe/core/BaseController": undefined;

    "sap/fe/core/controllerextensions/EditFlow": undefined;

    "sap/fe/core/controllerextensions/IntentBasedNavigation": undefined;

    "sap/fe/core/controllerextensions/MessageHandler": undefined;

    "sap/fe/core/controllerextensions/Paginator": undefined;

    "sap/fe/core/controllerextensions/Routing": undefined;

    "sap/fe/core/controllerextensions/Share": undefined;

    "sap/fe/core/controllerextensions/ViewState": undefined;

    "sap/fe/core/ExtensionAPI": undefined;

    "sap/fe/core/fpm/Component": undefined;

    "sap/fe/core/library": undefined;

    "sap/fe/core/PageController": undefined;

    "sap/fe/core/rootView/NavContainer.controller": undefined;
  }
}
