// This is autogenerated, do not edit

declare module "sap/fe/core/controllerextensions/MessageHandlerOverrides" {
	/**
	 * Defines the message details relevant for the MessageButton building block to display a popover.
	 * @public
	 */
	export type MessageDetail = {
		message: Message;
		groupName?: string;
		activeTitleHandler?: Function;
	};
	import type Message from "sap/ui/core/message/Message";
	export default interface MessageHandlerOverrides {
		/**
		 * Allows the consumer of the MessageButton building block to decide which bound messages are shown and how.
		 *
		 * This hook is called when the MessageButton building block detects a change in the message model.
		 * The hooks allow you to define the behavior for messages in the MessageButton building block.
		 *
		 * Consumers are able to do the following with this hook:
		 *
		 * 1. Filter out messages so that they are not shown on the message button.
		 * 2. Group messages based on their UI.
		 * 3. Provide a presser handler if the message should display as a link.
		 * @param _messageDetails Object containing the details related to the message.
		 * @param _messageDetails.message The message from the message. It must not be modified directly.
		 * @param _messageDetails.groupName The group name associated with the current message.
		 * @param _messageDetails.activeTitleHandler Function to handle the click event on a message in the MessageButton building block.
		 * @returns A promise that must be returned by the overridden method.
		 * @public
		 */
		beforeShowMessageButton(_messageDetails: MessageDetail[]): Promise<void>;
	}
}

declare module "sap/fe/core/controllerextensions/EditFlowOverrides" {
	import type { default as Context } from "sap/ui/model/odata/v4/Context";
	export default interface EditFlowOverrides {
		/**
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onBeforeCreate
		 * @param _mParameters.contextPath Path pointing to the context on which Create action is triggered
		 * @param _mParameters.createParameters Array of values that are filled in the Action Parameter Dialog
		 * @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.
		 * @public
		 * @since 1.98.0
		 */
		onBeforeCreate(_mParameters?: { contextPath?: string; createParameters?: unknown[] }): Promise<void>;
		/**
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onBeforeEdit
		 * @param _mParameters.context Page context that is going to be edited.
		 * @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.
		 * @public
		 * @since 1.98.0
		 */
		onBeforeEdit(_mParameters?: { context?: Context }): Promise<void>;
		/**
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onBeforeSave
		 * @param _mParameters.context Page context that is going to be saved.
		 * @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.
		 * @public
		 * @since 1.90.0
		 */
		onBeforeSave(_mParameters?: { context?: Context }): Promise<void>;
		/**
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onBeforeDiscard
		 * @param _mParameters.context Page context that is going to be discarded.
		 * @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.
		 * @public
		 * @since 1.98.0
		 */
		onBeforeDiscard(_mParameters?: { context?: Context }): Promise<void>;
		/**
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onBeforeDelete
		 * @param _mParameters.contexts An array of contexts that are going to be deleted
		 * @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.
		 * @public
		 * @since 1.98.0
		 */
		onBeforeDelete(_mParameters?: { contexts?: Context[] }): Promise<void>;
		/**
		 * This function can be used to execute code after the 'Save' action.
		 * You can execute custom coding in this function.
		 *
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onAfterSave
		 * @param _mParameters.context The context we obtained after saving
		 * @returns A promise to be returned by the overridden method. If rejected, any further processing by the framework is stopped.
		 * @public
		 * @since 1.116.0
		 */
		onAfterSave(_mParameters?: { context?: Context }): Promise<void>;
		/**
		 * This function can be used to execute code after the 'Create' action.
		 * You can execute custom coding in this function.
		 *
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onAfterCreate
		 * @param _mParameters.context The newly created context
		 * @returns A promise to be returned by the overridden method. If rejected, any further processing by the framework is stopped.
		 * @public
		 * @since 1.116.0
		 */
		onAfterCreate(_mParameters?: { context?: Context }): Promise<void>;
		/**
		 * This function can be used to execute code after the 'Edit' action.
		 * You can execute custom coding in this function.
		 *
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onAfterEdit
		 * @param _mParameters.context Page context that is going to be edited.
		 * @returns A promise to be returned by the overridden method. If rejected, any further processing by the framework is stopped.
		 * @public
		 * @since 1.116.0
		 */
		onAfterEdit(_mParameters?: { context?: Context }): Promise<void>;
		/**
		 * This function can be used to execute code after the 'Discard' action.
		 * You can execute custom coding in this function.
		 *
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onAfterDiscard
		 * @param _mParameters.context The context obtained after discarding the object, or undefined if we discarded a new object
		 * @returns A promise to be returned by the overridden method. If rejected, any further processing by the framework is stopped.
		 * @public
		 * @since 1.116.0
		 */
		onAfterDiscard(_mParameters?: { context?: Context }): Promise<void>;
		/**
		 * This function can be used to execute code after the 'Delete' action.
		 * You can execute custom coding in this function.
		 *
		 * 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}.
		 * @param _mParameters Object containing the parameters passed to onAfterDelete
		 * @param _mParameters.contexts An array of contexts that are going to be deleted
		 * @returns A promise to be returned by the overridden method. If rejected, any further processing by the framework is stopped.
		 * @public
		 * @since 1.116.0
		 */
		onAfterDelete(_mParameters?: { contexts?: Context[] }): Promise<void>;
		/**
		 * This function can be used to execute code on the mass edit save.
		 * You can execute custom coding in this function.
		 * If you decide to do your own save processing, you can return `true` to prevent the default save 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.Instead}.
		 * @param _mParameters Object containing the parameters passed to customMassEditSave
		 * @param _mParameters.aContexts Array containing the selected contexts for the mass edit
		 * @param _mParameters.oUpdateData A dictionary containing the propertyPath and its value
		 * @returns `true` to prevent the default execution, `false` to keep the standard behavior
		 * @public
		 * @since 1.130.0
		 */
		customMassEditSave(_mParameters: { aContexts: Context[]; oUpdateData: Record<string, unknown> }): Promise<boolean>;
	}
}

