/**
 * Field with fields, which are shown according to recursive scope.
 * uiSchema = {"ui:options": {
 * additionalsGroupingPath: path to the field scope that defines groups
 * additionalsGroupsTranslator: one of scopeFieldsSettings translator
 * additionalsPersistenceKey: instances with same persistence id use the same additional fields
 * additionalsPersistenceField: form data property value for more fine grained persistence behaviour
 * uiSchema: <uiSchema> (ui schema for inner schema)
 * fields: [<string>] (fields that are always shown)
 * fieldScopes: {
 *  fieldName: {
 *    fieldValue: {
 *      fields: [<string>] (fields that are shown if fieldName[fieldValue} == true)
 *      additionalFields: [<string>] (if grouping is enabled, additional fields are shown only if selected from the list)
 *      excludeFields: [<string>] (exclude fields from showing)
 *      excludeFields: [<string>] (fields that are shown by default)
 *      refs: [<string>] (root definitions that are merged recursively to this fieldScope)
 *      uiSchema: <uiSchema> (merged recursively to inner uiSchema)
 *      uiSchemaMergeType: See documentation for ConditionalUiSchemaField
 *      fieldScopes: {fieldName: <fieldScope>, fieldName2 ...}
 *    },
 *    fieldValue2, ...
 *  }
 * },
 * definitions: {
 *   defName: <fieldScope>,
 *   defname2: ...
 * }
 * }
 *
 * Field scope values accept asterisk (*) and plus (+) as field scope selector.
 */
export default class ScopeField extends React.Component<any, any, any> {
    static contextType: React.Context<import("../../ReactContext").ContextProps>;
    static propTypes: {
        uiSchema: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            "ui:options": PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                includeAdditionalFieldsChooserButton: PropTypes.Requireable<boolean>;
                additionalsGroupingPath: PropTypes.Requireable<string>;
                additionalsGroupsTranslator: PropTypes.Requireable<string>;
                additionalsPersistenceKey: PropTypes.Requireable<string>;
                additionalsPersistenceField: PropTypes.Requireable<string>;
                fieldScopes: PropTypes.Requireable<object>;
                fields: PropTypes.Requireable<(string | null | undefined)[]>;
                definitions: PropTypes.Requireable<object>;
                uiSchema: PropTypes.Requireable<object>;
            }>>>;
        }>>>;
        schema: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            type: PropTypes.Requireable<string>;
        }>>>;
        formData: PropTypes.Validator<object>;
    };
    constructor(props: any);
    state: {
        includeAdditionalFieldsChooserButton: boolean;
    };
    UNSAFE_componentWillReceiveProps(props: any): void;
    componentDidMount(): void;
    mounted: boolean | undefined;
    componentWillUnmount(): void;
    render(): JSX.Element;
    componentDidUpdate(prevProps: any, prevState: any): void;
    getAdditionalPersistenceValue: (props: any, includeUndefined?: boolean) => any[];
    getStateFromProps(props: any): {
        includeAdditionalFieldsChooserButton: boolean;
    };
    _globals: any;
    getSchemasAndAdditionals: (props: any, state: any) => {
        schema: any;
        uiSchema: import("../../types").UiSchema<any>;
        additionalFields: any;
        defaultFields: any;
        fieldsToShow: {};
    };
    onToggleAdditionals: () => void;
    renderAdditionalsButtons: () => any;
    onSelect: () => void;
    preventCloseDropdown: boolean | undefined;
    onToggle: (isOpen: any) => void;
    renderFieldsDropdown(additionalProperties: any): JSX.Element;
    renderFieldsModal: (additionalProperties: any) => JSX.Element;
    modal: JSX.Element | undefined;
    renderFieldsButton: (bsRole: any) => JSX.Element;
    renderGlyphFields: () => any;
    propertyIsIncluded: (property: any) => boolean;
    toggleAdditionalProperty: (fields: any) => void;
    additionalPropertiesToList: (properties: any, ElemType: any) => JSX.Element[];
    propertyTogglers: {} | undefined;
    translateAdditionalsGroups: (props: any) => void;
}
import * as React from "react";
import * as PropTypes from "prop-types";
