/// <reference types="react" />
import { JSONSchema6 } from 'json-schema';
import { DataTypeEditProps } from '../Filters';
export declare const operators: {
    is: {
        getLabel: (_s: JSONSchema6) => string;
    };
    contains: {
        getLabel: (_s: JSONSchema6) => string;
    };
    not_contains: {
        getLabel: (_s: JSONSchema6) => string;
    };
    matches_re: {
        getLabel: (_s: JSONSchema6) => string;
    };
    not_matches_re: {
        getLabel: (_s: JSONSchema6) => string;
    };
};
declare type OperatorSlug = keyof typeof operators;
interface StringFilter extends JSONSchema6 {
    title: OperatorSlug;
    properties?: {
        [k: string]: {
            const?: string;
            pattern?: string;
            description?: string;
            not?: {
                pattern: string;
            };
        };
    };
    anyOf?: Array<{
        properties?: {
            [k: string]: {
                const?: string;
                pattern?: string;
                description?: string;
                not?: {
                    pattern: string;
                };
            };
        };
    }>;
}
export declare const decodeFilter: (filter: StringFilter) => {
    field: string;
    operator: "is" | "contains" | "not_contains" | "matches_re" | "not_matches_re";
    value: string;
} | null;
export declare const createFilter: (field: string, operator: "is" | "contains" | "not_contains" | "matches_re" | "not_matches_re", value: any, schema: JSONSchema6) => JSONSchema6;
export declare const Edit: ({ onUpdate, slim, ...props }: DataTypeEditProps & import("../Textarea").InternalTextareaProps & import("../..").Tooltip & import("../..").StyledSystemProps & import("../Input").InternalInputProps & {
    slim?: boolean | undefined;
}) => JSX.Element;
export {};
