import { type DimensionType } from './field';
import type { ParameterValue } from './parameters';
import type { WarehouseTypes } from './projects';
import type { GroupType } from './table';
type SpotlightCategory = {
    label: string;
    color?: string;
};
type SpotlightConfig = {
    default_visibility: 'show' | 'hide';
    categories?: {
        [yaml_reference: string]: SpotlightCategory;
    };
};
export type LightdashProjectParameter = {
    label: string;
    description?: string;
    type?: 'string' | 'number' | 'date';
    default?: ParameterValue;
    multiple?: boolean;
    allow_custom_values?: boolean;
    options?: string[] | number[];
    options_from_dimension?: {
        model: string;
        dimension: string;
    };
};
/**
 * Warehouse configuration for Lightdash-only projects
 * Reuses WarehouseTypes enum to avoid duplication
 */
export type WarehouseConfig = {
    type: WarehouseTypes;
};
/**
 * Project-wide default settings that can be overridden at explore or field level
 */
export type ProjectDefaults = {
    /**
     * Default case sensitivity for string filters across the project.
     * When false, all string filters will be case insensitive by default.
     * Can be overridden at explore or field level.
     * Defaults to true if not specified.
     */
    case_sensitive?: boolean;
    /**
     * Default behavior for column totals in results tables.
     * When false, the extra warehouse query that calculates column totals
     * is not run by default for new queries. Charts that explicitly enable
     * "Show column totals" still calculate them.
     * Defaults to true if not specified.
     */
    column_totals?: boolean;
};
export type CustomGranularity = {
    label: string;
    sql: string;
    type?: DimensionType.DATE | DimensionType.TIMESTAMP | DimensionType.STRING;
};
export type LightdashProjectConfig = {
    spotlight: SpotlightConfig;
    parameters?: Record<string, LightdashProjectParameter>;
    warehouse?: WarehouseConfig;
    defaults?: ProjectDefaults;
    custom_granularities?: Record<string, CustomGranularity>;
    /**
     * Labels & descriptions for the group keys referenced by models'
     * `meta.groups` array. Used to render nested table groups in the
     * Explore sidebar. Missing keys fall back to using the key as the label.
     */
    table_groups?: Record<string, GroupType>;
};
export declare const DEFAULT_SPOTLIGHT_CONFIG: SpotlightConfig;
export {};
//# sourceMappingURL=lightdashProjectConfig.d.ts.map