import { Specification } from '../../model-parsing/models/specification.models'; import { DataModel } from '../../model/models/data-model.models'; import { Filter } from '../../model/models/filter.models'; import { ProjectionAttribute } from '../../model/models/projection-attribute.models'; import { TagModel } from '../../model/models/tag.models'; import { FacetSelection } from '../models/facet-selection.models'; import { User } from '../models/user.models'; interface Configuration { dataModel: DataModel; tagModel: TagModel; user: User; } export interface RequirementsCreationOptions { usePathfinderFacetFilter: Record; showOnlyActiveRelations: boolean; strictRelationFiltering: boolean; excludeConstrainingRelations?: string[]; } export interface ProjectionRequirements { attributes: ProjectionAttribute[]; filters: Filter[]; } /** * Creates projection requirements (attributes to fetch + filters to apply) from * the current facet selection and specifications. Combines `mapSpecificationsToAttributes` * and `mapFacetSelectionToProjectionsFilters` into a single call. * * @deprecated The Projections API has been replaced by the Unified GraphQL API. * Use `mapAttributesToQuery` to build GraphQL selections and pass them to * `lx.getAllFactSheets` or a direct GraphQL query instead. * * @param facetSelection - The user's current facet-filter selection * @param specs - The full `Specification[]` produced by `parseModels` * @param configuration - Context object containing `dataModel`, `tagModel`, and `user` * @param options - Controls for relation filtering behaviour and constraining-relation exclusions * @returns `{ attributes, filters }` — the projection attributes to query and filters to apply */ export declare function createProjectionRequirements(facetSelection: FacetSelection, specs: Specification[], configuration: Configuration, options?: Partial): ProjectionRequirements; export {};