// For Library Version: 1.108.27

declare module "sap/sac/grid/library" {}

declare module "sap/sac/grid/AlertLevel" {
  /**
   * @EXPERIMENTAL
   *
   * Alert Level.
   */
  enum AlertLevel {
    /**
     * Bad 1
     */
    BAD_1 = "7",
    /**
     * Bad 2
     */
    BAD_2 = "8",
    /**
     * Bad 3
     */
    BAD_3 = "9",
    /**
     * Critical 1
     */
    CRITICAL_1 = "4",
    /**
     * Critical 2
     */
    CRITICAL_2 = "5",
    /**
     * Critical 3
     */
    CRITICAL_3 = "6",
    /**
     * Good 1
     */
    GOOD_1 = "1",
    /**
     * Good 2
     */
    GOOD_2 = "2",
    /**
     * Good 3
     */
    GOOD_3 = "3",
    /**
     * Normal
     */
    NORMAL = "0",
  }
  export default AlertLevel;
}

declare module "sap/sac/grid/Cell" {
  import { default as UI5Element, $ElementSettings } from "sap/ui/core/Element";

  import AlertLevel from "sap/sac/grid/AlertLevel";

  import CellType from "sap/sac/grid/CellType";

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

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

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

  /**
   * @SINCE 1.0.0
   * @EXPERIMENTAL
   *
   * Cell of a Grid.
   */
  export default class Cell extends UI5Element {
    /**
     * Creates and initializes a new Cell. settings.
     *
     * 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(
      /**
       * Initial settings for the new element
       */
      mSettings?: $CellSettings
    );
    /**
     * Creates and initializes a new Cell. settings.
     *
     * 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(
      /**
       * ID for the new control, generated automatically if no ID is given
       */
      sId?: string,
      /**
       * Initial settings for the new element
       */
      mSettings?: $CellSettings
    );

    /**
     * Creates a new subclass of class sap.sac.grid.Cell 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.Element.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, Cell>,
      /**
       * 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.sac.grid.Cell.
     *
     * @returns Metadata object describing this class
     */
    static getMetadata(): ElementMetadata;
    /**
     * Gets current value of property {@link #getAlertLevel alertLevel}.
     *
     * The alert level (intensitiy of emphasis)
     *
     * @returns Value of property `alertLevel`
     */
    getAlertLevel(): AlertLevel;
    /**
     * Gets current value of property {@link #getCellType cellType}.
     *
     * The celltype of the cell. (HEADER, TITLE, RESULT, ...)
     *
     * @returns Value of property `cellType`
     */
    getCellType(): CellType;
    /**
     * Gets current value of property {@link #getColumn column}.
     *
     * The Column of the `Cell`
     *
     * Default value is `0`.
     *
     * @returns Value of property `column`
     */
    getColumn(): int;
    /**
     * Gets current value of property {@link #getContext context}.
     *
     * The context the `Cell`. Used for tagging a cell by the PivotTable.
     *
     * @returns Value of property `context`
     */
    getContext(): string;
    /**
     * Gets current value of property {@link #getDisplayLevel displayLevel}.
     *
     * The indent level of the `Cell`.
     *
     * @returns Value of property `displayLevel`
     */
    getDisplayLevel(): int;
    /**
     * Gets current value of property {@link #getDisplayValue displayValue}.
     *
     * The value that is displayed in the cell
     *
     * @returns Value of property `displayValue`
     */
    getDisplayValue(): string;
    /**
     * Gets current value of property {@link #getDocumentId documentId}.
     *
     * The Document Id of the `Cell`.
     *
     * @returns Value of property `documentId`
     */
    getDocumentId(): string;
    /**
     * Gets current value of property {@link #getHelpId helpId}.
     *
     * The Help Id of the `Cell`. Intended to be used by WebAssist/Enable Now.
     *
     * @returns Value of property `helpId`
     */
    getHelpId(): string;
    /**
     * Gets current value of property {@link #getIcon icon}.
     *
     * The Icon to be displayed in the `Cell`
     *
     * @returns Value of property `icon`
     */
    getIcon(): string;
    /**
     * Gets current value of property {@link #getInputEnabled inputEnabled}.
     *
     * Indicates whether the `Cell` is input enabled.
     *
     * @returns Value of property `inputEnabled`
     */
    getInputEnabled(): boolean;
    /**
     * Gets current value of property {@link #getRow row}.
     *
     * The row of the `Cell`.
     *
     * Default value is `0`.
     *
     * @returns Value of property `row`
     */
    getRow(): int;
    /**
     * Gets current value of property {@link #getSemanticClass semanticClass}.
     *
     * The semantic class of the Cell. The css class associated to the class is put into the cells td.
     *
     * @returns Value of property `semanticClass`
     */
    getSemanticClass(): string;
    /**
     * Gets current value of property {@link #getValueState valueState}.
     *
     * The value state of the `Cell`. This property is used for entry ready cells.
     *
     * @returns Value of property `valueState`
     */
    getValueState(): ValueState | keyof typeof ValueState;
    /**
     * Sets a new value for property {@link #getAlertLevel alertLevel}.
     *
     * The alert level (intensitiy of emphasis)
     *
     * 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
     */
    setAlertLevel(
      /**
       * New value for property `alertLevel`
       */
      sAlertLevel: AlertLevel
    ): this;
    /**
     * Sets a new value for property {@link #getCellType cellType}.
     *
     * The celltype of the cell. (HEADER, TITLE, RESULT, ...)
     *
     * 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
     */
    setCellType(
      /**
       * New value for property `cellType`
       */
      sCellType: CellType
    ): this;
    /**
     * Sets a new value for property {@link #getColumn column}.
     *
     * The Column of the `Cell`
     *
     * When called with a value of `null` or `undefined`, the default value of the property will be restored.
     *
     * Default value is `0`.
     *
     * @returns Reference to `this` in order to allow method chaining
     */
    setColumn(
      /**
       * New value for property `column`
       */
      iColumn?: int
    ): this;
    /**
     * Sets a new value for property {@link #getContext context}.
     *
     * The context the `Cell`. Used for tagging a cell by the PivotTable.
     *
     * 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
     */
    setContext(
      /**
       * New value for property `context`
       */
      sContext: string
    ): this;
    /**
     * Sets a new value for property {@link #getDisplayLevel displayLevel}.
     *
     * The indent level of the `Cell`.
     *
     * 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
     */
    setDisplayLevel(
      /**
       * New value for property `displayLevel`
       */
      iDisplayLevel: int
    ): this;
    /**
     * Sets a new value for property {@link #getDisplayValue displayValue}.
     *
     * The value that is displayed in the cell
     *
     * 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
     */
    setDisplayValue(
      /**
       * New value for property `displayValue`
       */
      sDisplayValue: string
    ): this;
    /**
     * Sets a new value for property {@link #getDocumentId documentId}.
     *
     * The Document Id of the `Cell`.
     *
     * 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
     */
    setDocumentId(
      /**
       * New value for property `documentId`
       */
      sDocumentId: string
    ): this;
    /**
     * Sets a new value for property {@link #getHelpId helpId}.
     *
     * The Help Id of the `Cell`. Intended to be used by WebAssist/Enable Now.
     *
     * 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
     */
    setHelpId(
      /**
       * New value for property `helpId`
       */
      sHelpId: string
    ): this;
    /**
     * Sets a new value for property {@link #getIcon icon}.
     *
     * The Icon to be displayed in the `Cell`
     *
     * 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
     */
    setIcon(
      /**
       * New value for property `icon`
       */
      sIcon: string
    ): this;
    /**
     * Sets a new value for property {@link #getInputEnabled inputEnabled}.
     *
     * Indicates whether the `Cell` is input enabled.
     *
     * 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
     */
    setInputEnabled(
      /**
       * New value for property `inputEnabled`
       */
      bInputEnabled: boolean
    ): this;
    /**
     * Sets a new value for property {@link #getRow row}.
     *
     * The row of the `Cell`.
     *
     * When called with a value of `null` or `undefined`, the default value of the property will be restored.
     *
     * Default value is `0`.
     *
     * @returns Reference to `this` in order to allow method chaining
     */
    setRow(
      /**
       * New value for property `row`
       */
      iRow?: int
    ): this;
    /**
     * Sets a new value for property {@link #getSemanticClass semanticClass}.
     *
     * The semantic class of the Cell. The css class associated to the class is put into the cells td.
     *
     * 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
     */
    setSemanticClass(
      /**
       * New value for property `semanticClass`
       */
      sSemanticClass: string
    ): this;
    /**
     * Sets a new value for property {@link #getValueState valueState}.
     *
     * The value state of the `Cell`. This property is used for entry ready cells.
     *
     * 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
     */
    setValueState(
      /**
       * New value for property `valueState`
       */
      sValueState: ValueState | keyof typeof ValueState
    ): this;
  }

  export interface $CellSettings extends $ElementSettings {
    /**
     * The alert level (intensitiy of emphasis)
     */
    alertLevel?: AlertLevel | PropertyBindingInfo | `{${string}}`;

    /**
     * The value that is displayed in the cell
     */
    displayValue?: string | PropertyBindingInfo;

    /**
     * The celltype of the cell. (HEADER, TITLE, RESULT, ...)
     */
    cellType?: CellType | PropertyBindingInfo | `{${string}}`;

    /**
     * The Column of the `Cell`
     */
    column?: int | PropertyBindingInfo | `{${string}}`;

    /**
     * The Icon to be displayed in the `Cell`
     */
    icon?: string | PropertyBindingInfo;

    /**
     * The Help Id of the `Cell`. Intended to be used by WebAssist/Enable Now.
     */
    helpId?: string | PropertyBindingInfo;

    /**
     * The context the `Cell`. Used for tagging a cell by the PivotTable.
     */
    context?: string | PropertyBindingInfo;

    /**
     * The value state of the `Cell`. This property is used for entry ready cells.
     */
    valueState?:
      | (ValueState | keyof typeof ValueState)
      | PropertyBindingInfo
      | `{${string}}`;

    /**
     * The row of the `Cell`.
     */
    row?: int | PropertyBindingInfo | `{${string}}`;

    /**
     * The indent level of the `Cell`.
     */
    displayLevel?: int | PropertyBindingInfo | `{${string}}`;

    /**
     * The semantic class of the Cell. The css class associated to the class is put into the cells td.
     */
    semanticClass?: string | PropertyBindingInfo;

    /**
     * Indicates whether the `Cell` is input enabled.
     */
    inputEnabled?: boolean | PropertyBindingInfo | `{${string}}`;

    /**
     * The Document Id of the `Cell`.
     */
    documentId?: string | PropertyBindingInfo;
  }
}

