import type { CompiledTable } from '../../types/explore';
import type { CompiledDimension, FieldId } from '../../types/field';
export declare enum PreAggregateDerivedDimensionIneligibilityReason {
    CIRCULAR_DEPENDENCY = "circular_dependency",
    COMPILATION_ERROR = "compilation_error",
    MISSING_DEPENDENCY = "missing_dependency",
    PARAMETER_REFERENCES = "parameter_references",
    USER_ATTRIBUTES = "user_attributes"
}
type PreAggregateDerivedDimensionEligibilityBase = {
    referencedDimensionFieldIds: FieldId[];
};
export type PreAggregateDerivedDimensionEligibility = ({
    isEligible: true;
} & PreAggregateDerivedDimensionEligibilityBase) | ({
    isEligible: false;
    ineligibleDimensionFieldId: FieldId;
    reason: PreAggregateDerivedDimensionIneligibilityReason;
} & PreAggregateDerivedDimensionEligibilityBase);
type PreAggregateDimensionLookup = Record<string, Pick<CompiledTable, 'name' | 'originalName' | 'dimensions'>>;
export declare const analyzePreAggregateDerivedDimensionEligibility: ({ dimension, tables, }: {
    dimension: CompiledDimension;
    tables: PreAggregateDimensionLookup;
}) => PreAggregateDerivedDimensionEligibility;
export {};
//# sourceMappingURL=dimensionEligibility.d.ts.map