import z from 'zod';
import { DatasetStatusEnum } from '../type-enums';
export declare const MetricSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    source: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        collection: z.ZodString;
        expr: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>]>;
    measures: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<typeof import("./measures").MetricMeasureTypeEnum>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>;
    dimensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>>;
}, z.core.$strip>;
export declare const MetricsSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    source: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        collection: z.ZodString;
        expr: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>]>;
    measures: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<typeof import("./measures").MetricMeasureTypeEnum>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>;
    dimensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>>;
}, z.core.$strip>, z.ZodBoolean]>>;
export type MetricType = z.infer<typeof MetricSchema>;
export type MetricsType = z.infer<typeof MetricsSchema>;
export declare const MetricRecordCreateSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    source: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        collection: z.ZodString;
        expr: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>]>;
    measures: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<typeof import("./measures").MetricMeasureTypeEnum>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>;
    dimensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>>;
    key: z.ZodString;
    status: z.ZodEnum<typeof DatasetStatusEnum>;
}, z.core.$strip>;
export type MetricRecordCreateType = z.infer<typeof MetricRecordCreateSchema>;
export declare const MetricRecordSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    source: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        collection: z.ZodString;
        expr: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>]>;
    measures: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<typeof import("./measures").MetricMeasureTypeEnum>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>;
    dimensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        expr: z.ZodString;
    }, z.core.$strip>, z.ZodBoolean]>>>;
    key: z.ZodString;
    status: z.ZodEnum<typeof DatasetStatusEnum>;
    id: z.ZodString;
    tenantIdentifier: z.ZodString;
    createdAt: z.ZodDate;
    updatedAt: z.ZodDate;
}, z.core.$strip>;
export type MetricRecordType = z.infer<typeof MetricRecordSchema>;