declare module "sap/sac/grid/CellGridPart" {
  /**
   * @EXPERIMENTAL
   *
   * Part of the grid in which a `cell` resides.
   */
  enum CellGridPart {
    /**
     * Cell is rendered in the columns section (header/title)
     */
    Columns = "Columns",
    /**
     * Cell is rendered in the data section
     */
    Data = "Data",
    /**
     * Cell is in the empty section
     */
    Empty = "Empty",
    /**
     * Cell is rendered in the intersection between row titles and column titles section
     */
    Mixed = "Mixed",
    /**
     * Cell is rendered in the rows section (header/title)
     */
    Rows = "Rows",
  }
  export default CellGridPart;
}

declare module "sap/sac/grid/CellType" {
  /**
   * @EXPERIMENTAL
   *
   * Types of a grid cell.
   */
  enum CellType {
    /**
     * A data cell, representing value with a critical flavour
     */
    CRITICAL = "Critical",
    /**
     * An empty data cell
     */
    EMPTY = "Empty",
    /**
     * A header cell, representing a member of a (virtual) dimension
     */
    HEADER = "Header",
    /**
     * A data cell, representing value with a negative flavour
     */
    NEGATIVE = "Negative",
    /**
     * A data cell, representing value with a positive flavour
     */
    POSITIVE = "Positive",
    /**
     * A result cell, representing an aggregated value
     */
    RESULT = "Result",
    /**
     * A result cell, representing an aggregated value with a critical flavour
     */
    RESULT_CRITICAL = "ResultCritical",
    /**
     * A virtual member of a dimension indicating an aggregation of members
     */
    RESULT_HEADER = "ResultHeader",
    /**
     * A result cell, representing an aggregated value with a negative flavour
     */
    RESULT_NEGATIVE = "ResultNegative",
    /**
     * A result cell, representing an aggregated value with a positive flavour
     */
    RESULT_POSITIVE = "ResultPositive",
    /**
     * A data cell, representing value
     */
    STANDARD = "Standard",
    /**
     * A title cell, representing a dimension
     */
    TITLE = "Title",
  }
  export default CellType;
}

