import * as React from "react";
import * as PropTypes from "prop-types";
import { FieldProps } from "../../types";
/**
 * Watches a specified field which contains a year.
 *
 * Fetches taxa observed in the specified year and adds them to the units in formData.
 *
 * uiSchema = {
 *   "ui:field": "TaxaByYearPopulatorField",
 *   "ui:options": {
 *     "collectionID": "HR.6920",                       // Collection ID to fetch documents from
 *     "unitFilter": {                                  // Filter for units from fetched documents
 *       "field": "observationStatus",                  // Field to filter on
 *       "valueIn": ["MY.observationStatusObservedNoCount", ...] // Allowed values
 *     }
 *   }
 * }
 */
export default class TaxaByYearPopulatorField extends React.Component<FieldProps> {
    static propTypes: {
        uiSchema: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            "ui:options": PropTypes.Requireable<PropTypes.InferProps<{
                collectionID: PropTypes.Requireable<string>;
                unitFilter: PropTypes.Requireable<PropTypes.InferProps<{
                    field: PropTypes.Validator<string>;
                    valueIn: PropTypes.Validator<(string | null | undefined)[]>;
                }>>;
            }>>;
            uiSchema: PropTypes.Requireable<object>;
        }>>>;
        schema: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            type: PropTypes.Requireable<string>;
        }>>>;
        formData: PropTypes.Validator<object>;
    };
    static getName(): string;
    getStateFromProps(): {
        onChange: (formData: any) => Promise<void>;
    };
    componentDidMount(): Promise<void>;
    onChange: (formData: any) => Promise<void>;
    private populateTaxa;
    private fetchTaxaFromNamedPlace;
}
