/// <reference types="react" />
import Joi from '@vizzly/joi';
import { SupportedAggregates } from '../Aggregate';
import { QueryEngineConfig } from '../QueryEngineConfig/types';
import { SupportedTimeTruncFunctions } from '@vizzly/semantic-layer-public';
import { ComponentInterfaceConfig } from '../ComponentInterface/types';
export * from '../Tags/tags';
export declare const measureSchema: (supportedAggregates: SupportedAggregates, attributeSchemaOptions: ComponentInterfaceConfig['attributesSchemaOptions']) => Joi.AlternativesSchema<any> | Joi.ObjectSchema<any>;
export declare const orderSchema: (queryEngineConfig: QueryEngineConfig) => Joi.ObjectSchema<any>;
export declare const timeDimensionSchema: (supportedTimeTruncFunctions: SupportedTimeTruncFunctions) => Joi.ObjectSchema<any>;
export declare const dimensionSchema: (supportedTimeTruncFunctions: SupportedTimeTruncFunctions, attributeSchemaOptions: ComponentInterfaceConfig['attributesSchemaOptions']) => Joi.ArraySchema<any[]>;
export declare const queryFilterSchema: (queryEngineConfig: QueryEngineConfig, maxDepth?: number) => Joi.Schema;
export declare const filterSchema: (queryEngineConfig: QueryEngineConfig) => Joi.ObjectSchema<any>;
export declare const queryAttributesFilter: (queryEngineConfig: QueryEngineConfig) => Joi.ArraySchema<any[]>;
export declare const queryAttributesLimit: () => Joi.NumberSchema<number>;
export declare const baseAttributesSchema: (attributeSchemaOptions: ComponentInterfaceConfig['attributesSchemaOptions']) => {
    viewId: Joi.StringSchema<string>;
    displayTitle: Joi.StringSchema<string>;
    displaySubject: Joi.StringSchema<string>;
    dataSetId: Joi.StringSchema<string>;
    protectedByOrganisation: Joi.BooleanSchema<boolean>;
};
export declare const approxAxisLabelCountSchema: Joi.AnySchema<any>;
export declare const approxAxisLabelCountSchemaWithExtraOptions: (extraOptions?: import("react").ReactText[] | undefined) => Joi.AnySchema<any>;
export declare const querySchema: (queryEngineConfig: QueryEngineConfig, attributeSchemaOptions: ComponentInterfaceConfig['attributesSchemaOptions']) => {
    measure: Joi.ArraySchema<any[]>;
    dimension: Joi.ArraySchema<any[]>;
    order: Joi.ArraySchema<any[]>;
    limit: Joi.NumberSchema<number>;
    offset: Joi.NumberSchema<number>;
};
export declare const timeDimensionQuerySchema: (queryEngineConfig: QueryEngineConfig, attributeSchemaOptions: ComponentInterfaceConfig['attributesSchemaOptions'], approxXAxisLabelCountExtraOptions?: import("react").ReactText[] | undefined) => {
    filter: Joi.ArraySchema<any[]>;
    timeDimension: Joi.AlternativesSchema<any>;
    drilldown: Joi.AlternativesSchema<string | any[]>;
    xAxisPostfix: Joi.StringSchema<string>;
    xAxisPrefix: Joi.StringSchema<string>;
    yAxisFormat: Joi.AlternativesSchema<any>;
    yAxisPostfix: Joi.StringSchema<string>;
    yAxisPrefix: Joi.StringSchema<string>;
    yDualAxisFormat: Joi.AlternativesSchema<any>;
    yDualAxisPostfix: Joi.StringSchema<string>;
    yDualAxisPrefix: Joi.StringSchema<string>;
    xAxisMin: Joi.AlternativesSchema<any>;
    xAxisMax: Joi.AlternativesSchema<any>;
    yAxisMin: Joi.AlternativesSchema<any>;
    yAxisMax: Joi.AlternativesSchema<any>;
    yDualAxisMin: Joi.AlternativesSchema<any>;
    yDualAxisMax: Joi.AlternativesSchema<any>;
    xAxisFormat: Joi.AlternativesSchema<any>;
    approxYAxisLabelCount: Joi.AnySchema<any>;
    approxXAxisLabelCount: Joi.AnySchema<any>;
    approxDualYAxisLabelCount: Joi.AnySchema<any>;
    measure: Joi.ArraySchema<any[]>;
    dimension: Joi.ArraySchema<any[]>;
    order: Joi.ArraySchema<any[]>;
    limit: Joi.NumberSchema<number>;
    offset: Joi.NumberSchema<number>;
};
export declare const lineCurveSchema: Joi.StringSchema<string>;
export declare const areaCurveSchema: Joi.StringSchema<string>;
export declare const protectedFieldsMeasure: (queryEngineConfig: QueryEngineConfig) => Joi.ArraySchema<any[]>;
export declare const protectedFieldsDimension: (queryEngineConfig: QueryEngineConfig) => Joi.ArraySchema<any[]>;
export declare const parametersSchema: (queryEngineConfig: QueryEngineConfig, attributeSchemaOptions: ComponentInterfaceConfig['attributesSchemaOptions']) => Joi.ObjectSchema<any>;
export declare const parametersV2Schema: Joi.ObjectSchema<any>;
export declare const goalLineSchema: () => Joi.ObjectSchema<any>;
export declare const goalLinesSchema: () => Joi.ArraySchema<any[]>;
export declare const quadrantsSchema: () => Joi.ObjectSchema<any>;
export declare const headlineSchema: () => Joi.ObjectSchema<any>;
export declare const axisTitleSchema: () => Joi.ObjectSchema<any>;
export declare const sizingSchema: Joi.ObjectSchema<any>;
