import { Filter } from './filter.models'; export declare type ProjectionAttribute = FactSheetFieldAttribute | RelationFieldAttribute | TargetFactSheetFieldAttribute | PathFieldAttribute; export interface FactSheetFieldAttribute { name: string; type: 'field'; field: string; } export interface RelationFieldAttribute { name: string; type: 'relationField'; relation: string; field: string; } export interface TargetFactSheetFieldAttribute { name: string; type: 'targetField'; relation: string; field: string; } export interface PathFieldAttribute { name: string; type: 'path'; path: Path; } export declare type Path = FieldPath | RelationPath | FactSheetPath | ConstrainingRelationPath | PathsPath; export interface FieldPath { type: 'field'; field: string; } export interface RelationPath { type: 'relation'; relation: string; path: Path; filter: Filter | undefined; } export interface FactSheetPath { type: 'factSheet'; path: Path; } export interface ConstrainingRelationPath { type: 'constrainingRelation'; path: Path; } export interface PathsPath { type: 'paths'; paths: Record; }