/// <reference types="react" />
import { JSONSchema6 } from 'json-schema';
import { DataTypeEditProps } from '../Filters';
export declare const operators: {
    is: {
        getLabel: (_s: JSONSchema6) => string;
    };
    is_not: {
        getLabel: (_s: JSONSchema6) => string;
    };
    key_is: {
        getLabel: (s: JSONSchema6) => string;
    };
    key_contains: {
        getLabel: (s: JSONSchema6) => string;
    };
    key_not_contains: {
        getLabel: (s: JSONSchema6) => string;
    };
    key_matches_re: {
        getLabel: (s: JSONSchema6) => string;
    };
    key_not_matches_re: {
        getLabel: (s: JSONSchema6) => string;
    };
    value_is: {
        getLabel: (s: JSONSchema6) => string;
    };
    value_contains: {
        getLabel: (s: JSONSchema6) => string;
    };
    value_not_contains: {
        getLabel: (s: JSONSchema6) => string;
    };
    value_matches_re: {
        getLabel: (s: JSONSchema6) => string;
    };
    value_not_matches_re: {
        getLabel: (s: JSONSchema6) => string;
    };
};
declare type OperatorSlug = keyof typeof operators;
interface SubSchema {
    title: string;
    properties: {
        [key: string]: {
            const?: string;
            description?: string;
            pattern?: string;
        };
    };
}
interface ObjectFilter extends JSONSchema6 {
    title: OperatorSlug;
    properties?: {
        [k: string]: {
            contains?: SubSchema;
            not?: {
                contains: SubSchema;
            };
        };
    };
}
export declare const decodeFilter: (filter: ObjectFilter) => {
    field: string;
    operator: "is" | "is_not" | "key_is" | "key_contains" | "key_not_contains" | "key_matches_re" | "key_not_matches_re" | "value_is" | "value_contains" | "value_not_contains" | "value_matches_re" | "value_not_matches_re";
    value: {};
} | null;
export declare const createFilter: (field: string, operator: "is" | "is_not" | "key_is" | "key_contains" | "key_not_contains" | "key_matches_re" | "key_not_matches_re" | "value_is" | "value_contains" | "value_not_contains" | "value_matches_re" | "value_not_matches_re", value: any, schema: JSONSchema6) => JSONSchema6;
export declare const Edit: (props: DataTypeEditProps) => JSX.Element;
export {};
