import { FilterSpecType, SimplifiedPColumnSpec } from '@platforma-sdk/model';
export declare const filterUiMetadata: {
    equal: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "equal";
            };
            x: {
                label: string;
                fieldType: "number";
                defaultValue: () => number;
            };
        };
        supportedFor: typeof isNumericValueType;
    };
    lessThan: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "lessThan";
            };
            x: {
                label: string;
                fieldType: "number";
                defaultValue: () => number;
            };
        };
        supportedFor: typeof isNumericValueType;
    };
    greaterThan: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "greaterThan";
            };
            x: {
                label: string;
                fieldType: "number";
                defaultValue: () => number;
            };
        };
        supportedFor: typeof isNumericValueType;
    };
    lessThanOrEqual: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "lessThanOrEqual";
            };
            x: {
                label: string;
                fieldType: "number";
                defaultValue: () => number;
            };
        };
        supportedFor: typeof isNumericValueType;
    };
    greaterThanOrEqual: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "greaterThanOrEqual";
            };
            x: {
                label: string;
                fieldType: "number";
                defaultValue: () => number;
            };
        };
        supportedFor: typeof isNumericValueType;
    };
    equalToColumn: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "equalToColumn";
            };
            rhs: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
        };
        supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
    };
    lessThanColumn: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "lessThanColumn";
            };
            rhs: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            minDiff: {
                label: string;
                fieldType: "number?";
                defaultValue: () => undefined;
            };
        };
        supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
    };
    greaterThanColumn: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "greaterThanColumn";
            };
            rhs: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            minDiff: {
                label: string;
                fieldType: "number?";
                defaultValue: () => undefined;
            };
        };
        supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
    };
    lessThanColumnOrEqual: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "lessThanColumnOrEqual";
            };
            rhs: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            minDiff: {
                label: string;
                fieldType: "number?";
                defaultValue: () => undefined;
            };
        };
        supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
    };
    greaterThanColumnOrEqual: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "greaterThanColumnOrEqual";
            };
            rhs: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            minDiff: {
                label: string;
                fieldType: "number?";
                defaultValue: () => undefined;
            };
        };
        supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
    };
    topN: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "topN";
            };
            n: {
                label: string;
                fieldType: "number";
                defaultValue: () => number;
            };
        };
        supportedFor: typeof isNumericValueType;
    };
    bottomN: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "bottomN";
            };
            n: {
                label: string;
                fieldType: "number";
                defaultValue: () => number;
            };
        };
        supportedFor: typeof isNumericValueType;
    };
    patternContainSubsequence: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "patternContainSubsequence";
            };
            value: {
                label: string;
                fieldType: "string";
                defaultValue: () => string;
            };
        };
        supportedFor: typeof isStringValueType;
    };
    patternNotContainSubsequence: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "patternNotContainSubsequence";
            };
            value: {
                label: string;
                fieldType: "string";
                defaultValue: () => string;
            };
        };
        supportedFor: typeof isStringValueType;
    };
    patternEquals: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "patternEquals";
            };
            value: {
                label: string;
                fieldType: "string";
                defaultValue: () => string;
            };
        };
        supportedFor: typeof isStringValueType;
    };
    patternNotEquals: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "patternNotEquals";
            };
            value: {
                label: string;
                fieldType: "string";
                defaultValue: () => string;
            };
        };
        supportedFor: typeof isStringValueType;
    };
    isNA: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "isNA";
            };
        };
        supportedFor: () => true;
    };
    isNotNA: {
        label: string;
        form: {
            column: {
                label: string;
                fieldType: "SUniversalPColumnId";
                defaultValue: () => undefined;
            };
            type: {
                label: string;
                fieldType: "FilterType";
                defaultValue: () => "isNotNA";
            };
        };
        supportedFor: () => true;
    };
    or: {
        label: string;
        form: {
            type: {
                fieldType: "FilterType";
                label: string;
                defaultValue: () => "or";
            };
            filters: {
                fieldType: "unknown[]";
                label: string;
                defaultValue: () => never[];
            };
        };
        supportedFor: () => false;
    };
    and: {
        label: string;
        form: {
            type: {
                fieldType: "FilterType";
                label: string;
                defaultValue: () => "and";
            };
            filters: {
                fieldType: "unknown[]";
                label: string;
                defaultValue: () => never[];
            };
        };
        supportedFor: () => false;
    };
    not: {
        label: string;
        form: {
            type: {
                fieldType: "FilterType";
                label: string;
                defaultValue: () => "not";
            };
            filter: {
                fieldType: "form";
                label: string;
                defaultValue: () => undefined;
            };
        };
        supportedFor: () => false;
    };
};
export declare function getFilterUiTypeOptions(columnSpec?: SimplifiedPColumnSpec): {
    label: string;
    value: string;
}[];
export declare function getFilterUiMetadata(type: FilterSpecType): {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "equal";
        };
        x: {
            label: string;
            fieldType: "number";
            defaultValue: () => number;
        };
    };
    supportedFor: typeof isNumericValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "lessThan";
        };
        x: {
            label: string;
            fieldType: "number";
            defaultValue: () => number;
        };
    };
    supportedFor: typeof isNumericValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "greaterThan";
        };
        x: {
            label: string;
            fieldType: "number";
            defaultValue: () => number;
        };
    };
    supportedFor: typeof isNumericValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "lessThanOrEqual";
        };
        x: {
            label: string;
            fieldType: "number";
            defaultValue: () => number;
        };
    };
    supportedFor: typeof isNumericValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "greaterThanOrEqual";
        };
        x: {
            label: string;
            fieldType: "number";
            defaultValue: () => number;
        };
    };
    supportedFor: typeof isNumericValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "equalToColumn";
        };
        rhs: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
    };
    supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "lessThanColumn";
        };
        rhs: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        minDiff: {
            label: string;
            fieldType: "number?";
            defaultValue: () => undefined;
        };
    };
    supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "greaterThanColumn";
        };
        rhs: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        minDiff: {
            label: string;
            fieldType: "number?";
            defaultValue: () => undefined;
        };
    };
    supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "lessThanColumnOrEqual";
        };
        rhs: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        minDiff: {
            label: string;
            fieldType: "number?";
            defaultValue: () => undefined;
        };
    };
    supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "greaterThanColumnOrEqual";
        };
        rhs: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        minDiff: {
            label: string;
            fieldType: "number?";
            defaultValue: () => undefined;
        };
    };
    supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec) => boolean;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "topN";
        };
        n: {
            label: string;
            fieldType: "number";
            defaultValue: () => number;
        };
    };
    supportedFor: typeof isNumericValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "bottomN";
        };
        n: {
            label: string;
            fieldType: "number";
            defaultValue: () => number;
        };
    };
    supportedFor: typeof isNumericValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "patternContainSubsequence";
        };
        value: {
            label: string;
            fieldType: "string";
            defaultValue: () => string;
        };
    };
    supportedFor: typeof isStringValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "patternNotContainSubsequence";
        };
        value: {
            label: string;
            fieldType: "string";
            defaultValue: () => string;
        };
    };
    supportedFor: typeof isStringValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "patternEquals";
        };
        value: {
            label: string;
            fieldType: "string";
            defaultValue: () => string;
        };
    };
    supportedFor: typeof isStringValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "patternNotEquals";
        };
        value: {
            label: string;
            fieldType: "string";
            defaultValue: () => string;
        };
    };
    supportedFor: typeof isStringValueType;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "isNA";
        };
    };
    supportedFor: () => true;
} | {
    label: string;
    form: {
        column: {
            label: string;
            fieldType: "SUniversalPColumnId";
            defaultValue: () => undefined;
        };
        type: {
            label: string;
            fieldType: "FilterType";
            defaultValue: () => "isNotNA";
        };
    };
    supportedFor: () => true;
} | {
    label: string;
    form: {
        type: {
            fieldType: "FilterType";
            label: string;
            defaultValue: () => "or";
        };
        filters: {
            fieldType: "unknown[]";
            label: string;
            defaultValue: () => never[];
        };
    };
    supportedFor: () => false;
} | {
    label: string;
    form: {
        type: {
            fieldType: "FilterType";
            label: string;
            defaultValue: () => "and";
        };
        filters: {
            fieldType: "unknown[]";
            label: string;
            defaultValue: () => never[];
        };
    };
    supportedFor: () => false;
} | {
    label: string;
    form: {
        type: {
            fieldType: "FilterType";
            label: string;
            defaultValue: () => "not";
        };
        filter: {
            fieldType: "form";
            label: string;
            defaultValue: () => undefined;
        };
    };
    supportedFor: () => false;
};
declare function isNumericValueType(spec: SimplifiedPColumnSpec): boolean;
declare function isStringValueType(spec: SimplifiedPColumnSpec): boolean;
export {};
