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; }