import { ReportingSchemaService } from "./reporting_schema.service";
import { PrismaService } from "prisma/prisma.service";
import { ReportingQueryDto } from "./dto/reporting-query.dto";
import { ReportingFilterBuilder } from "./reporting-filter_builder";
import { ReportingResolverRegistry } from "./resolvers/reporting-resolver_registry";
export declare class ReportingService {
    private schema;
    private prisma;
    private resolverRegistry;
    private filterBuilder;
    constructor(schema: ReportingSchemaService, prisma: PrismaService, resolverRegistry: ReportingResolverRegistry, filterBuilder: ReportingFilterBuilder);
    getSchema(): Promise<{
        sources: unknown[];
    }>;
    execute(dto: ReportingQueryDto): Promise<{
        visualization: string | undefined;
        availableVisualizations: string[];
        result: {
            columns: {
                id: string;
                label: string;
                type: string;
            }[];
            rows: any[];
            summary: {
                total: any;
                columns: {
                    value: any;
                };
            };
            measure: {
                id: string;
                decimals: number;
                unit: string | undefined;
            };
        };
    }>;
    private calculateTotal;
    private calculateSummary;
    private groupBy;
    private groupByComputedDimension;
    private formatGroupResult;
    private getMeasureValue;
    private buildAggregate;
    private executeCountDistinct;
    private getModel;
    private formatResult;
    private executeCombination;
    private getAvailableVisualizations;
    private canDisplayPie;
    private canDisplayBar;
    private canDisplayKPI;
}
