import { FieldNode, GraphQLResolveInfo, SelectionNode } from "graphql"; import { IFilterCriteria, IQueryData, ISortCriteria } from "../type-graphql/resolvers/query-resolver"; import { BaseModel, IRelationDefinition } from "./../database/base.model"; /** * * Parses GraphQL Info object an converts to a tree like structure containing fields and entities * * @param {FieldNode} info * @param {Array} relations * @returns {IQueryData} */ export declare const getQueryData: (info: FieldNode, modelType: typeof BaseModel, sort?: ISortCriteria | undefined, omitedFields?: string[] | undefined) => IQueryData; export interface GraphQLPartialResolveInfo { fieldNodes: [ { selectionSet: { selections: readonly SelectionNode[]; }; } ]; } export declare const getInfoFromSubfield: (subfield: string, info: GraphQLInfo) => GraphQLPartialResolveInfo | null; export declare const getQueryDataFromFilters: (queryData: IQueryData | null, filter: IFilterCriteria | null, relations: Array) => IQueryData; export declare const getQueryDataFromSorts: (queryData: IQueryData | null, sort: ISortCriteria, relations: Array, positionInsideProperty?: number) => IQueryData; export declare const getAllPropertiesFromFilter: (filter: IFilterCriteria | null) => Array; export declare const getAllPropertiesFromSort: (sort: ISortCriteria | null) => Array; export declare type GraphQLInfo = GraphQLResolveInfo | GraphQLPartialResolveInfo;