declare module "sap/fe/core/controllerextensions/IntentBasedNavigationOverrides" {
	import type SelectionVariant from "sap/fe/navigation/SelectionVariant";
	export default interface IntentBasedNavigationOverrides {
		/**
		 * Provides a hook to customize the {@link sap.fe.navigation.SelectionVariant} related to the intent-based navigation.
		 * @param _oSelectionVariant SelectionVariant provided by SAP Fiori elements.
		 * @param _oNavigationInfo Object containing intent-based navigation-related info
		 * @param _oNavigationInfo.semanticObject Semantic object related to the intent
		 * @param _oNavigationInfo.action Action related to the intent
		 * @public
		 * @since 1.86.0
		 */
		adaptNavigationContext(
			_oSelectionVariant: SelectionVariant,
			_oNavigationInfo: {
				semanticObject: string;
				action: string;
			}
		): void;
	}
}

declare module "sap/fe/core/controllerextensions/PaginatorOverrides" {
	import type { ContextNavigationType } from "sap/fe/core/library";
	import type { default as Context } from "sap/ui/model/odata/v4/Context";
	export default interface PaginatorOverrides {
		/**
		 * Returns the updated context after the paginator operation.
		 * @param oContext Final context returned after the paginator action
		 * @public
		 * @since 1.94.0
		 */
		// eslint-disable-next-line @typescript-eslint/no-unused-vars
		onContextUpdate(oContext: Context): void;
		/**
		 * This method is invoked whenever a context is loaded using the paginator buttons. It determines whether the context supports navigation. The method must return one of the following:
		 * ContextNavigationType.None: If the context is not navigable.
		 * ContextNavigationType.Internal: If the context supports internal navigation within the same application to a detail view, such as an object page or a subobject page.
		 * ContextNavigationType.External: If the context navigates to an external application.
		 * The paginator buttons only allow navigation to contexts with internal navigation. Contexts with None or External navigation are skipped.
		 * @param context Object containing the context to be navigated.
		 * @returns A Promise which should resolve to ContextNavigationType enum.
		 * @public
		 * @since 1.138.0
		 */
		determineContextNavigationType(context: Context): Promise<ContextNavigationType>;
	}
}

declare module "sap/fe/core/controllerextensions/RoutingOverrides" {
	import type Context from "sap/ui/model/odata/v4/Context";
	export default interface RoutingOverrides {
		/**
		 * This function can be used to intercept the routing event during the normal navigation process, such as when a table row is clicked to navigate, pagination buttons are used, the Apply button in an object page is clicked, or a sub-object page in a flexible column layout is closed.
		 *
		 * The function is not called during other means of external outbound navigation such as a navigation configured using a link or by using navigation buttons.
		 *
		 * If declared as an extension, it allows you to intercept and change the normal navigation flow.
		 * If you decide to implement 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 and not called directly.
		 * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
		 * @param mNavigationParameters Object containing row context and page context
		 * @param mNavigationParameters.bindingContext The target navigation context
		 * @returns `true` to prevent the default execution, false to keep the standard behavior
		 * @public
		 * @since 1.86.0
		 */
		onBeforeNavigation(mNavigationParameters: { bindingContext: Context }): Promise<boolean>;
		/**
		 * 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}.
		 * @param oContext Object containing the context for the navigation
		 * @public
		 * @since 1.90.0
		 */
		// eslint-disable-next-line @typescript-eslint/no-unused-vars
		onBeforeBinding(oContext: object | null): void;
		/**
		 * 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}.
		 * @param oContext Object containing the context to be navigated
		 * @public
		 * @since 1.90.0
		 */
		// eslint-disable-next-line @typescript-eslint/no-unused-vars
		onAfterBinding(oContext: object | null): void;
	}
}

declare module "sap/fe/core/controllerextensions/ShareOverrides" {
	export type ShareMetadata = {
		url: string;
		title: string;
		email: {
			url: string;
			title: string;
		};
		jam: {
			url?: string;
			title: string;
		};
		tile: {
			url?: string;
			title: string;
			subtitle: string;
			icon?: string;
			queryUrl?: string;
		};
	};
	export default interface ShareOverrides {
		/**
		 * Adapts the metadata used while sharing the page URL using 'Send Email', 'Share in SAP Jam', and 'Save as Tile'.
		 * @param oShareMetadata Object containing the share metadata.
		 * @param oShareMetadata.url Default URL that will be used with 'Send Email', 'Share in SAP Jam', and 'Save as Tile'
		 * @param oShareMetadata.title Default title that will be used as the 'email subject' in 'Send Email', 'share text' in 'Share in SAP Jam' and 'title' in 'Save as Tile'
		 * @param oShareMetadata.email Email-specific metadata.
		 * @param oShareMetadata.email.url URL that will be used specifically for 'Send Email'. This takes precedence over oShareMetadata.url.
		 * @param oShareMetadata.email.title Title that will be used as "email subject" in 'Send Email'. This takes precedence over oShareMetadata.title.
		 * @param oShareMetadata.jam SAP Jam-specific metadata.
		 * @param oShareMetadata.jam.url URL that will be used specifically for 'Share in SAP Jam'. This takes precedence over oShareMetadata.url.
		 * @param oShareMetadata.jam.title Title that will be used as 'share text' in 'Share in SAP Jam'. This takes precedence over oShareMetadata.title.
		 * @param oShareMetadata.tile Save as Tile-specific metadata.
		 * @param oShareMetadata.tile.url URL that will be used specifically for 'Save as Tile'. This takes precedence over oShareMetadata.url.
		 * @param oShareMetadata.tile.title Title to be used for the tile. This takes precedence over oShareMetadata.title.
		 * @param oShareMetadata.tile.subtitle Subtitle to be used for the tile.
		 * @param oShareMetadata.tile.icon Icon to be used for the tile.
		 * @param oShareMetadata.tile.queryUrl Query URL of an OData service from which data for a dynamic tile is read.
		 * @returns Share Metadata or a Promise resolving the Share Metadata
		 * @public
		 * @since 1.93.0
		 */
		adaptShareMetadata(oShareMetadata: {
			url: string;
			title: string;
			email: {
				url: string;
				title: string;
			};
			jam: {
				url?: string;
				title: string;
			};
			tile: {
				url?: string;
				title: string;
				subtitle: string;
				icon?: string;
				queryUrl?: string;
			};
		}): ShareMetadata | Promise<ShareMetadata>;
	}
}

