import { TotalumApiResponse } from "../common/interfaces"; import { DataValues, LookupFilterResult, CustomAggregationResponse } from "../common/response-types"; import { FetchClient } from "../common/fetch-client"; import { FilterLookupSearchQueryI, filterNestedOptionsI, NestedQueryFilterI } from "../common/interfaces"; export declare class FilterService { private client; constructor(client: FetchClient); /** * Performs a lookup filter on a page. * @param {string} idPage - The page ID * @param {FilterLookupSearchQueryI} query - The filter query * @param {string[]} idsOfMultipleNodesToSearch - Optional array of node IDs to search * @param {boolean} returnCount - Whether to return count * @returns {Promise>} * @deprecated use nestedFilter instead */ lookUpFilter(idPage: string, query: FilterLookupSearchQueryI, idsOfMultipleNodesToSearch?: string[], returnCount?: boolean): Promise>; /** * Filters data across nested related tables (like a SQL join). * @deprecated Use `crud.query()` instead, which supports nested relations with filtering, sorting, _has, and more. * @param {NestedQueryFilterI} nestedQuery - The nested query to filter by * @param {string} tableNameToGetResults - The table that you want to get the results from * @param {filterNestedOptionsI} filterOptions - Extra options for the filter like pagination and sort * @returns {Promise>} - Array of filtered items */ nestedFilter(nestedQuery: NestedQueryFilterI, tableNameToGetResults: string, filterOptions?: filterNestedOptionsI): Promise>; /** * Runs a custom MongoDB aggregation query. * @param {string} type - The table name that will be at the top of the MongoDB aggregation * @param {string} customMongoQuery - The custom mongo aggregation query * @returns {Promise>} - A promise with the result of the aggregation */ runCustomMongoAggregationQuery(type: string, customMongoQuery: string): Promise>; }