import { type AnyType } from '../types/any';
import { type DbtModelLightdashMetric } from '../types/dbt';
import { type DbtSemanticModel } from '../types/dbtSemanticLayer';
export type TranslateMetricFlowArgs = {
    /** `manifest.semantic_models` */
    semanticModels: Record<string, DbtSemanticModel>;
    /** `manifest.metrics` (MetricFlow-shaped in dbt >= 1.6) */
    metrics: Record<string, AnyType>;
    /** dbt model `unique_id` -> Lightdash table name, for models being deployed. */
    modelNamesByUniqueId: Record<string, string>;
};
export type TranslateMetricFlowResult = {
    /** table name -> metric name -> Lightdash metric definition. */
    metricsByModel: Record<string, Record<string, DbtModelLightdashMetric>>;
    warnings: string[];
    translatedCount: number;
    skippedCount: number;
};
/**
 * Translate supported MetricFlow metric definitions into Lightdash model
 * metrics, grouped by the dbt model they belong to.
 *
 * Supported: `simple` metrics and measures flagged `create_metric: true`
 * (including `sum_boolean` and same-model where-filters), plus `ratio` and
 * `derived` metrics whose inputs all resolve to metrics on the same model
 * (compiled to non-aggregate `number` metrics referencing them). Everything
 * else (cumulative / conversion metrics, cross-model inputs, time-offset
 * inputs, cross-model or non-Dimension filters) is skipped with a warning.
 */
export declare const translateMetricFlowMetrics: ({ semanticModels, metrics, modelNamesByUniqueId, }: TranslateMetricFlowArgs) => TranslateMetricFlowResult;
//# sourceMappingURL=metricFlow.d.ts.map