declare module "sap/fe/core/controllerextensions/ViewStateOverrides" {
	export default interface ViewStateOverrides {
		/**
		 * Called when the application is suspended due to keep-alive mode.
		 * @public
		 */
		onSuspend(): void;
		/**
		 * Called when the application is restored due to keep-alive mode.
		 * @public
		 */
		onRestore(): void;
	}
}

declare module "sap/fe/core/controllerextensions/BaseControllerExtension" {
	import type PageController from "sap/fe/core/PageController";
	import type EditFlowOverrides from "sap/fe/core/controllerextensions/EditFlowOverrides";
	import type IntentBasedNavigationOverride from "sap/fe/core/controllerextensions/IntentBasedNavigationOverrides";
	import type MessageHandlerOverrides from "sap/fe/core/controllerextensions/MessageHandlerOverrides";
	import type PaginatorOverrides from "sap/fe/core/controllerextensions/PaginatorOverrides";
	import type RoutingOverrides from "sap/fe/core/controllerextensions/RoutingOverrides";
	import type ShareOverrides from "sap/fe/core/controllerextensions/ShareOverrides";
	import type ViewStateOverrides from "sap/fe/core/controllerextensions/ViewStateOverrides";
	import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";

	type MapThis<T, S> = {
		[P in keyof S]?: S[P] extends (...args: infer A) => infer R ? (this: T, ...args: A) => R : S[P];
	};
	export type ControllerExtensionOverrides<T, ControllerType> = {
		// Lifecycle hooks
		onInit?: (this: T) => void;
		onBeforeRendering?: (this: T) => void;
		onAfterRendering?: (this: T) => void;
		onExit?: (this: T) => void;

		// CExt Hooks
		paginator?: MapThis<T, PaginatorOverrides>;
		editFlow?: MapThis<T, EditFlowOverrides>;
		routing?: MapThis<T, RoutingOverrides>;
		messageHandler?: MapThis<T, MessageHandlerOverrides>;
		intentBasedNavigation?: MapThis<T, IntentBasedNavigationOverride>;
		share?: MapThis<T, ShareOverrides>;
		viewState?: MapThis<T, ViewStateOverrides>;
	} & MapThis<
		T,
		Omit<
			ControllerType,
			"editFlow" | "paginator" | "routing" | "messageHandler" | "intentBasedNavigation" | "recommendations" | "share" | "viewState"
		>
	>;

	// eslint-disable-next-line @typescript-eslint/ban-ts-comment
	// @ts-ignore
	export default class BaseControllerExtension<T extends PageController = PageController> extends ControllerExtension {
		protected base: T;

		public static createExtensionOverrides<K, BaseControllerType = PageController>(
			overrides: ControllerExtensionOverrides<K, BaseControllerType>
		): ControllerExtensionOverrides<K, BaseControllerType>;

		constructor();
	}
}

// For Library Version: 1.145.1

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

  import { IAsyncContentCreation } from "sap/ui/core/library";

  /**
   * 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
   * 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
    implements IAsyncContentCreation
  {
    __implements__sap_ui_core_IAsyncContentCreation: boolean;

    /**
     * Changes the page configuration of SAP Fiori elements.
     * This method enables you to change the page configuration of SAP Fiori elements.
     */
    changePageConfiguration(
      /**
       * The ID of the page for which the configuration is to be changed.
       */
      pageId: string,
      /**
       * The path in the page settings for which the configuration is to be changed.
       */
      path: string,
      /**
       * The new value of the configuration. This could be a plain value like a string, or a Boolean, or a structured
       * object.
       */
      value: any
    ): void;
    /**
     * Provides a hook to initialize feature toggles.
     * This hook is being called by the SAP Fiori elements AppComponent at the time feature toggles can be initialized.
     * To change page configuration, use the {@link sap.fe.core.AppComponent#changePageConfiguration } method.
     *
     *
     *
     * @returns A promise without any value to allow asynchronous processes
     */
    initializeFeatureToggles(): Promise<void>;
  }
  /**
   * Describes the settings that can be provided to the AppComponent 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";

  /**
   * 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.
   *
   *
   * @since 1.90.0
   */
  export default class BaseController extends Controller {
    /**
     * Returns the current app component.
     *
     * @since 1.91.0
     *
     * @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 | undefined;
    /**
     * 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 UI5Element from "sap/ui/core/Element";

  import EditFlow from "sap/fe/core/controllerextensions/EditFlow";

  import IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";

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

  import Routing from "sap/fe/core/controllerextensions/Routing";

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

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

  import { WatcherCallback } from "sap/fe/core/controls/DataWatcher";

  /**
   * Common Extension API for all pages of SAP Fiori elements for OData V4.
   * To correctly integrate your app extension coding with SAP Fiori elements, use only the extensionAPI of
   * SAP Fiori elements. Don't access or manipulate controls, properties, models, or other internal objects
   * created by the SAP Fiori elements framework.
   * {@link demo:sap/fe/core/fpmExplorer/index.html#/controllerExtensions/controllerExtensionsOverview Overview of Building Block}
   *
   *
   * @since 1.79.0
   */
  export default class ExtensionAPI extends BaseObject {
    /**
     * 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;
    /**
     * Access a control by its ID. If you attempt to access an internal control instead of the stable API, the
     * method will raise an error.
     *
     *
     * @returns The requested control, if found in the view / section.
     */
    byId(
      /**
       * ID of the control without view and section prefix.
       */
      id: string
    ): UI5Element | undefined;
    /**
     * Retrieves the editFlow controller extension for this page.
     *
     *
     * @returns The editFlow controller extension
     */
    getEditFlow(): EditFlow;
    /**
     * Retrieves the intentBasedNavigation controller extension for this page.
     *
     *
     * @returns The intentBasedNavigation controller extension
     */
    getIntentBasedNavigation(): IntentBasedNavigation;
    /**
     * 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
    ): Model | undefined;
    /**
     * Retrieves the routing controller extension for this page.
     *
     *
     * @returns The routing controller extension
     */
    getRouting(): Routing;
    /**
     * 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<UI5Element | UI5Element[]>;
    /**
     * Navigate to another target.
     */
    navigateToTarget(
      /**
       * Name of the target route
       */
      sTarget: string,
      /**
       * OData v4 context instance
       */
      oContext: Context1
    ): void;
    /**
     * Remove a dependent control from this SAP Fiori elements page.
     */
    removeDependent(
      /**
       * Control to be added as a dependent control
       */
      oControl: Control
    ): void;
    /**
     * Run the given function with the FPM context of the current page.
     * This allows to initialize all the elements required by building blocks to render correctly.
     *
     *
     * @returns The result of the function
     */
    runWithFPMContext(
      /**
       * The Function to be executed
       */
      fn: Function
    ): 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(): any;
    /**
     * Watch a property from the main page context and trigger a callback when the value changes.
     */
    watchProperty(
      /**
       * The name of the property to watch
       */
      propertyName: string,
      /**
       * The callback to trigger when the value changes
       */
      callback: WatcherCallback
    ): void;
  }
}

