import type { TableColumn as TableColumnWSR } from '@wix/design-system'; import type { KeyedItem, SortDirection } from '@wix/bex-core'; import { CSSProperties, ReactNode } from 'react'; type TableColumnBase = Omit, 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style'> & { style?: CSSProperties | ((column: TableColumnWSR, rowData: KeyedItem, rowNum: number) => CSSProperties); reorderDisabled?: boolean; defaultSortDirection?: SortDirection; sortMode?: 'always'; infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & { panelContent?: ReactNode; }; }; interface TableColumnOptional extends TableColumnBase { id?: string; name?: string; hiddenFromCustomColumnsSelection?: undefined | true; hideable?: undefined; defaultHidden?: undefined; } interface TableColumnCustom extends TableColumnBase { id: string; name: string; hiddenFromCustomColumnsSelection?: false; hideable?: true; defaultHidden?: boolean; } interface TableColumnCustomOptionalName extends TableColumnBase { id: string; name?: string; title: TableColumnBase['title']; hiddenFromCustomColumnsSelection?: false; hideable?: true; defaultHidden?: boolean; } interface TableColumnCustomDefaultHidden extends TableColumnBase { id: string; name?: string; title: TableColumnBase['title']; hiddenFromCustomColumnsSelection?: false; hideable: false; defaultHidden?: undefined | false; } export type CustomColumnConfig = TableColumnOptional | TableColumnCustom | TableColumnCustomDefaultHidden | TableColumnCustomOptionalName; export interface SortableColumnConfig extends TableColumnBase { id: string; sortable: true; } export interface NotSortableColumnConfig extends TableColumnBase { id?: string; sortable?: false; } export type SortableConfig = SortableColumnConfig | NotSortableColumnConfig; export type TableColumn = CustomColumnConfig & SortableConfig; export interface Column { id: string; name: string; title: TableColumnBase['title']; hiddenFromCustomColumnsSelection?: boolean; hideable?: boolean; reorderDisabled?: boolean; sortable?: boolean; sortDescending?: boolean; sortMode?: 'always'; defaultSortDirection?: SortDirection; defaultHidden?: boolean; dataExtension?: { id: string; editable: boolean; }; infoTooltipProps?: { content?: ReactNode; panelContent?: ReactNode; }; render: TableColumnWSR['render']; width?: TableColumnWSR['width']; style?: TableColumnWSR['style']; } export {}; //# sourceMappingURL=tableColumn.d.ts.map