declare module "sap/sac/grid/Format" {
  /**
   * @EXPERIMENTAL
   *
   * Format to be applied to a `Grid`
   */
  enum Format {
    /**
     * Basic grid format
     */
    Basic = "Basic",
    /**
     * business style
     */
    BusinessStyle = "BusinessStyle",
    /**
     * busines formular style
     */
    BusinessStyleFormular = "BusinessStyleFormular",
    /**
     * custom style
     */
    CustomStyle = "CustomStyle",
    /**
     * mimicking spreadsheet
     */
    ExcelStyle = "ExcelStyle",
  }
  export default Format;
}

declare module "sap/sac/grid/SemanticStyle" {
  import { default as UI5Element, $ElementSettings } from "sap/ui/core/Element";

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

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

  /**
   * @SINCE 1.0.0
   * @EXPERIMENTAL
   *
   * Cell of a Pivot Table.
   */
  export default class SemanticStyle extends UI5Element {
    /**
     * Creates and initializes a new Semantic style. settings.
     *
     * 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.sac.grid.SemanticStyle 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.Element.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, SemanticStyle>,
      /**
       * 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.sac.grid.SemanticStyle.
     *
     * @returns Metadata object describing this class
     */
    static getMetadata(): ElementMetadata;
    /**
     * Gets current value of property {@link #getClass class}.
     *
     * The associated css class
     *
     * @returns Value of property `class`
     */
    getClass(): string;
    /**
     * Gets current value of property {@link #getMember member}.
     *
     * The value that is displayed in the cell
     *
     * @returns Value of property `member`
     */
    getMember(): string;
    /**
     * Sets a new value for property {@link #getClass class}.
     *
     * The associated css class
     *
     * 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
     */
    setClass(
      /**
       * New value for property `class`
       */
      sClass: string
    ): this;
    /**
     * Sets a new value for property {@link #getMember member}.
     *
     * The value that is displayed in the cell
     *
     * 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
     */
    setMember(
      /**
       * New value for property `member`
       */
      sMember: string
    ): this;
  }

  export interface $SemanticStyleSettings extends $ElementSettings {
    /**
     * The value that is displayed in the cell
     */
    member?: string | PropertyBindingInfo;

    /**
     * The associated css class
     */
    class?: string | PropertyBindingInfo;
  }
}

declare namespace sap {
  interface IUI5DefineDependencyNames {
    "sap/sac/grid/AlertLevel": undefined;

    "sap/sac/grid/Cell": undefined;

    "sap/sac/grid/CellGridPart": undefined;

    "sap/sac/grid/CellType": undefined;

    "sap/sac/grid/Format": undefined;

    "sap/sac/grid/Grid": undefined;

    "sap/sac/grid/library": undefined;

    "sap/sac/grid/SemanticStyle": undefined;
  }
}
