import { z } from "zod";
import { zNumFormat } from "../format/numFormat.js";
const zMeasure = z.object({
    id: z.string(),
    alias: z.string().optional(),
    autoFormat: z.boolean().optional(),
    numFormat: zNumFormat.optional(),
    format: zNumFormat.optional(),
    encoding: z["enum"]([
        'primaryYAxis',
        'secondaryYAxis',
        'xAxis',
        'yAxis',
        'angle',
        'radius',
        'size',
        'color',
        'label',
        'tooltip',
        'detail',
        'column',
        'value',
        'q1',
        'q3',
        'min',
        'max',
        'median',
        'outliers',
        'x0',
        'x1'
    ]).optional(),
    parentId: z.string().optional(),
    chartType: z["enum"]([
        'line',
        'column',
        'columnParallel',
        'columnPercent',
        'area',
        'areaPercent',
        'scatter'
    ]).optional()
});
const zMeasureGroup = z.object({
    id: z.string(),
    alias: z.string().optional(),
    get children () {
        return z.array(zMeasureGroup.or(zMeasure)).optional();
    }
});
const zMeasures = z.array(zMeasure);
const zMeasureTree = z.array(zMeasureGroup.or(zMeasure));
export { zMeasure, zMeasureGroup, zMeasureTree, zMeasures };

//# sourceMappingURL=zMeasures.js.map