declare module "sap/fe/core/library" {
  /**
   * Possible navigation modes for a pagination.
   *
   * @since 1.138.0
   */
  export enum ContextNavigationType {
    /**
     * Indicates that the navigation is to an external application.
     */
    External = "undefined",
    /**
     * Indicates that the navigation is to a subobject page within the same application.
     */
    Internal = "undefined",
    /**
     * Indicates that there is no navigation.
     */
    None = "undefined",
  }
  /**
   * Possible initial load (first app startup) modes for a ListReport.
   *
   * @since 1.86.0
   */
  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/PageController" {
  import BaseController from "sap/fe/core/BaseController";

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

  /**
   * Base controller class for your custom page used inside an SAP Fiori elements application.
   * This controller provides preconfigured extensions that ensure you have the basic functionalities required
   * to use the building blocks.
   *
   *
   * @since 1.88.0
   */
  export default class PageController extends BaseController {
    /**
     * Get the extension API for the current page.
     *
     *
     * @returns The extension API.
     */
    getExtensionAPI(): ExtensionAPI;
  }
}

declare module "sap/fe/core/ReuseComponent" {
  import {
    default as Component,
    $ComponentSettings,
  } from "sap/fe/core/fpm/Component";

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

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

  /**
   * Base component for reuse compontents in SAP Fiori elements.
   * By extending from this component you get access to the extension API of the page component
   * and get native support for SAP Fiori elements building blocks.
   *
   *
   * @since 1.145.0
   */
  export default class ReuseComponent extends Component {
    /**
     *
     * @returns Reference to sap.fe.core.ReuseComponent
     * to allow method chaining
     */
    attachInitialized(
      /**
       * An application-specific payload object that will be passed to the event handler along with the event
       * object when firing the event
       */
      oData: object,
      /**
       * The function to be called when the event occurs
       */
      fnFunction: (p1: Event) => void,
      /**
       * The context object to call the event handler with. Defaults to this `this` control
       */
      oListener?: object
    ): this;
    /**
     *
     * @returns Reference to sap.fe.core.ReuseComponent
     * to allow method chaining
     */
    attachInitialized(
      /**
       * The function to be called when the event occurs
       */
      fnFunction: (p1: Event) => void,
      /**
       * The context object to call the event handler with. Defaults to this `this` control
       */
      oListener?: object
    ): this;
    /**
     *
     * @returns Reference to sap.fe.core.ReuseComponent
     * to allow method chaining
     */
    detachInitialized(
      /**
       * The function to be called when the event occurs
       */
      fnFunction: (p1: Event) => void,
      /**
       * The context object to call the event handler with. Defaults to this `this` control
       */
      oListener?: object
    ): this;
    /**
     * Fires event initialized
     * to attached listeners.
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     *
     * @returns Reference to sap.fe.core.ReuseComponent
     * to allow method chaining
     */
    fireInitialized(
      /**
       * The parameters to pass along with the event.
       * See {@link Function} for the set of parameters that are expected by the event handlers.
       */
      mParameters?: {}
    ): this;
    /**
     * Returns the extension API of the page component that owns the reuse component.
     *
     *
     * @returns The extension API
     */
    getExtensionAPI(): ExtensionAPI;
  }
  /**
   * Describes the settings that can be provided to the ReuseComponent constructor.
   */
  export interface $ReuseComponentSettings extends $ComponentSettings {
    /**
     * Event that is fired once the component is initialized
     */
    initialized?: (oEvent: Event) => void;
  }

  /**
   * Parameters of the ReuseComponent#initialized event.
   */
  export interface ReuseComponent$InitializedEventParameters {}

