import type { TableCellBlank, TableCellAction, TableCellEmpty, TableCellIcon, TableCellIconText, TableCellImage, TableCellPrimaryText, TableCellText, TableCellTag, TableCellValue, TableColumn, TableGroup, TableRow, TableSortState } from './table-types'; export interface TableSelectionState { selectableRowIds: string[]; selectedLoadedCount: number; allSelected: boolean; indeterminate: boolean; } export declare function isTableCellText(value: TableCellValue): value is TableCellText; export declare function isTableCellPrimaryText(value: TableCellValue): value is TableCellPrimaryText; export declare function isTableCellTag(value: TableCellValue): value is TableCellTag; export declare function isTableCellIcon(value: TableCellValue): value is TableCellIcon; export declare function isTableCellIconText(value: TableCellValue): value is TableCellIconText; export declare function isTableCellImage(value: TableCellValue): value is TableCellImage; export declare function isTableCellAction(value: TableCellValue): value is TableCellAction; export declare function isTableCellEmpty(value: TableCellValue): value is TableCellEmpty; export declare function isTableCellBlank(value: TableCellValue): value is TableCellBlank; export declare function tableCellPrimary(value: TableCellValue): string | number | null; export declare function tableRowSelectionLabel(row: TableRow, columns: TableColumn[]): string; export declare function nextTableSortState(current: TableSortState | null | undefined, columnId: string): TableSortState; export declare function toggleTableGroupCollapsed(collapsedGroupIds: string[], groupId: string): string[]; export declare function nextTableGroupsCollapsed(collapsedGroupIds: string[], groupIds: string[]): string[]; /** Host for grouped collapse-all: the trailing action lane or a scrollport-owned overlay. */ export type TableCollapseAllHost = { columnId: string; mode: 'action'; } | { mode: 'floating'; }; export declare function tableCollapseAllHost(columns: TableColumn[]): TableCollapseAllHost | undefined; export declare function clampTableColumnSize(column: TableColumn): number | undefined; export declare function tableColumnSize(column: TableColumn): string | undefined; /** * When every column has an explicit width, one ordinary lane must absorb spare * table width so fixed selection and action lanes are not expanded by the * native fixed-table layout algorithm. */ export declare function tableFlexibleColumnId(columns: TableColumn[]): string | undefined; export declare function tableExplicitMinWidth(columns: TableColumn[]): string | undefined; export declare function tableRows(rows: TableRow[], groups: TableGroup[], grouped: boolean): TableRow[]; export declare function deriveTableSelectionState(rows: TableRow[], selectedRowIds: readonly string[]): TableSelectionState; export declare function toggleTableRowSelection(selectedRowIds: readonly string[], row: TableRow): string[]; export declare function toggleAllLoadedTableRows(selectedRowIds: readonly string[], loadedRows: TableRow[]): string[]; /** Toggle every selectable loaded row that belongs to a group. */ export declare function toggleTableGroupSelection(selectedRowIds: readonly string[], groupRows: TableRow[]): string[]; export declare function resolvedTableGroupCount(group: TableGroup): number; export declare const TABLE_GROUP_INTENTS: readonly ["brand", "neutral", "negative", "warning", "caution", "positive"]; export declare function isTableGroupIntent(value: unknown): value is (typeof TABLE_GROUP_INTENTS)[number]; export declare function tableGroupIntentClass(intent: (typeof TABLE_GROUP_INTENTS)[number] | undefined): string | undefined; /** Title color for an intentful group label; defaults to primary when unset. */ export declare function tableGroupLabelColor(intent: (typeof TABLE_GROUP_INTENTS)[number] | undefined): 'primary' | 'brand' | 'negative' | 'warning' | 'caution' | 'positive' | `var(--${string})`; /** Formats the optional table result footer. Returns null when either count is missing. */ export declare function formatTableResultSummary(displayed: number | null | undefined, total: number | null | undefined, label?: string, locale?: string): string | null; /** Formats the virtual-mode total-only result footer. */ export declare function formatTableTotalSummary(total: number | null | undefined, label?: string, locale?: string): string | null; /** * True when a footer slot belongs to the table itself: a light-DOM child of the * host, or a top-level node Stencil relocated into this table's footer. A * slotted ancestor marks a nested component boundary, so dialog action slots * inside footer-leading/footer-trailing content cannot replace the table copy. */ export declare function isOwnedTableFooterSlot(node: Element, host: Element): boolean; export declare function hasOwnedTableFooterSlot(host: Element, slotName: string): boolean; export declare function tableModelIssues(columns: TableColumn[], rows: TableRow[], groups: TableGroup[], grouped: boolean): string[]; //# sourceMappingURL=table-model.d.ts.map