import { JSON, SchemaType } from './types';
import { Term } from './Term';
import { Property } from './Property';
import { Source } from './Source';
import { TermTermType } from './Term';
export declare enum MeasurementStatsDefinition {
    modelled = "modelled",
    otherObservations = "otherObservations",
    regions = "regions",
    replications = "replications",
    simulated = "simulated",
    sites = "sites",
    spatial = "spatial",
    time = "time"
}
/**
 * Contains all the TermTermType with override on the Measurement.
 * Note: it does not contain the default TermTermType on related Blank Nodes.
 */
export declare const measurementTermTermType: {
    term: TermTermType[];
    methodModel: TermTermType[];
    all: TermTermType[];
};
/**
 * A Measurement on a [Site]. For example, the pH of soil on 3 January 2020. The method used to take the Measurement often changes the results, and is ideally described.
 */
export declare class Measurement extends JSON<SchemaType.Measurement> {
    /**
    * A reference to the [Term] describing the Measurement.
    */
    term?: Term;
    /**
    * A short description of the Measurement.
    */
    description?: string;
    /**
    * The quantity of the Measurement. If an average, it should always be the mean. Can be a single number (array of length one) or an array of numbers with associated [dates](#dates) (e.g. representing multiple Measurements over time).
    */
    value?: (number | null)[];
    /**
    * The standard deviation of value.
    */
    sd?: (number | null)[];
    /**
    * The minimum of value.
    */
    min?: (number | null)[];
    /**
    * The maximum of value.
    */
    max?: (number | null)[];
    /**
    * What the descriptive statistics (sd, min, max, and value) are calculated across, or whether they are simulated or the output of a model. Spatial is descriptive statistics calculated across spatial units (e.g., pixels) within a region or country.
    */
    statsDefinition?: MeasurementStatsDefinition;
    /**
    * The number of observations the descriptive statistics are calculated over.
    */
    observations?: (number | null)[];
    /**
    * A corresponding array to [value](#value), representing the dates (and times) of the Measurements in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, YYYY, --MM-DD, --MM, or YYYY-MM-DDTHH:mm:ss).
    */
    dates?: (string)[];
    /**
    * For period Measurements, the start date of the Measurement (if different from the [start date of the Site](./Site#startDate)) in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, or YYYY).
    */
    startDate?: string;
    /**
    * For period Measurements, the end date of the Measurement (if different from the [end date of the Site](./Site#endDate)) in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, or YYYY).
    */
    endDate?: string;
    /**
    * The duration of the Measurement in days.
    */
    measurementDuration?: number;
    /**
    * For soil Measurements, the upper (shallower) depth of the Measurement interval in centimeters, using positive numbers.
    */
    depthUpper?: number;
    /**
    * For soil Measurements, the lower (deeper) depth of the Measurement interval in centimeters.
    */
    depthLower?: number;
    /**
    * The latitude of the Measurement if different from the centroid of the Site (-90 to 90, WGS84 datum).
    */
    latitude?: number;
    /**
    * The longitude of the Measurement if different from the centroid of the Site (-90 to 90, WGS84 datum).
    */
    longitude?: number;
    /**
    * A list of [Properties](./Property) of the Measurement, which would override any default properties specified in [term](#term).
    */
    properties?: Property[];
    /**
    * A reference to the [Term] describing the method or model used to acquire the measurement.
    */
    methodModel?: Term;
    /**
    * A free text field describing the method or model used to acquire the Measurement.
    */
    methodModelDescription?: string;
    /**
    * A reference to the [Source] of these data, if different from the [defaultSource](Site#defaultSource) of the [Site].
    */
    source?: Source;
    /**
    * Version of the schema when the data was created.
    */
    schemaVersion?: string;
    /**
    * A list of fields that have been added to the original dataset.
    */
    added?: (string)[];
    /**
    * A list of versions of the model used to add these fields.
    */
    addedVersion?: (string)[];
    /**
    * A list of fields that have been updated on the original dataset.
    */
    updated?: (string)[];
    /**
    * A list of versions of the model used to update these fields.
    */
    updatedVersion?: (string)[];
    /**
    * A list of fields that have been 'aggregated' using data from multiple [Sites](./Site).
    */
    aggregated?: (string)[];
    /**
    * A list of versions of the aggregation engine corresponding to each aggregated field.
    */
    aggregatedVersion?: (string)[];
}