  /**
   * Event object of the ReuseComponent#initialized event.
   */
  export type ReuseComponent$InitializedEvent = Event<
    ReuseComponent$InitializedEventParameters,
    ReuseComponent
  >;
}

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

  import { IAsyncContentCreation } from "sap/ui/core/library";

  import { PropertyBindingInfo } from "sap/ui/base/ManagedObject";

  /**
   * Base component for SAP Fiori elements floorplans.
   * This component provides as foundation for all SAP Fiori elements page types, and shall not be used directly.
   *
   *
   * @since 1.145.0
   */
  export default class TemplateComponent
    extends UIComponent
    implements
      IAsyncContentCreation,
      /* was: sap.fe.core.buildingBlocks.IBuildingBlockOwnerComponent.IBuildingBlockOwnerComponent */ Object
  {
    __implements__sap_ui_core_IAsyncContentCreation: boolean;
    __implements__sap_fe_core_buildingBlocks_IBuildingBlockOwnerComponent_IBuildingBlockOwnerComponent: boolean;
  }
  /**
   * Describes the settings that can be provided to the TemplateComponent constructor.
   */
  export interface $TemplateComponentSettings extends $UIComponentSettings {
    /**
     * Defines the path of the context used in the current page.
     */
    contextPath?: string | PropertyBindingInfo;

    /**
     * Enhance the i18n bundle used for this page with one or more app specific i18n resource bundles or resource
     * models
     * or a combination of both. The last resource bundle or model is given the highest priority.
     */
    enhanceI18n?: string[] | PropertyBindingInfo | `{${string}}`;
  }
}

declare module "sap/fe/core/buildingBlocks/BuildingBlock" {
  import {
    default as BuildingBlockBase,
    $BuildingBlockBaseSettings,
  } from "sap/fe/base/BuildingBlockBase";

  /**
   * Defines a control that will not exist in the DOM.
   * Instead, only its child will be there and this control will forward all DOM related instruction to it.
   *
   * @since 1.121.0
   */
  export default class BuildingBlock extends BuildingBlockBase {}
  /**
   * Describes the settings that can be provided to the BuildingBlock constructor.
   */
  export interface $BuildingBlockSettings extends $BuildingBlockBaseSettings {}
}

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

  /**
   * A base implementation for controller extension used internally in sap.fe for central functionalities.
   *
   * @since 1.118.0
   */
  // @ts-ignore
export default class BaseControllerExtension extends ControllerExtension {
    /**
     * Create the overrides for the controller extension.
     * This method is a helper to get the correct typing when implementing your own controller extension.
     *
     *
     *
     * @returns The overrides passed in as parameter with correct typing
     */
    static createExtensionOverrides(
      /**
       * The overrides to apply
       */
      overrides: object
    ): object;
  }
}

declare module "sap/fe/core/controllerextensions/CollaborativeDraft" {
  import BaseControllerExtension from "sap/fe/core/controllerextensions/BaseControllerExtension";

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

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

  /**
   * A controller extension to handle collaborative draft scenarios.
   *
   * @since 1.141.0
   */
  export default class CollaborativeDraft extends BaseControllerExtension {
    /**
     * Sends a notification to other users that new contexts have been created by the current user.
     * This notification must be sent after the new contexts have been created successfully in the back end.
     *
     *
     * @since 1.141.0
     */
    sendContextsCreated(
      /**
       * The array of newly created contexts, or the binding where the contexts were created
       */
      contextsOrBinding: Context[] | ODataListBinding
    ): void;
    /**
     * Sends a notification to other users that contexts have been deleted by the current user.
     * This notification must be sent after the contexts have been deleted successfully in the back end.
     *
     *
     * @since 1.141.0
     */
    sendContextsDeleted(
      /**
       * The array of deleted contexts
       */
      contexts: Context[]
    ): void;
    /**
     * Sends a notification to other users that a property has been locked or unlocked by the current user.
     *
     * @since 1.141.0
     */
    sendLockChange(
      /**
       * The context for the property
       */
      context: Context,
      /**
       * The name of the property
       */
      propertyName: string,
      /**
       * True if the property is locked, false if it is unlocked
       */
      isLocked: boolean
    ): void;
    /**
     * Sends a notification to other users that property values have been changed by the current user.
     * This notification must be sent after the changes have been sent successfully to the back end.
     *
     *
     * @since 1.141.0
     */
    sendPropertyValuesChange(
      /**
       * The context for the properties
       */
      context: Context,
      /**
       * The property name or the array of property names
       */
      propertyNames: string | string[]
    ): void;
  }
}

declare module "sap/fe/core/controllerextensions/EditFlow" {
  import BaseControllerExtension from "sap/fe/core/controllerextensions/BaseControllerExtension";

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

  import Button from "sap/m/Button";

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

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

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

