import type { ItemsMap } from './field';
import type { BaseFilterRule, FieldTarget, FilterOperator } from './filter';
export type ConditionalFormattingMinMax<T = number> = {
    min: T;
    max: T;
};
export type ConditionalFormattingColorRange = {
    start: string;
    end: string;
};
export type ConditionalFormattingWithValues<T = number | string> = BaseFilterRule<FilterOperator, T> & {
    values: T[];
};
export type ConditionalFormattingWithCompareTarget<T = number | string> = BaseFilterRule<FilterOperator, T> & {
    compareTarget: FieldTarget | null;
    values?: T[];
};
export type ConditionalFormattingWithFilterOperator<T = number | string> = ConditionalFormattingWithValues<T> | ConditionalFormattingWithCompareTarget<T>;
export declare const isConditionalFormattingWithValues: (rule: ConditionalFormattingWithFilterOperator) => rule is ConditionalFormattingWithValues;
export declare const isConditionalFormattingWithCompareTarget: (rule: ConditionalFormattingWithFilterOperator) => rule is ConditionalFormattingWithCompareTarget;
export type ConditionalFormattingConfigWithSingleColor = {
    target: FieldTarget | null;
    color: string;
    rules: ConditionalFormattingWithFilterOperator[];
    applyTo?: ConditionalFormattingColorApplyTo;
};
export declare const isConditionalFormattingConfigWithSingleColor: (rule: ConditionalFormattingConfig) => rule is ConditionalFormattingConfigWithSingleColor;
export type ConditionalFormattingConfigWithColorRange = {
    target: FieldTarget | null;
    color: ConditionalFormattingColorRange;
    rule: ConditionalFormattingMinMax<number | 'auto'>;
    applyTo?: ConditionalFormattingColorApplyTo;
};
export declare const isConditionalFormattingConfigWithColorRange: (config: ConditionalFormattingConfig) => config is ConditionalFormattingConfigWithColorRange;
export type ConditionalFormattingConfig = ConditionalFormattingConfigWithSingleColor | ConditionalFormattingConfigWithColorRange;
export declare enum ConditionalFormattingConfigType {
    Single = "single",
    Range = "range"
}
export declare const getConditionalFormattingConfigType: (rule: ConditionalFormattingConfig) => ConditionalFormattingConfigType;
export type ConditionalFormattingMinMaxMap = Record<string, ConditionalFormattingMinMax>;
export type ConditionalFormattingRowFields = Record<string, {
    field: ItemsMap[string];
    value: unknown;
}>;
export declare enum ConditionalFormattingComparisonType {
    VALUES = "values",
    TARGET_FIELD = "target_field",
    TARGET_TO_VALUES = "target_to_values"
}
export declare enum ConditionalFormattingColorApplyTo {
    CELL = "cell",
    TEXT = "text"
}
export type ConditionalRuleLabel = {
    field: string;
    operator: string;
    value?: string;
};
//# sourceMappingURL=conditionalFormatting.d.ts.map