import { BaseQueryParams } from '../../../../domains/query-execution/index.js'; import { NlqResponseJSON, NlqTranslationResult } from '../../types.js'; /** * Translates CSDK BaseQueryParams to NLQ JSON format. * Direction: CSDK → JSON * * Converts CSDK objects (Attribute[], Measure[], Filter[], FilterRelations) to NLQ FunctionCall format. * * @example * ```typescript * const query: BaseQueryParams = { * dimensions: [DM.Category.Category, DM.Brand.Brand], * measures: [ * measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'), * measureFactory.sum(DM.Commerce.Cost, 'Total Cost'), * ], * filters: [ * filterFactory.members(DM.Commerce.Date.Years, ['2024-01-01T00:00:00']), * filterFactory.topRanking(DM.Brand.Brand, measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'), 5), * ], * }; * * const result = translateQueryToJSON(query); * if (result.success) { * // result.data contains: * // { * // dimensions: ['DM.Category.Category', 'DM.Brand.Brand'], * // measures: [ * // { function: 'measureFactory.sum', args: ['DM.Commerce.Revenue', 'Total Revenue'] }, * // { function: 'measureFactory.sum', args: ['DM.Commerce.Cost', 'Total Cost'] }, * // ], * // filters: [ * // { function: 'filterFactory.members', args: ['DM.Commerce.Date.Years', ['2024-01-01T00:00:00']] }, * // { function: 'filterFactory.topRanking', args: ['DM.Brand.Brand', {...}, 5] }, * // ], * // } * } else { * // Handle errors: result.errors contains structured error information * } * ``` * * @example * To translate only measures or shared formulas: * ```typescript * const result = translateQueryToJSON({ * measures: [measureFactory.sum(DM.Commerce.Revenue)], * dimensions: [], * filters: [], * }); * ``` * * @param query - BaseQueryParams object with CSDK objects * @returns NlqTranslationResult with FunctionCall format or structured errors * @internal */ export declare function translateQueryToJSON(query: BaseQueryParams): NlqTranslationResult;