import { QdChipColor } from '../../chips/interfaces/chip.interface';
import { QdStatusIndicatorLevel, QdStatusIndicatorType } from '../../status-indicator/interfaces/status-indicator.interface';
import { QdTableConfigSecondaryActionType } from './table-config-actions.interface';
import { QdTreeDataRow } from '../../tree/model/tree-data.interface';
/**
 * @description Type definitions for QDCriticalDataSet.
 */
type QdTableCriticalDataValue = {
    0: 1 | 2 | 3;
    1: 1 | 2 | 3 | 4 | 5;
    2?: never;
};
/**
 * @description Type definitions for the 'context' options type.
 */
type QdTableContextDataValue = Exclude<QdChipColor, 'filter'>;
/**
 * @description Type definition for data value for Content Type Chip
 */
export type QdTableChipDataValue = QdTableContentDataChip | QdTableContentDataChip[];
/**
 * @description content data type "chip"
 */
export type QdTableContentDataChip = string | QdTableContentDataChipObject;
/**
 * @description object variant for content data type "chip"
 */
export type QdTableContentDataChipObject = {
    label: string;
    level: QdChipColor;
};
/**
 * @description Type definition for data value for Content Type Status
 */
export type QdTableStatusDataValue = {
    level: QdStatusIndicatorLevel;
    type: QdStatusIndicatorType;
};
/**
 * @description Type definitions for the contents of the TableData columns.
 */
export type QdTableDataValue = boolean | number | string | string[] | QdTableCriticalDataValue | QdTableContextDataValue | QdTableChipDataValue | QdTableStatusDataValue | Date;
/**
 * @description Data Model for Qd-Tables. The generic type defines the table columns keys.
 */
export type QdTableData<T extends string> = QdTableDataRow<T>[];
/**
 * @description Type definition for table data row object with its keys and values.
 */
export type QdTableDataRow<T extends string> = Record<T, QdTableDataValue | QdTableDataValue[]> & {
    uid?: QdTableRowUid;
};
/**
 * @description Unique identifier of the row. The uid must not be a small number to prevent confusion with the indexes.
 *
 * * @example: 'item-0815'
 * * @example: 9823894
 */
export type QdTableRowUid = string | number;
/**
 * @description Position of the row counting from top to bottom beginning with 0.
 *
 * * @example: 4
 */
export type QdTableRowIndex = number;
/**
 * @description The row can be identified by the uid or by the row index.
 */
export type QdTableRowIdentifier = QdTableRowUid | QdTableRowIndex;
/**
 * @description Defines the most recent secondary action.
 */
export type QdTableRecentSecondaryAction<T extends string> = {
    type: QdTableConfigSecondaryActionType;
    index: number;
    rowData: QdTableDataRow<T> | QdTreeDataRow<T>;
};
export {};
//# sourceMappingURL=table-data.interface.d.ts.map