import type { ItemsMap } from './field';
import type { BaseFilterRule, FieldTarget, FilterOperator } from './filter';
export type ConditionalFormattingMinMax<T = number> = {
    /** Minimum value (number or 'auto') */
    min: T;
    /** Maximum value (number or 'auto') */
    max: T;
};
export type ConditionalFormattingColorRange = {
    /** Start color for gradient */
    start: string;
    /** End color for gradient */
    end: string;
};
export type ConditionalFormattingWithValues<T = number | string> = BaseFilterRule<FilterOperator, T> & {
    /** Values to compare against */
    values: T[];
};
export type ConditionalFormattingWithCompareTarget<T = number | string> = BaseFilterRule<FilterOperator, T> & {
    /** Target field to compare against */
    compareTarget: FieldTarget | null;
    /** Values to compare against */
    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 field for the formatting rule */
    target: FieldTarget | null;
    /** Color for single-color conditional formatting */
    color: string;
    /** Color for dark mode */
    darkColor?: string;
    /** Rules for single-color conditional formatting */
    rules: ConditionalFormattingWithFilterOperator[];
    /** Apply formatting to cell background or text */
    applyTo?: ConditionalFormattingColorApplyTo;
};
export declare const isConditionalFormattingConfigWithSingleColor: (rule: ConditionalFormattingConfig) => rule is ConditionalFormattingConfigWithSingleColor;
export type ConditionalFormattingConfigWithColorRange = {
    /** Target field for the formatting rule */
    target: FieldTarget | null;
    /** Color range for gradient conditional formatting */
    color: ConditionalFormattingColorRange;
    /** Rule for color range formatting (min/max values) */
    rule: ConditionalFormattingMinMax<number | 'auto'>;
    /** Apply formatting to cell background or text */
    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",
    ROW = "row"
}
export type ConditionalRuleLabel = {
    field: string;
    operator: string;
    value?: string;
};
//# sourceMappingURL=conditionalFormatting.d.ts.map