  /**
   * A controller extension offering hooks into the edit flow of the application
   *
   * @since 1.90.0
   */
  export default class EditFlow extends BaseControllerExtension {
    /**
     * Submit the current set of changes and navigate back.
     *
     * @since 1.90.0
     *
     * @returns Promise resolves once the changes have been saved
     */
    applyDocument(
      /**
       * Context of the document
       */
      oContext: Context
    ): Promise<void>;
    /**
     * Discard the editable document.
     *
     * @since 1.90.0
     *
     * @returns Promise resolves once editable document has been discarded
     */
    cancelDocument(
      /**
       * Context of the editable document
       */
      oContext: Context,
      /**
       * Can contain the following attributes:
       */
      mParameters: {
        /**
         * This is the control used to open the discard popover
         */
        control?: Button;
        /**
         * Optional, supresses the discard popover and allows custom handling
         */
        skipDiscardPopover?: boolean;
      }
    ): Promise<Context | undefined>;
    /**
     * Creates a new document.
     *
     * @since 1.90.0
     *
     * @returns Promise resolves once the object has been created
     */
    createDocument(
      /**
       * ODataListBinding object or the binding path or a table building block for a temporary list binding
       */
      source: /* was: sap.fe.macros.Table */ any | ODataListBinding | string,
      /**
       * 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;
        /**
         * Defines the list of properties that are displayed in the creation dialog when the creation mode is set
         * to 'CreationDialog'.
         * The value is a comma-separated list of property names
         */
        creationDialogFields?: string[];
        /**
         * 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 within the table. Not supported on a List Report
         *
         * External - The creation is done in a different application specified by the parameter 'outbound'
         *
         * CreationDialog - the creation is done in the table, with a dialog allowing to specify some initial property
         * values (the properties are listed in `creationDialogFields`)
         */
        creationMode: string;
        /**
         * The initial data for the created document
         */
        data?: object;
        /**
         * The navigation target where the document is created in case of creationMode 'External'
         */
        outbound?: string;
        /**
         * The contexts that are selected in the table initiating the creation. Used in case of a TreeTable to determine
         * the parent context of the created document
         */
        selectedContexts?: Context[];
        /**
         * When enabled, an extra request checks if any drafts exist that were never saved. If unsaved drafts are
         * found, the newest one is opened. If no unsaved drafts are found, a new entity is created
         */
        singleDraftForCreate?: boolean;
        /**
         * ID of the table
         */
        tableId?: string;
      }
    ): Promise<void>;
    /**
     * This function can be used to execute code on the mass edit save.
     * You can execute custom coding in this function.
     * If you decide to do your own save processing, you can return `true` to prevent the default save 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.Instead }.
     *
     *
     * @since 1.130.0
     *
     * @returns `true` to prevent the default execution, `false` to keep the standard behavior
     */
    customMassEditSave(
      /**
       * Object containing the parameters passed to customMassEditSave
       */
      _mParameters: {
        /**
         * Array containing the selected contexts for the mass edit
         */
        aContexts: Context[];
        /**
         * A dictionary containing the propertyPath and its value
         */
        oUpdateData: Record<string, any>;
      }
    ): Promise<boolean>;
    /**
     * Deletes the document.
     *
     * @since 1.90.0
     *
     * @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;
        /**
         * If true, prevents automatic navigation after the document is deleted.
         */
        skipNavigation?: boolean;
        /**
         * Title of the object being deleted
         */
        title?: string;
      }
    ): Promise<void>;
    /**
     * Creates a draft document for the existing active document.
     *
     * @since 1.90.0
     *
     * @returns Promise resolved once the editable document is available with the editable context
     */
    editDocument(
      /**
       * Context of the active document
       */
      context: Context
    ): Promise<Context | void>;
    /**
     * Invokes an action (bound or unbound) and tracks the changes so that other pages can be refreshed and
     * show the updated data upon navigation.
     *
     * @since 1.90.0
     *
     * @returns A promise which resolves once the action has been executed. If resolved, the promise returns
     *
     *
     * 	 - If the parameter contexts is an array: an array of objects, each object containing a key "status",
     *     as well as "value" referencing the action status and the context
     *
     * 	 - If the parameter contexts is not an array: a single context
     *
     * The context(s) provided in the promise is (are) either the return value context of the action or the
     * bound context if the return value is undefined.
     */
    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[];
        /**
         * Disables strict handling of action calls to turn off 412 confirmation popups
         */
        disableStrictHandling?: boolean;
        /**
         * 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?: any;
        /**
         * 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;
      }
    ): any;
    /**
     * This function can be used to execute code after the 'Create' action.
     * You can execute custom coding in this function.
     * 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 }.
     *
     *
     * @since 1.116.0
     *
     * @returns A promise to be returned by the overridden method. If rejected, any further processing by the
     * framework is stopped.
     */
    onAfterCreate(
      /**
       * Object containing the parameters passed to onAfterCreate
       */
      _mParameters?: {
        /**
         * The newly created context
         */
        context?: Context;
      }
    ): Promise<void>;
    /**
     * This function can be used to execute code after the 'Delete' action.
     * You can execute custom coding in this function.
     * 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 }.
     *
     *
     * @since 1.116.0
     *
     * @returns A promise to be returned by the overridden method. If rejected, any further processing by the
     * framework is stopped.
     */
    onAfterDelete(
      /**
       * Object containing the parameters passed to onAfterDelete
       */
      _mParameters?: {
        /**
         * An array of contexts that are going to be deleted
         */
        contexts?: Context[];
      }
    ): Promise<void>;
    /**
     * This function can be used to execute code after the 'Discard' action.
     * You can execute custom coding in this function.
     * 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 }.
     *
     *
     * @since 1.116.0
     *
     * @returns A promise to be returned by the overridden method. If rejected, any further processing by the
     * framework is stopped.
     */
    onAfterDiscard(
      /**
       * Object containing the parameters passed to onAfterDiscard
       */
      _mParameters?: {
        /**
         * The context obtained after discarding the object, or undefined if we discarded a new object
         */
        context?: Context;
      }
    ): Promise<void>;
    /**
     * This function can be used to execute code after the 'Edit' action.
     * You can execute custom coding in this function.
     * 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 }.
     *
     *
     * @since 1.116.0
     *
     * @returns A promise to be returned by the overridden method. If rejected, any further processing by the
     * framework is stopped.
     */
    onAfterEdit(
      /**
       * Object containing the parameters passed to onAfterEdit
       */
      _mParameters?: {
        /**
         * Page context that is going to be edited.
         */
        context?: Context;
      }
    ): Promise<void>;
    /**
     * This function can be used to execute code after the 'Save' action.
     * You can execute custom coding in this function.
     * 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 }.
     *
     *
     * @since 1.116.0
     *
     * @returns A promise to be returned by the overridden method. If rejected, any further processing by the
     * framework is stopped.
     */
    onAfterSave(
      /**
       * Object containing the parameters passed to onAfterSave
       */
      _mParameters?: {
        /**
         * The context we obtained after saving
         */
        context?: Context;
      }
    ): Promise<void>;
    /**
     * 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 }.
     *
     *
     * @since 1.98.0
     *
     * @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<void>;
    /**
     * 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 }.
     *
     *
     * @since 1.98.0
     *
     * @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<void>;
    /**
     * 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 }.
     *
     *
     * @since 1.98.0
     *
     * @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<void>;
    /**
     * 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 }.
     *
     *
     * @since 1.98.0
     *
     * @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<void>;
    /**
     * 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 }.
     *
     *
     * @since 1.90.0
     *
     * @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<void>;
    /**
     * Saves a new document after checking it.
     *
     * @since 1.90.0
     *
     * @returns Promise resolves once save is complete
     */
    saveDocument(
      /**
       * Context of the editable document
       */
      oContext: Context
    ): Promise<void>;
    /**
     * Secured execution of the given function. Ensures that the function is only executed when certain conditions
     * are fulfilled.
     *
     * @since 1.90.0
     *
     * @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<void>;
    /**
     * Updates the draft status and displays the error messages if there are errors during an update.
     *
     * @since 1.90.0
     *
     * @returns Promise resolves once draft status has been updated
     */
    updateDocument(
      /**
       * Context of the updated field
       */
      updatedContext: Binding | Context,
      /**
       * 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.
       */
      updatePromise: Promise<any>
    ): Promise<void>;
  }
}

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

  import SelectionVariant from "sap/fe/navigation/SelectionVariant";

  /**
   * Controller extension providing hooks for intent-based navigation
   * {@link demo:sap/fe/core/fpmExplorer/index.html#/controllerExtensions/intentBasedNavigation Overview of Building Blocks}
   *
   * @since 1.86.0
   */
  export default class IntentBasedNavigation extends ControllerExtension {
    /**
     * Provides a hook to customize the {@link sap.fe.navigation.SelectionVariant } related to the intent-based
     * navigation.
     *
     * @since 1.86.0
     */
    adaptNavigationContext(
      /**
       * SelectionVariant provided by SAP Fiori elements.
       */
      _oSelectionVariant: SelectionVariant,
      /**
       * Object containing intent-based navigation-related info
       */
      _oNavigationInfo: {
        /**
         * Action related to the intent
         */
        action: string;
        /**
         * Semantic object related to the intent
         */
        semanticObject: string;
      }
    ): void;
    /**
     * Navigates to an intent defined by an outbound definition in the manifest.
     *
     * @since 1.86.0
     */
    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?: Record<string, any>
    ): void;
  }
}

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

  /**
   * A controller extension offering message handling.
   *
   * @since 1.90.0
   */
  export default class MessageHandler extends ControllerExtension {
    /**
     * Allows the consumer of the MessageButton building block to decide which bound messages are shown and
     * how.
     * This hook is called when the MessageButton building block detects a change in the message model.
     * The hooks allow you to define the behavior for messages in the MessageButton building block.
     * Consumers are able to do the following with this hook:
     * 1. Filter out messages so that they are not shown on the message button.
     * 2. Group messages based on their UI.
     * 3. Provide a presser handler if the message should display as a link.
     *
     *
     *
     * @returns A promise that must be returned by the overridden method.
     */
    beforeShowMessageButton(
      /**
       * Object containing the details related to the message.
       */
      _messageDetails: MessageDetail[]
    ): Promise<void>;
    /**
     * 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.
     *
     * @since 1.90.0
     *
     * @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<void>;
  }
  /**
   * Defines the message details relevant for the MessageButton building block to display a popover.
   */
  export type MessageDetail = {};
}

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

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

  import { ContextNavigationType } from "sap/fe/core/library";

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

  /**
   * Controller extension providing hooks for the navigation using paginators
   *
   * @since 1.94.0
   */
  export default class Paginator extends ControllerExtension {
    /**
     * This method is invoked whenever a context is loaded using the paginator buttons. It determines whether
     * the context supports navigation. The method must return one of the following:
     * ContextNavigationType.None: If the context is not navigable.
     * ContextNavigationType.Internal: If the context supports internal navigation within the same application
     * to a detail view, such as an object page or a subobject page.
     * ContextNavigationType.External: If the context navigates to an external application.
     * The paginator buttons only allow navigation to contexts with internal navigation. Contexts with None
     * or External navigation are skipped.
     *
     * @since 1.138.0
     *
     * @returns A Promise which should resolve to ContextNavigationType enum.
     */
    determineContextNavigationType(
      /**
       * Object containing the context to be navigated.
       */
      context: Context
    ): Promise<ContextNavigationType>;
    /**
     * Initiates the paginator control.
     *
     * @since 1.94.0
     */
    initialize(
      /**
       * ODataListBinding object
       */
      oBinding?: ODataListBinding,
      /**
       * Current context where the navigation is initiated
       */
      oContext?: Context
    ): void;
    /**
     * Returns the updated context after the paginator operation.
     *
     * @since 1.94.0
     */
    onContextUpdate(
      /**
       * Final context returned after the paginator action
       */
      oContext: Context
    ): void;
  }
}

