import { z } from 'zod';
import { DatasetInterface } from './dataset.interface';
export declare const DatasetsSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    type: z.ZodEnum<typeof import("..").DatasetTypeEnum>;
    prefix: z.ZodString;
    parent: z.ZodOptional<z.ZodString>;
    sql: z.ZodOptional<z.ZodString>;
    meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
    collection: z.ZodOptional<z.ZodObject<{
        collection: z.ZodString;
        filters: z.ZodOptional<z.ZodType<import("./filters.interface").FiltersInterface, unknown, z.core.$ZodTypeInternals<import("./filters.interface").FiltersInterface, unknown>>>;
    }, z.core.$strip>>;
    dimensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        type: z.ZodEnum<typeof import("..").DimensionTypesEnum>;
        format: z.ZodOptional<z.ZodEnum<typeof import("..").DimensionFormatsEnum>>;
        explode: z.ZodOptional<z.ZodBoolean>;
        index: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
        upperIndex: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
        switch: z.ZodOptional<z.ZodObject<{
            when: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodIntersection<z.ZodObject<{
                sql: z.ZodOptional<z.ZodString>;
                dimension: z.ZodOptional<z.ZodString>;
                operator: z.ZodOptional<z.ZodEnum<typeof import("..").FilterOperatorsEnum>>;
                value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>]>>;
            }, z.core.$strip>, z.ZodObject<{
                label: z.ZodString;
                description: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>, z.ZodLiteral<false>]>>;
            else: z.ZodOptional<z.ZodString>;
            segment: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>;
        field: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
        sql: z.ZodOptional<z.ZodString>;
        public: z.ZodOptional<z.ZodBoolean>;
        primaryKey: z.ZodOptional<z.ZodBoolean>;
        subQuery: z.ZodOptional<z.ZodBoolean>;
        override: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"custom">]>>;
        meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
    }, z.core.$strip>, z.ZodLiteral<false>]>>>;
    segments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodIntersection<z.ZodObject<{
        sql: z.ZodOptional<z.ZodString>;
        dimension: z.ZodOptional<z.ZodString>;
        operator: z.ZodOptional<z.ZodEnum<typeof import("..").FilterOperatorsEnum>>;
        value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>]>>;
    }, z.core.$strip>, z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        public: z.ZodOptional<z.ZodBoolean>;
        override: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"custom">]>>;
    }, z.core.$strip>>, z.ZodLiteral<false>]>>>;
    relations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodEnum<typeof import("..").RelationTypesEnum>;
        dimension: z.ZodOptional<z.ZodString>;
        targetDataset: z.ZodString;
        targetDimension: z.ZodOptional<z.ZodString>;
        sql: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>, z.ZodLiteral<false>]>>>;
    measures: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<typeof import("..").MeasureTypesEnum>;
        format: z.ZodOptional<z.ZodEnum<typeof import("..").MeasureFormatsEnum>>;
        index: z.ZodOptional<z.ZodString>;
        upperIndex: z.ZodOptional<z.ZodString>;
        sql: z.ZodOptional<z.ZodString>;
        dimension: z.ZodOptional<z.ZodString>;
        public: z.ZodOptional<z.ZodBoolean>;
        override: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"custom">]>>;
        meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
    }, z.core.$strip>, z.ZodLiteral<false>]>>>;
    preAggregations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodOptional<z.ZodEnum<{
            rollup: "rollup";
            original_sql: "original_sql";
            rollup_join: "rollup_join";
        }>>;
        measures: z.ZodOptional<z.ZodArray<z.ZodString>>;
        dimensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
        segments: z.ZodOptional<z.ZodArray<z.ZodString>>;
        timeDimension: z.ZodOptional<z.ZodString>;
        granularity: z.ZodOptional<z.ZodString>;
        partitionGranularity: z.ZodOptional<z.ZodString>;
        rollups: z.ZodOptional<z.ZodArray<z.ZodString>>;
        refreshKeySql: z.ZodOptional<z.ZodString>;
        refreshKeyEvery: z.ZodOptional<z.ZodString>;
        refreshKeyIncremental: z.ZodOptional<z.ZodBoolean>;
        refreshKeyUpdateWindow: z.ZodOptional<z.ZodString>;
        buildRangeStartSql: z.ZodOptional<z.ZodString>;
        buildRangeEndSql: z.ZodOptional<z.ZodString>;
        lambda: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodLiteral<false>]>>>;
}, z.core.$strip>, z.ZodBoolean]>>;
export interface DatasetsInterface {
    [key: string]: DatasetInterface | boolean;
}
