import { Attribute, Filter } from '@sisense/sdk-data'; import { NlqTranslationError } from '../../../types.js'; /** * Validates same-column datetime granularity consistency across query elements. * * Backend alignment: * - Dimension vs filter/highlight on the same column at different levels is allowed. * Filters and dimensions are independent leveled attributes on the same column * (e.g. YEARS vs MONTHS). Period filter members are rewritten to half-open * [from, to) ranges on the raw datetime column, while the breakdown truncates * at its own level (e.g. years filter → Date >= 2013-01-01 AND Date < 2014-01-01, * months dimension → truncate to month). The backend does not reject this pattern. * - Filter vs filter on the same column at different levels is rejected (D1). * The backend only merges same-level date filters; mismatched filter levels are * ambiguous / not safely combinable. * - Dimension vs dimension on the same column at different levels is rejected (D2). * The backend can execute dual Year+Month breakdowns silently with misleading results. * * @param input - Query dimensions, filters, and highlights to check for same-column * datetime granularity conflicts. * @returns Translation errors for conflicting filter/highlight (D1) or dimension (D2) * date levels; empty when consistent. */ export declare function validateQueryDatetimeConsistency(input: { dimensions: Attribute[]; filters: Filter[] | import('@sisense/sdk-data').FilterRelations | null | undefined; highlights: Filter[] | null | undefined; }): NlqTranslationError[];