import { TemplateRef } from '@angular/core'; export interface TablePropertiesInterface { caption: string; rowId: string; internationalization?: Partial; columns: TableColumnInterface[]; sort: { defaultSortedColumn: string; defaultSortOrder: string; }; expandableRowsTemplate?: TemplateRef; hasSelectableRows?: boolean; actions?: TableActionInterface[]; hasViewSelector?: boolean; hasColumnSelector?: boolean; hasDisplayDensity?: boolean; } export interface TableIntlInterface { 'Select all rows': string; 'Actions': string; 'Expand/Collapse': string; 'Loading data': string; 'No data': string; 'Select Row': string; 'Actions Menu': string; 'Column Selector': string; 'Default': string; 'Showing numVisible out of numTotal': string; 'Display Density': string; 'Display Density Options': { 'Comfortable': string; 'Compact': string; }; } export interface TableColumnInterface { key: string; headerText: string; isColumnDisplayed?: boolean; type?: TableColumnType; isSortable?: boolean; template?: TemplateRef; icon?: { color: string; mapping: { [key: string]: string; }; }; link?: { element?: string; ariaLabel: string; target?: string; action?: string; path?: string; bpRouterLink?: string; href?: string; }; statusIndicatorMapping?: TableStatusInterface; columnIndex?: number; } export interface TableStatusInterface { 'incomplete-primary'?: string; 'incomplete-secondary'?: string; 'in-progress'?: string; 'warning'?: string; 'complete'?: string; } export declare enum TableColumnType { ICON = 0, LINK = 1, STATUS = 2, TEMPLATE = 3 } export interface TableActionInterface { element?: string; text: string; ariaLabel: string; class: string; target?: string; routerLink?: string; bpRouterLink?: string; href?: string; action?: string; conditions?: ({ column: string; operator: string; value: any; } | string)[]; isDestructive?: boolean; }