import { DataSourceField, MetadataItem, MetadataItemJaql } from '@sisense/sdk-data';
import { ChartRecommendations, ExpandedQueryModel, SimpleChartRecommendations, SimpleQueryModel } from '../types.js';
/**
 * A class that translates ExpandedQueryModel (Raw JAQL+Chart Recommendations)
 * to SimpleQueryModel (Simple JAQL+Simple Chart Options) and vice versa.
 *
 * It also provides methods to stringify query models to YAML strings
 * and parse YAML strings to query models.
 *
 * @deprecated QueryTranslator was designed for Forge, which is now discontinued. To simplify the JQL query from NLQ, use simplifyMetadataItem() instead.
 * @internal
 */
export declare class QueryTranslator {
    private readonly contextTitle;
    private readonly indexedFields;
    /**
     * Constructor for QueryTranslator.
     *
     * @param contextTitle - The context title
     * @param fields - The data source fields
     */
    constructor(contextTitle: string, fields: DataSourceField[]);
    private indexFields;
    /**
     * Concatenates Aggregation Types.
     */
    private concatAggTypes;
    /**
     * Simplifies Aggregation Formula defined in MetadataItemJaql returned from chat response.
     *
     * @param aggFormula - The Aggregation Formula to simplify
     * @returns The equivalent measure
     * @privateRemarks
     * See unit tests for examples of aggregation formulas and their equivalent measures.
     */
    simplifyAggFormula(aggFormula: MetadataItemJaql): MetadataItemJaql;
    /**
     * Simplifies MetadataItemJaql.
     *
     * @param item - The MetadataItemJaql to simplify
     * @returns The simplified MetadataItemJaql
     */
    simplifyMetadataItemJaql(item: MetadataItemJaql): MetadataItemJaql;
    /**
     * Simplify filter
     *
     * @param item - the MetadataItem
     * @return the MetadataItem with simplified filter
     */
    simplifyMetadataItemFilter(item: MetadataItem): MetadataItem;
    /**
     * Simplify date and number format
     *
     * @param item - the MetadataItem
     * @return the MetadataItem with simplified format
     */
    simplifyMetadataItemFormat(item: MetadataItem): MetadataItem;
    /**
     * Simplifies MetadataItem.
     *
     * @param item - The MetadataItem to simplify
     * @returns The simplified MetadataItem
     */
    simplifyMetadataItem(item: MetadataItem): MetadataItem;
    /**
     * Simplifies Chart Recommendations.
     *
     * @param chartRecommendations - The Chart Recommendations to simplify
     * @returns The simplified chart data options
     */
    simplifyChartRecommendations(chartRecommendations: ChartRecommendations | {}): SimpleChartRecommendations | {};
    /**
     * Returns the query title with the chart type.
     *
     * @param queryTitle - The query title
     * @param chartRecommendations - The chart recommendations
     * @returns The query title with the chart type
     */
    getQueryTitleWithChartType(queryTitle: string, chartRecommendations: {} | ChartRecommendations): string;
    /**
     * Takes a ExpandedQueryModel (e.g., from chat response) and translates it to SimpleQueryModel.
     *
     * @param expandedQueryModel - The Expanded Query model to simplify
     * @returns The simplified query model
     */
    translateToSimple(expandedQueryModel: ExpandedQueryModel): SimpleQueryModel;
    /**
     * Stringifies a simple query model to YAML string.
     *
     * @param simpleQueryModel - The Simple Query model to convert
     * @returns The YAML string representing the simple query model
     */
    stringifySimple(simpleQueryModel: SimpleQueryModel): string;
    /**
     * Returns the query template.
     */
    getQueryTemplate(): string;
    /**
     * Parses a YAML string to Simple Query Model.
     *
     * @param simpleQueryYaml - The YAML string to parse
     * @returns The Simple Query Model
     */
    parseSimple(simpleQueryYaml: string): SimpleQueryModel;
    /**
     * Expands Chart Recommendations.
     *
     * @param chartRecommendations - The Chart Recommendations to expand
     * @returns The expanded chart recommendations
     */
    expandChartRecommendations(chartRecommendations: SimpleChartRecommendations | {}): ChartRecommendations | {};
    /**
     * Expands MetadataItemJaql by adding table, column, datatype, and title
     * if they are missing from the item.
     *
     * @param item - The MetadataItemJaql to expand
     * @returns The expanded MetadataItemJaql
     */
    expandMetadataItemJaql(item: MetadataItemJaql): MetadataItemJaql;
    /**
     * Expands MetadataItem
     *
     * @param item - The MetadataItem to expand
     * @returns The expanded MetadataItem
     */
    expandMetadataItem(item: MetadataItem): MetadataItem;
    /**
     * Translates a Simple Query Model to Expanded Query Model.
     *
     * @param simpleQueryModel - The Simple Query model to convert
     * @returns The Expanded Query Model
     */
    translateToExpanded(simpleQueryModel: SimpleQueryModel): ExpandedQueryModel;
}
