import type { ExecuteQueryParams } from '../../../../domains/query-execution/index.js';
import { NlqResponseJSON, NlqTranslationResult } from '../../types.js';
/**
 * Translates CSDK ExecuteQueryParams to NLQ JSON format.
 * Direction: CSDK → JSON
 *
 * Converts CSDK objects (Attribute[], Measure[], Filter[], FilterRelations) to NLQ FunctionCall format.
 *
 * @example
 * ```typescript
 * const query: ExecuteQueryParams = {
 *   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 - ExecuteQueryParams object with CSDK objects
 * @returns NlqTranslationResult<NlqResponseJSON> with FunctionCall format or structured errors
 * @internal
 */
export declare function translateQueryToJSON(query: ExecuteQueryParams): NlqTranslationResult<NlqResponseJSON>;
