// For Library Version: 1.108.19

declare module "sap/ovp/library" {}

declare module "sap/ovp/app/Component" {
  import {
    default as AppComponent,
    $AppComponentSettings,
  } from "sap/fe/core/AppComponent";

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

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

  /**
   * Overview Page Application Component
   */
  export default class Component extends AppComponent {
    /**
     * Main class used for Overview Page Application Component
     *
     * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated
     * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description
     * of the syntax of the settings object.
     */
    constructor();

    /**
     * Creates a new subclass of class sap.ovp.app.Component with name `sClassName` and enriches it with the
     * information contained in `oClassInfo`.
     *
     * `oClassInfo` might contain the same kind of information as described in {@link sap.fe.core.AppComponent.extend}.
     *
     * @returns Created class / constructor function
     */
    static extend<T extends Record<string, unknown>>(
      /**
       * Name of the class being created
       */
      sClassName: string,
      /**
       * Object literal with information about the class
       */
      oClassInfo?: sap.ClassInfo<T, Component>,
      /**
       * Constructor function for the metadata object; if not given, it defaults to the metadata implementation
       * used by this class
       */
      FNMetaImpl?: Function
    ): Function;
    /**
     * Returns a metadata object for class sap.ovp.app.Component.
     *
     * @returns Metadata object describing this class
     */
    static getMetadata(): ComponentMetadata;
    /**
     * Gets current value of property {@link #getCardContainerFragment cardContainerFragment}.
     *
     * Default value is `"sap.ovp.app.CardContainer"`.
     *
     * @returns Value of property `cardContainerFragment`
     */
    getCardContainerFragment(): string;
    /**
     * Gets current value of property {@link #getDashboardLayoutUtil dashboardLayoutUtil}.
     *
     * @returns Value of property `dashboardLayoutUtil`
     */
    getDashboardLayoutUtil(): /* was: sap.ovp.ui.DashboardLayoutUtil */ any;
    /**
     * Gets current value of property {@link #getDesigntimePath designtimePath}.
     *
     * Default value is `"sap/ovp/ui/OVPWrapper.designtime"`.
     *
     * @returns Value of property `designtimePath`
     */
    getDesigntimePath(): string;
    /**
     * Sets a new value for property {@link #getCardContainerFragment cardContainerFragment}.
     *
     * When called with a value of `null` or `undefined`, the default value of the property will be restored.
     *
     * Default value is `"sap.ovp.app.CardContainer"`.
     *
     * @returns Reference to `this` in order to allow method chaining
     */
    setCardContainerFragment(
      /**
       * New value for property `cardContainerFragment`
       */
      sCardContainerFragment?: string
    ): this;
    /**
     * Sets a new value for property {@link #getDashboardLayoutUtil dashboardLayoutUtil}.
     *
     * When called with a value of `null` or `undefined`, the default value of the property will be restored.
     *
     * @returns Reference to `this` in order to allow method chaining
     */
    setDashboardLayoutUtil(
      /**
       * New value for property `dashboardLayoutUtil`
       */
      sDashboardLayoutUtil: /* was: sap.ovp.ui.DashboardLayoutUtil */ any
    ): this;
    /**
     * Sets a new value for property {@link #getDesigntimePath designtimePath}.
     *
     * When called with a value of `null` or `undefined`, the default value of the property will be restored.
     *
     * Default value is `"sap/ovp/ui/OVPWrapper.designtime"`.
     *
     * @returns Reference to `this` in order to allow method chaining
     */
    setDesigntimePath(
      /**
       * New value for property `designtimePath`
       */
      sDesigntimePath?: string
    ): this;
  }

  export interface $ComponentSettings extends $AppComponentSettings {
    cardContainerFragment?: string | PropertyBindingInfo;

    dashboardLayoutUtil?: /* was: sap.ovp.ui.DashboardLayoutUtil */
      | any
      | PropertyBindingInfo
      | `{${string}}`;

    designtimePath?: string | PropertyBindingInfo;
  }
}

declare module "sap/ovp/app/TemplateBaseExtension" {
  import Metadata from "sap/ui/base/Metadata";

  /**
   * This class contains all extension functions that can be implemented by the application developers in
   * their extension code. Application developers must not override any methods that are not mentioned in
   * this documentation.
   */
  interface TemplateBaseExtension {
    /**
     * Creates a new subclass of class sap.ovp.app.TemplateBaseExtension with name `sClassName` and enriches
     * it with the information contained in `oClassInfo`.
     *
     * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.mvc.ControllerExtension.extend}.
     *
     * @returns Created class / constructor function
     */
    extend(
      /**
       * Name of the class being created
       */
      sClassName: string,
      /**
       * Object literal with information about the class
       */
      oClassInfo?: object,
      /**
       * Constructor function for the metadata object; if not given, it defaults to the metadata implementation
       * used by this class
       */
      FNMetaImpl?: Function
    ): Function;
    /**
     * Returns a metadata object for class sap.ovp.app.TemplateBaseExtension.
     *
     * @returns Metadata object describing this class
     */
    getMetadata(): Metadata;
  }
  const TemplateBaseExtension: TemplateBaseExtension;
  export default TemplateBaseExtension;
}

declare namespace sap {
  interface IUI5DefineDependencyNames {
    "sap/ovp/app/Component": undefined;

    "sap/ovp/app/TemplateBaseExtension": undefined;

    "sap/ovp/library": undefined;
  }
}
