import { QdTableConfigColumnType } from '../../table/model/table-config-content.interface';
/**
 * @description View model for table columns.
 * This type is only used internally to simplify the rendering in the template.
 */
export type QdColumnsDetails<T extends string> = Array<QdColumnDetails<T> | QdGroupColumnDetails<T>>;
/**
 * @description View model for a table column.
 */
export type QdColumnDetails<T extends string> = {
    /**
     * @description Contains the index of the column.
     */
    index: number;
    /**
     * @description Contains the type of the column that is set in the config.
     */
    type: Omit<QdTableConfigColumnType['type'], 'group'>;
    /**
     * @description Indicates whether this column is the main column.
     */
    isMainColumn: boolean;
    /**
     * @description Indicates whether this column is the last column.
     */
    isLastColumn: boolean;
    /**
     * @description Contains the name of the column that is given in the config.
     */
    column?: T;
    /**
     * @description Contains additional options for the column that are set in the config.
     */
    options?: any;
    /**
     * @description Contains the composed translation key of the column.
     */
    i18n?: string;
};
/**
 * @description View model for the group column.
 */
export type QdGroupColumnDetails<T extends string> = QdColumnDetails<T> & {
    /**
     * @description The column type of the group column is 'group'.
     */
    type: 'group';
    /**
     * @description Contains the originally defined columns that are grouped in this column.
     */
    groupedColumns: QdColumnDetails<T>[];
};
//# sourceMappingURL=tree-column-detail.interface.d.ts.map