export const rulePropType: PropTypes.Requireable<NonNullable<string | PropTypes.InferProps<{
    field: PropTypes.Validator<string>;
    regexp: PropTypes.Requireable<string>;
    valueIn: PropTypes.Requireable<(string | null | undefined)[]>;
    valueLengthLessThan: PropTypes.Requireable<number>;
    prop: PropTypes.Requireable<string>;
    complement: PropTypes.Requireable<boolean>;
}> | PropTypes.InferProps<{
    rule: PropTypes.Requireable<string>;
    complement: PropTypes.Requireable<boolean>;
}> | null | undefined>>;
export const operationPropType: PropTypes.Requireable<PropTypes.InferProps<{
    type: PropTypes.Requireable<string>;
    uiSchema: PropTypes.Validator<object>;
}>>;
export const rulesPropType: PropTypes.Requireable<NonNullable<NonNullable<string | PropTypes.InferProps<{
    field: PropTypes.Validator<string>;
    regexp: PropTypes.Requireable<string>;
    valueIn: PropTypes.Requireable<(string | null | undefined)[]>;
    valueLengthLessThan: PropTypes.Requireable<number>;
    prop: PropTypes.Requireable<string>;
    complement: PropTypes.Requireable<boolean>;
}> | PropTypes.InferProps<{
    rule: PropTypes.Requireable<string>;
    complement: PropTypes.Requireable<boolean>;
}> | null | undefined> | (NonNullable<string | PropTypes.InferProps<{
    field: PropTypes.Validator<string>;
    regexp: PropTypes.Requireable<string>;
    valueIn: PropTypes.Requireable<(string | null | undefined)[]>;
    valueLengthLessThan: PropTypes.Requireable<number>;
    prop: PropTypes.Requireable<string>;
    complement: PropTypes.Requireable<boolean>;
}> | PropTypes.InferProps<{
    rule: PropTypes.Requireable<string>;
    complement: PropTypes.Requireable<boolean>;
}> | null | undefined> | null | undefined)[] | null | undefined>>;
/**
 * Transforms uiSchema according to conditional cases. Cases are not mutually exclusive.
 * uiSchema = {"ui:options": {
 *	cases: [
 *		rules: [
 *			{
 *				regexp: The regexp that the field must match.
 *				valueIn: An array that the field must be in.
 *				field: The field that the rule is being checked on (can be a JSON pointer or a field name)
 *			}
 *		],
 *		operations: [ // All the operations are performed if all rules pass.
 *			{
 *				type: "merge" or "wrap" "replace". "merge" deeply merges the conditional uiSchema to the nested uiSchema.
 *				                                   "wrap" sets the nested uiSchema inside conditional uiSchema.
 *				                                   "replace" (default) replaces nested uiSchema with conditional uiSchema.
 *				uiSchema: conditional uiSchema to use.
 *			}
 *		],
 *		else: [<same as operations>] // Operations performed if the rules do not pass.
 *		cache: <boolean> true by default. If you know the cases will cache, set this to false.
 *		       There will be a performance penalty on valueIn rule, as they are not indexed without caching.
 *	]
 * }
 * uiSchema: nested uiSchema
 * }
 */
export default class ConditionalUiSchemaField extends React.Component<any, any, any> {
    static propTypes: {
        uiSchema: PropTypes.Requireable<PropTypes.InferProps<{
            "ui:options": PropTypes.Requireable<PropTypes.InferProps<{
                cases: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
                    rules: PropTypes.Requireable<NonNullable<NonNullable<string | PropTypes.InferProps<{
                        field: PropTypes.Validator<string>;
                        regexp: PropTypes.Requireable<string>;
                        valueIn: PropTypes.Requireable<(string | null | undefined)[]>;
                        valueLengthLessThan: PropTypes.Requireable<number>;
                        prop: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | PropTypes.InferProps<{
                        rule: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | null | undefined> | (NonNullable<string | PropTypes.InferProps<{
                        field: PropTypes.Validator<string>;
                        regexp: PropTypes.Requireable<string>;
                        valueIn: PropTypes.Requireable<(string | null | undefined)[]>;
                        valueLengthLessThan: PropTypes.Requireable<number>;
                        prop: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | PropTypes.InferProps<{
                        rule: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | null | undefined> | null | undefined)[] | null | undefined>>;
                    operations: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
                        type: PropTypes.Requireable<string>;
                        uiSchema: PropTypes.Validator<object>;
                    }> | (PropTypes.InferProps<{
                        type: PropTypes.Requireable<string>;
                        uiSchema: PropTypes.Validator<object>;
                    }> | null | undefined)[] | null | undefined>>;
                }> | (PropTypes.InferProps<{
                    rules: PropTypes.Requireable<NonNullable<NonNullable<string | PropTypes.InferProps<{
                        field: PropTypes.Validator<string>;
                        regexp: PropTypes.Requireable<string>;
                        valueIn: PropTypes.Requireable<(string | null | undefined)[]>;
                        valueLengthLessThan: PropTypes.Requireable<number>;
                        prop: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | PropTypes.InferProps<{
                        rule: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | null | undefined> | (NonNullable<string | PropTypes.InferProps<{
                        field: PropTypes.Validator<string>;
                        regexp: PropTypes.Requireable<string>;
                        valueIn: PropTypes.Requireable<(string | null | undefined)[]>;
                        valueLengthLessThan: PropTypes.Requireable<number>;
                        prop: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | PropTypes.InferProps<{
                        rule: PropTypes.Requireable<string>;
                        complement: PropTypes.Requireable<boolean>;
                    }> | null | undefined> | null | undefined)[] | null | undefined>>;
                    operations: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
                        type: PropTypes.Requireable<string>;
                        uiSchema: PropTypes.Validator<object>;
                    }> | (PropTypes.InferProps<{
                        type: PropTypes.Requireable<string>;
                        uiSchema: PropTypes.Validator<object>;
                    }> | null | undefined)[] | null | undefined>>;
                }> | null | undefined)[] | null | undefined>>;
                cache: PropTypes.Requireable<boolean>;
            }>>;
        }>>;
        schema: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            type: PropTypes.Requireable<string>;
        }>>>;
    };
    static getName(): string;
    constructor(props: any);
    constructor(props: any, context: any);
    cache: {};
    getStateFromProps(props: any): {
        uiSchema: any;
    };
}
export function computeUiSchema(uiSchema: any, operations: any, arrayMerge?: string): any;
import * as PropTypes from "prop-types";
import * as React from "react";
