import { FilterTextMask, ConditionalRule } from './table-properties-types.js'; /** * Conditional-formatting matchers shared by `DataTable` cells, * `data-row-list` rows, and board card backgrounds. Keeping the logic * here ensures the table grid and the list / board derivatives all * paint the same row with the same rule (no UI drift between views). * * `columns` is optional and only used when the consumer needs to: * - read from a different row key than the rule's `fieldKey` * (`sortKey`-aliased columns), or * - apply a `textMask` (phone / zip) so "contains 555" matches the * raw digits of "(415) 555-0100". */ type ConditionalColumnHint = { key: string; sortKey?: string; filter?: { type?: string; textMask?: FilterTextMask; }; }; /** Whether a conditional rule matches a row (same logic as DataTable cells). */ declare function conditionalRuleMatchesRow>(row: T, rule: ConditionalRule, columns?: ConditionalColumnHint[]): boolean; /** First matching conditional rule background for a row (list/board row tint). */ declare function getConditionalRowBackground>(row: T, rules: ConditionalRule[] | undefined, columns?: ConditionalColumnHint[]): string | undefined; /** Background for one table cell from conditional rules on that column. */ declare function getConditionalCellBackground>(row: T, colKey: string, rules: ConditionalRule[] | undefined, columns?: ConditionalColumnHint[]): string | undefined; export { type ConditionalColumnHint, conditionalRuleMatchesRow, getConditionalCellBackground, getConditionalRowBackground };