declare module "sap/fe/core/controllerextensions/Recommendations" {
  /**
   * Parameters for the acceptRecommendations and onBeforeAcceptRecommendations methods.
   */
  export type AcceptAllParams = {};

  /**
   * Represents a single recommendation entry.
   */
  export type RecommendationData = {};
}

declare module "sap/fe/core/controllerextensions/Routing" {
  import BaseControllerExtension from "sap/fe/core/controllerextensions/BaseControllerExtension";

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

  /**
   * A controller extension offering hooks into the routing flow of the application
   *
   * @since 1.86.0
   */
  export default class Routing extends BaseControllerExtension {
    /**
     * Allows navigation to a specific context.
     *
     * @since 1.90.0
     */
    navigate(
      /**
       * Object containing the context to be navigated to
       */
      oContext: Context,
      /**
       * Object containing the parameters for the navigation
       */
      parameters?: {
        /**
         * By default, the internal algorithm decides whether the navigation preserves the previous entry. This
         * parameter 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<boolean>;
    /**
     * 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 }.
     *
     *
     * @since 1.90.0
     */
    onAfterBinding(
      /**
       * Object containing the context to be navigated
       */
      oContext: null | object
    ): void;
    /**
     * 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 }.
     *
     *
     * @since 1.90.0
     */
    onBeforeBinding(
      /**
       * Object containing the context for the navigation
       */
      oContext: null | object
    ): void;
    /**
     * This function can be used to intercept the routing event during the normal navigation process, such as
     * when a table row is clicked to navigate, pagination buttons are used, the Apply button in an object page
     * is clicked, or a sub-object page in a flexible column layout is closed.
     * The function is not called during other means of external outbound navigation such as a navigation configured
     * using a link or by using navigation buttons.
     * If declared as an extension, it allows you to intercept and change the normal navigation flow.
     * If you decide to implement 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 and not called directly.
     * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After }.
     *
     *
     * @since 1.86.0
     *
     * @returns `true` to prevent the default execution, false to keep the standard behavior
     */
    onBeforeNavigation(
      /**
       * Object containing row context and page context
       */
      mNavigationParameters: {
        /**
         * The target navigation context
         */
        bindingContext: Context;
      }
    ): Promise<boolean>;
  }
}

declare module "sap/fe/core/controllerextensions/Share" {
  import BaseControllerExtension from "sap/fe/core/controllerextensions/BaseControllerExtension";

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

