export interface ReportingDimension {
    id: string;
    label: string;
    dataset: string;
    prismaField: string;
    resolver?: string;
    type: "string" | "number" | "boolean" | "date" | "enum" | "computed";
    measures?: string[];
    filterable?: boolean;
    enumMap?: {};
    supportsCombination: boolean;
    filterType?: "text" | "select" | "number" | "date";
    filterResolver?: string;
}
export interface ReportingColumn {
    id: string;
    label: string;
    type: "dimension" | "measure";
}
export interface ReportingSummary {
    total: number;
    columns: {};
}
export interface ReportingResult {
    columns: ReportingColumn[];
    rows: any[];
    summary: ReportingSummary;
    measure: {
        id: string;
        decimals: number;
        unit?: string;
    };
}
export interface ReportingMeasure {
    id: string;
    label: string;
    aggregate: "count" | "countDistinct" | "sum" | "avg" | "min" | "max";
    prismaField?: string;
    datasets: string[];
    summable?: boolean;
    decimals?: number;
    unit?: string;
}
export interface ReportingCrossMeasure {
    id: string;
    label: string;
    dataset: string;
    calculate(rows: any[]): number;
}
