import { Filter, FilterRelations } from '@sisense/sdk-data';
import { NlqTranslationResult } from '../../../types.js';
import { FiltersFunctionCallInput, FiltersInput, HighlightsFunctionCallInput, HighlightsInput } from '../../types.js';
/**
 * Translate an array of JSON objects to filters
 *
 * @example
 * [{
 * "function": "filterFactory.logic.or",
 * "args": [
 * {
 * "function": "filterFactory.startsWith",
 *      "args": ["DM.Country.Country", "A"]
 *    },
 *    {
 *      "function": "filterFactory.measureGreaterThan",
 *      "args": [
 *        {
 *          "function": "measureFactory.sum",
 *          "args": ["DM.Commerce.Revenue", "Total Revenue"]
 *        },
 *        1000
 *      ]
 *    }
 *  ]
 * }]
 *
 * is translated to the following Filter[] or FilterRelations object:
 * filterFactory.logic.or([
 * filterFactory.startsWith("DM.Country.Country", "A"),
 * filterFactory.measureGreaterThan(
 * measureFactory.sum("DM.Commerce.Revenue", "Total Revenue"),
 * 1000
 * )
 * ])
 * @param filtersJSON - A JSON array representing the filters
 * @param dataSource - The data source to use for the filters
 * @param tables - The tables to use for the filters
 * @returns A Filter[] or FilterRelations object
 */
export declare const translateFiltersFromJSONFunctionCall: (input: FiltersFunctionCallInput) => NlqTranslationResult<Filter[] | FilterRelations>;
/**
 * Translate an array of JSON objects to filters.
 * Direction: JSON → CSDK
 *
 * @param input - FiltersInput object
 * @returns NlqTranslationResult<Filter[] | FilterRelations>
 */
export declare const translateFiltersFromJSON: (input: FiltersInput) => NlqTranslationResult<Filter[] | FilterRelations>;
export declare const translateHighlightsFromJSONFunctionCall: (input: HighlightsFunctionCallInput) => NlqTranslationResult<Filter[]>;
/**
 * Translate an array of JSON objects to highlights.
 * Direction: JSON → CSDK
 *
 * @param input - HighlightsInput object
 * @returns NlqTranslationResult<Filter[]>
 */
export declare const translateHighlightsFromJSON: (input: HighlightsInput) => NlqTranslationResult<Filter[]>;