  /**
   * A controller extension offering hooks into the routing flow of the application
   *
   * @since 1.86.0
   */
  export default class Share extends BaseControllerExtension {
    /**
     * Adapts the metadata used while sharing the page URL using 'Send Email', 'Share in SAP Jam', and 'Save
     * as Tile'.
     *
     * @since 1.93.0
     *
     * @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 the '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 with 'Send Email', 'Share in SAP Jam', and 'Save as Tile'
         */
        url: string;
      }
    ):
      | Promise</* was: sap.fe.core.controllerextensions.Share.ShareMetadata */ any>
      | /* was: sap.fe.core.controllerextensions.Share.ShareMetadata */ any;
    /**
     * Opens the share sheet.
     *
     * @since 1.93.0
     */
    openShareSheet(
      /**
       * The control to which the ActionSheet is opened.
       */
      oControl: Control
    ): void;
  }
}

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

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

  import SelectionVariant from "sap/fe/navigation/SelectionVariant";

  /**
   * 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.
   *
   *
   * @since 1.85.0
   */
  export default class ViewState extends ControllerExtension {
    /**
     * 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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    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!
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     *
     * @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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    applyNavigationParameters(
      /**
       * The current navigation parameter
       */
      oNavParameter: NavigationParameter,
      /**
       * 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: Record<string, any> | undefined,
      /**
       * The current navigation parameter
       */
      oNavParameter: NavigationParameter,
      /**
       * Boolean which determines to skip the key user shine through
       */
      skipMerge?: boolean
    ): Promise<void>;
    /**
     * 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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    onBeforeStateApplied(
      /**
       * Extensible array of promises to be resolved before continuing
       */
      aPromises: any,
      /**
       * Navigation type responsible for the applying the state
       */
      navigationType?: string
    ): 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 }.
     *
     *
     * @ui5-protected Do not call from applications (only from related classes in the framework)
     */
    retrieveAdditionalStates(
      /**
       * The additional state
       */
      mAdditionalStates: object
    ): void;
    /**
     * Retrieve the view state of this extensions view.
     *
     *
     * @returns A promise resolving the view state
     */
    retrieveViewState(): Promise<Record<string, any> | undefined>;
  }
  /**
   * Definition of a navigation parameter
   */
  export type NavigationParameter = {
    /**
     * The actual navigation type.
     */
    navigationType: string;
    /**
     * Defines whether the standard variant must be used in variant management
     */
    requiresStandardVariant?: boolean;
    /**
     * The selectionVariant from the navigation.
     */
    selectionVariant?: SelectionVariant;
    /**
     * The selectionVariant defaults from the navigation
     */
    selectionVariantDefaults?: SelectionVariant;
  };
}

declare module "sap/fe/core/controls/DataWatcher" {
  /**
   * A callback function that is called when the value of the watched property changes.
   */
  export type WatcherCallback = {};
}

declare module "sap/fe/core/converters/ManifestSettings" {
  /**
   * Definition of settings in the "sap.fe" section of the manifest
   */
  export type ManifestSettingsSapFE = {
    /**
     * Application-specific settings
     */
    app?: {
      /**
       * Enable lazy loading and lazy rendering for sections on the object page.
       */
      enableLazyLoading?: boolean;
      /**
       * Enable Save and Leave functionality for draft-enabled object pages
       */
      enableSaveAndLeave?: boolean;
    };
  };
}

declare module "sap/fe/core/fpm/Component" {
  import {
    default as TemplateComponent,
    $TemplateComponentSettings,
  } from "sap/fe/core/TemplateComponent";

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

  import { PropertyBindingInfo } from "sap/ui/base/ManagedObject";

  /**
   * 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"
   * 	}
   *  }
   *  }
   * ```
   *
   *
   *
   * @since 1.92.0
   */
  export default class Component extends TemplateComponent {
    /**
     * Returns the current AppComponent.
     *
     *
     * @returns The current AppComponent
     */
    getAppComponent(): AppComponent;
  }
  /**
   * Describes the settings that can be provided to the Component constructor.
   */
  export interface $ComponentSettings extends $TemplateComponentSettings {
    /**
     * Name of the XML view which is used for this page. The XML view can contain SAP Fiori elements Building
     * Blocks and XML template constructions.
     */
    viewName?: string | PropertyBindingInfo;
  }
}

declare module "sap/fe/core/rootView/Fcl.controller" {
  /**
   * Base controller class for your own root view with an sap.f.FlexibleColumnLayout 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.
   *
   *
   * @since 1.110.0
   */
  export default class Fcl
    extends /* was: sap.fe.core.rootView.RootViewBaseController */ Object {}
}

declare module "sap/fe/core/rootView/NavContainer.controller" {
  /**
   * 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.
   *
   *
   * @since 1.108.0
   */
  export default class NavContainer
    extends /* was: sap.fe.core.rootView.RootViewBaseController */ Object {}
}

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

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

    "sap/fe/core/buildingBlocks/BuildingBlock": undefined;

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

    "sap/fe/core/controllerextensions/CollaborativeDraft": 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/Recommendations": undefined;

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

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

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

    "sap/fe/core/controls/DataWatcher": undefined;

    "sap/fe/core/converters/ManifestSettings": 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/ReuseComponent": undefined;

    "sap/fe/core/rootView/Fcl.controller": undefined;

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

    "sap/fe/core/TemplateComponent": undefined;
  }
}
