import type { GenericColumns, TableTypeV2, QuickVariant } from './Table';
import type { ObjectPageToolBar } from './ObjectPageToolBar';
import type { PopinLayout } from 'sap/m/library';
import type { smarttable } from 'sap/ui/comp/library';
export interface QuickVariantSelectionOP {
    /**
     * To show the number of records available, set showCounts to true.
     */
    showCounts?: boolean;
    /**
     * The variants section contains a set of entries that point to a SelectionVariant or a SelectionPresentationVariant annotation.
     */
    variants: {
        [key: number]: QuickVariant;
    };
}
export interface Fields4DialogOP {
    fields: string[];
}
export declare enum CreateMode {
    inline = "inline"
}
export interface ObjectPageCommonTableSettings {
    /**
     * The 'Select All' button is disabled by default. To enable it, set selectAll to true.
     */
    selectAll?: boolean;
    /**
     * Set this property to true to enable variant management for the table.
     */
    variantManagement?: boolean;
}
export interface CommonTableSettingsForSections<COLS = GenericColumns> extends ObjectPageCommonTableSettings {
    /**
     * You can set the following values for this property:
     * - creationRows: Used to enable empty rows mode. In create or edit mode an empty row is added to the table.
     * - creationRowsHiddenInEditMode: Like "creationRows", but in edit mode the empty row will only be shown when the user clicks the Create button. This option is available starting with SAPUI5 version 1.110.
     * - inline: In create or edit mode, the users can use the Create button to add new entries to the table. We recommend to use "creationRows" instead.
     * By default no empty row is provided and the Create button automatically navigates to the item's object page for the newly created entry.
     */
    createMode?: CreateMode;
    /**
     * When new data is loaded, the number of lines is restricted to the specified limit. The default value is 200.
     * If selectAll is true, the selection limit is not evaluated.
     */
    selectionLimit?: number;
    /**
     * If createMode is set to inline, you can use this setting to disable the default sort order.
     */
    disableDefaultInlineCreateSort?: boolean;
    /**
     * useExportToExcel must be set to true if you want to export data to a spreadsheet application, for example Microsoft Excel.
     */
    useExportToExcel?: boolean;
    /**
     * Specifies the type of export to be used in the SmartTable control. UI5Client is the default option.
     */
    exportType?: smarttable.ExportType;
    /**
     *  With editable you can control if a table can be edited. It should be set to false for smart tables with non-editable content.
     */
    editable?: boolean;
    /**
     * Determines the visibility of the Paste button in the table toolbar. By default, the Paste button is available if the page is in edit mode.
     * If this property is set to False, the Paste button is removed.
     * Note: We don't recommend setting this property to True, because it results in the Paste button being visible even when it does not have a function. For example, in display mode.
     */
    showPasteButton?: boolean;
    /**
     * You can enable the creation of objects that have a maximum of eight data fields through a dialog in the list report page.
     */
    createWithParameterDialog?: Fields4DialogOP;
    /**
     * With quickVariantSelection, you can activate the multiple view feature. This feature links to variants that you have added to your annotations.
     */
    quickVariantSelection?: QuickVariantSelectionOP;
    /**
     * Tool Bar
     */
    toolBar?: ObjectPageToolBar;
    /**
     * Columns
     */
    columns?: COLS;
}
/**
 * @controlProperty type
 */
export interface ObjectPageResponsiveTableCommonSettings extends CommonTableSettingsForSections {
    /**
     * Specifies the type of table.
     */
    type?: TableTypeV2.ResponsiveTable;
    /**
     * Set this property to true if you want items to be selectable when clicked rather than after the selection control has been set.
     */
    includeItemInSelection?: boolean;
    /**
     * Defines the layout the table pop-in rows are rendered in.
     */
    popinLayout?: PopinLayout;
    /**
     * Defines the number of items to be requested from the model for each grow. This property can only be used if the growing property is set to true.
     */
    growingThreshold?: number;
}
/**
 * Table
 *
 * @isViewNode true
 * @controlProperty type
 */
export interface ObjectPageResponsiveTableWithMultiSelect extends ObjectPageResponsiveTableCommonSettings {
    /**
     * Determines whether multi-select is enabled for tables. By default, you can only single-select.
     */
    multiSelect?: boolean;
}
/**
 * Table
 *
 * @isViewNode true
 * @controlProperty type
 */
export interface ObjectPageResponsiveTableWithInlineDelete extends ObjectPageResponsiveTableCommonSettings {
    /**
     *  Used to enable inline deletion in a responsive table in list report and object pages.
     */
    inlineDelete?: boolean;
}
/**
 * Table
 *
 * @isViewNode true
 * @controlProperty type
 */
export interface ObjectPageResponsiveTable extends ObjectPageResponsiveTableCommonSettings, ObjectPageResponsiveTableWithMultiSelect, ObjectPageResponsiveTableWithInlineDelete {
}
/**
 * Table
 *
 * @isViewNode true
 * @controlProperty type
 */
export interface ObjectPageAnalyticalTable extends CommonTableSettingsForSections {
    /**
     * Specifies the type of table.
     */
    type?: TableTypeV2.AnalyticalTable;
    /**
     * For the analytical table, grid table and tree table you can decide on a condensed table layout by setting condensedTableLayout to true.
     */
    condensedTableLayout?: boolean;
    /**
     * Single selection in tables is enabled by default. If you want, you can enable multi-select.
     */
    multiSelect?: boolean;
}
/**
 * Table
 *
 * @isViewNode true
 * @controlProperty type
 */
export interface ObjectPageGridTable extends CommonTableSettingsForSections {
    /**
     * Specifies the type of table.
     */
    type?: TableTypeV2.GridTable;
    /**
     * For the analytical table, grid table and tree table you can decide on a condensed table layout by setting condensedTableLayout to true.
     */
    condensedTableLayout?: boolean;
    /**
     * Single selection in tables is enabled by default. If you want, you can enable multi-select.
     */
    multiSelect?: boolean;
}
/**
 * Table
 *
 * @isViewNode true
 * @controlProperty type
 */
export interface ObjectPageTreeTable extends CommonTableSettingsForSections {
    /**
     * Specifies the type of table.
     */
    type?: TableTypeV2.TreeTable;
    /**
     * For the analytical table, grid table and tree table you can decide on a condensed table layout by setting condensedTableLayout to true.
     */
    condensedTableLayout?: boolean;
    /**
     * Single selection in tables is enabled by default. If you want, you can enable multi-select.
     */
    multiSelect?: boolean;
}
export interface GlobalTableSettings extends ObjectPageCommonTableSettings {
    /**
     * Use type to define the default table type.
     */
    type?: TableTypeV2;
    /**
     * Single selection in tables is enabled by default. You can enable multi-select by setting this property to true.
     */
    multiSelect?: boolean;
    /**
     * For the analytical table, grid table and tree table you can decide on a condensed table layout by setting condensedTableLayout to true.
     */
    condensedTableLayout?: boolean;
    /**
     *  Used to enable inline deletion in a responsive table.
     */
    inlineDelete?: boolean;
}
//# sourceMappingURL=ObjectPageTable.d.ts.map