import { Button as ButtonElement, Column } from '@judo/model-api'; import { GridColType } from '@mui/x-data-grid'; /** * Row action types that are automatically shown inline (featured) when * `featuredActions` is 0 (i.e., no explicit featured actions configured). * * Includes navigation and CRUD operations that benefit from direct visibility: * - OpenPageActionDefinition: View/navigate to row detail page * - RowOpenPageActionDefinition: Row-level view navigation * - RowDeleteActionDefinition: Delete the row (requires `__deleteable` runtime check) * - RemoveActionDefinition: Remove from relation * - OpenSetSelectorActionDefinition: Set a relation target * - UnsetActionDefinition: Unset a relation target */ export declare const AUTO_FEATURED_ROW_ACTION_TYPES: Set; /** * Maps model data types to MUI DataGrid column types. * * MUI DataGrid column types: * - 'string' (default): Text values * - 'number': Numeric values with number formatting * - 'date': Date values (rendered with date picker) * - 'dateTime': DateTime/Timestamp values * - 'boolean': Boolean values (rendered with checkbox) * - 'singleSelect': Enumeration values (dropdown) * - 'actions': Action column (special) * * @param column The model Column definition * @returns The MUI DataGrid column type */ export declare function getColumnType(column: Column): GridColType; /** * Gets value options for enumeration columns. * @param column The model Column definition * @returns Array of value options for singleSelect type, or undefined */ export declare function getEnumerationValueOptions(column: Column): Array<{ value: string; label: string; }> | undefined; /** * Determines if a table column is sortable. * A column is sortable if: * 1. It has an attributeType * 2. The attributeType's dataType is NOT BinaryType * 3. The attributeType's memberType is NOT TRANSIENT */ export declare function isColumnSortable(column: Column): boolean; /** * Calculates the width needed for an action column based on button content. * * When `featuredActions` is provided, the calculation accounts for the * featured/overflow split pattern (inline buttons + dropdown trigger): * - featuredActions = 0: auto-CRUD mode — CRUD buttons shown inline, rest in dropdown. * Width accounts for all CRUD buttons (worst-case, including delete). * - featuredActions > 0: featured button widths + dropdown trigger (if overflow) * - featuredActions >= total: all buttons inline, no dropdown (same as legacy) * * When `featuredActions` is not provided, all buttons are treated as inline * (backward compatible with legacy behavior). * * Calculation uses actual MUI small outlined Button metrics: * - Text width: ~6.5px per character (13px font-size, proportional sans-serif) * - Icon width: 24px (18px icon + 8px margin - 2px offset) * - Button padding: 18px (9px left + 9px right for small outlined) * - Dropdown trigger: 36px (18px padding + 18px icon) * - Spacing: 0px (ButtonGroup collapses borders) * - Column padding: 20px (DataGrid cell padding ~10px per side) * * @param buttons Array of buttons to display in the action column * @param featuredActions Number of featured actions to show inline (from ButtonGroup model) * @returns Calculated width in pixels */ export declare function calculateActionColumnWidth(buttons: ButtonElement[], featuredActions?: number): number; //# sourceMappingURL=table-column-utils.d.ts.map