import type { ColumnDefinition, TableMetadata } from './types'; /** * Whether a column should render in a list/index table view. * * A column is hidden when its `visibility` is scoped away from the table * (`'modal'`: only the create/edit dialog; `'list'`: only API payloads) or * when the legacy `hidden` boolean is set. Empty / `'all'` / `'table'` keep * the column visible — preserving zero-value behaviour for metadata emitted * by older kernels that don't set `visibility` at all. */ export declare function isColumnVisibleInTable(col: ColumnDefinition): boolean; /** * Whether a column should render in a MODAL context — the create/edit/view * dialog. Mirror image of {@link isColumnVisibleInTable}: a column scoped to * `'table'` (list-only) or `'list'` (API-only) is hidden here, while empty / * `'all'` / `'modal'` keep it visible. Preserves zero-value behaviour for * metadata emitted by older kernels that never set `visibility`. */ export declare function isColumnVisibleInModal(col: ColumnDefinition): boolean; /** * Audit / system columns that are pure noise inside a child line list rendered * under a parent record (line items, one_to_many panels in the view modal): * they are either constant for the parent (`organization_id`) or already * obvious from the parent record (`created_by`, timestamps). Hidden by default * in that context — see {@link isColumnVisibleInLineSubtable}. */ export declare const AUDIT_SUBTABLE_COLUMN_KEYS: readonly string[]; export declare function isColumnVisibleInLineSubtable(col: ColumnDefinition): boolean; /** * Returns the keys of columns that opt into the model's full-text search, * or `null` when no column declares `searchable` at all. * * `null` is the legacy signal: the host should NOT narrow the search request * (every column participates, matching pre-Searchable kernels). An empty * array is meaningful — it means every column has been explicitly opted out * and the host should disable the global search input. */ export declare function getSearchableColumnKeys(metadata: Pick): string[] | null; //# sourceMappingURL=column-visibility.d.ts.map