// For Library Version: 1.108.37

declare module "sap/fe/templates/library" {}

declare module "sap/fe/templates/ListReport/ExtensionAPI" {
  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
   *
   * Extension API for list reports in SAP Fiori elements for OData V4.
   */
  export default class ExtensionAPI
    /* was: sap.fe.templates.ExtensionAPI */ extends Object {
    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;
    /**
     * This method converts filter conditions to filters.
     *
     * @returns Object containing the converted FilterBar filters.
     */
    createFiltersFromFilterConditions(
      /**
       * Map containing the filter conditions of the FilterBar.
       */
      mFilterConditions: any
    ): object;
    /**
     * Retrieves the editFlow controller extension for this page.
     *
     * @returns The editFlow controller extension
     */
    getEditFlow(): /* was: sap.fe.templates.EditFlow */ any;
    /**
     * Provides all the model filters from the filter bar that are currently active
     * along with the search expression.
     *
     * @returns An array of active filters and the search expression.
     */
    getFilters(): object;
    /**
     * Retrieves the intentBasedNavigation controller extension for this page.
     *
     * @returns The intentBasedNavigation controller extension
     */
    getIntentBasedNavigation(): /* was: sap.fe.templates.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.templates.Routing */ any;
    /**
     * Gets the list entries currently selected for the displayed control.
     *
     * @returns Array containing the selected contexts
     */
    getSelectedContexts(): 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;
    /**
     * Refreshes the List Report.
     * This method currently only supports triggering the search (by clicking on the GO button)
     * in the List Report Filter Bar. It can be used to request the initial load or to refresh the
     * currently shown data based on the filters entered by the user.
     * Please note: The Promise is resolved once the search is triggered and not once the data is returned.
     *
     * @returns Resolved once the data is refreshed or rejected if the request failed
     */
    refresh(): any;
    /**
     * Remove a dependent control from this SAP Fiori elements page.
     */
    removeDependent(
      /**
       * Control to be added as a dependent control
       */
      oControl: Control
    ): void;
    /**
     * Provide an option for showing a custom message in the message strip above the list report table.
     */
    setCustomMessage(
      /**
       * Custom message along with the message type to be set on the table.
       */
      message: undefined | /* was: sap.fe.templates.LRCustomMessage */ any,
      /**
       * The tabKey identifying the table where the custom message is displayed. If tabKey is empty, the message
       * is displayed in all tabs . If tabKey = ['1','2'], the message is displayed in tabs 1 and 2 only
       */
      tabKey?: object | string | string[],
      /**
       * A function that is called when the user closes the message bar.
       */
      onClose?: Function
    ): void;
    /**
     * Set the filter values for the given property in the filter bar.
     * The filter values can be either a single value or an array of values.
     * Each filter value must be represented as a primitive value.
     *
     * @returns A promise for asynchronous handling
     */
    setFilterValues(
      /**
       * The path to the property as a condition path
       */
      sConditionPath: string,
      /**
       * undefined
       */
      sOperator: undefined | string,
      /**
       * The values to be applied
       */
      vValues?: string | number | boolean | string[] | number[] | boolean[]
    ): Promise<any>;
    /**
     * 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/templates/ObjectPage/ExtensionAPI" {
  import Control from "sap/ui/core/Control";

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

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

  import Message from "sap/ui/core/message/Message";

  /**
   * @SINCE 1.79.0
   *
   * Extension API for object pages on SAP Fiori elements for OData V4.
   */
  export default class ExtensionAPI
    /* was: sap.fe.templates.ExtensionAPI */ extends Object {
    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;
    /**
     * Gets the bound context of the current object page.
     *
     * @returns Context bound to the object page
     */
    getBindingContext(): undefined | object | Context;
    /**
     * Retrieves the editFlow controller extension for this page.
     *
     * @returns The editFlow controller extension
     */
    getEditFlow(): /* was: sap.fe.templates.EditFlow */ any;
    /**
     * Retrieves the intentBasedNavigation controller extension for this page.
     *
     * @returns The intentBasedNavigation controller extension
     */
    getIntentBasedNavigation(): /* was: sap.fe.templates.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.templates.Routing */ any;
    /**
     * Gets the list entries currently selected for the table.
     *
     * @returns Array containing the selected contexts
     */
    getSelectedContexts(
      /**
       * The ID identifying the table the selected context is requested for
       */
      sTableId: string
    ): any;
    /**
     * Hides the message strip below the anchor bar.
     */
    hideMessage(): void;
    /**
     * 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;
    /**
     * Refreshes either the whole object page or only parts of it.
     *
     * @returns Resolved once the data is refreshed or rejected if the request failed
     */
    refresh(
      /**
       * undefined
       */
      vPath: undefined | string | string[]
    ): Promise<any>;
    /**
     * Remove a dependent control from this SAP Fiori elements page.
     */
    removeDependent(
      /**
       * Control to be added as a dependent control
       */
      oControl: Control
    ): void;
    /**
     * Displays the message strip below the anchor bar.
     */
    showMessages(
      /**
       * The message to be displayed
       */
      messages: Message[]
    ): Promise<any>;
    /**
     * Displays or hides the side content of an object page.
     */
    showSideContent(
      /**
       * Key of the side content fragment as defined in the manifest.json
       */
      sSubSectionKey: string,
      /**
       * undefined
       */
      bShow: undefined | boolean
    ): 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 namespace sap {
  interface IUI5DefineDependencyNames {
    "sap/fe/templates/library": undefined;

    "sap/fe/templates/ListReport/ExtensionAPI": undefined;

    "sap/fe/templates/ObjectPage/ExtensionAPI": undefined;
  }
}
