import { z } from 'zod';
import { DimensionInterface } from './dimension.interface';
export declare const DimensionsSchema: 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>]>>;
export interface DimensionsInterface {
    [key: string]: DimensionInterface | false;
}
