/** * Shared validation for relationship-qualified filters, used by both the * dataset-query and metric-query validators. */ import type { AnyDatasetInstance, DatasetQuery, ExecutionContext, MetricFilter, MetricQuery } from '../types.js'; type RelationshipQuery = Pick; /** * Tenant-less base datasets may still reach tenant-scoped data through a * relationship. Require either a concrete runtime tenant or the trusted * cross-tenant scope whenever a query activates such a join. */ export declare function validateRelationshipTenantRuntime(ds: AnyDatasetInstance, query: RelationshipQuery, context?: ExecutionContext): string | undefined; /** * Validates a relationship-qualified filter (`relationship.field`). Returns an * error message string, or null when the filter is valid. * * Enforces the same tenant rule the base dataset uses: when runtime tenancy is * active and the joined target declares a `tenantKey`, an explicit filter on * that column is rejected (the planner injects the tenant predicate instead). */ export declare function validateQualifiedFilter(ds: AnyDatasetInstance, filter: MetricFilter, context?: ExecutionContext): string | null; export {}; //# sourceMappingURL=relationship-validation.d.ts.map