import { JSON, SchemaType } from './types';
import { Term } from './Term';
import { Source } from './Source';
import { TermTermType } from './Term';
export declare enum PropertyStatsDefinition {
    cycles = "cycles",
    modelled = "modelled",
    otherObservations = "otherObservations",
    regions = "regions",
    replications = "replications",
    simulated = "simulated",
    sites = "sites",
    spatial = "spatial"
}
export declare enum PropertyDataState {
    complete = "complete",
    missing = "missing",
    'not required' = "not required",
    'requires validation' = "requires validation",
    unassigned = "unassigned"
}
/**
 * Contains all the TermTermType with override on the Property.
 * Note: it does not contain the default TermTermType on related Blank Nodes.
 */
export declare const propertyTermTermType: {
    term: TermTermType[];
    methodModel: TermTermType[];
    all: TermTermType[];
};
/**
 * Properties allow further information to be added to [Products](./Product), [Inputs](./Input), [Emissions](./Emission), and [Practices](./Practices). Default Properties are also associated with [Terms](./Term) (such as the average [nitrogen content](/term/nitrogenContent) of manure).
 */
export declare class Property extends JSON<SchemaType.Property> {
    /**
    * A reference to the [Term] describing the Property.
    */
    term?: Term;
    /**
    * A description of the Property.
    */
    description?: string;
    /**
    * If the data associated with the Property are in key:value form, the key. E.g. in a list of pesticide active ingredients in a pesticide brand, the id of the key might be 'CAS-1071-83-6' and the value might be 25 percent.
    */
    key?: Term;
    /**
    * The value of the Property.
    */
    value?: number | boolean;
    /**
    * The standard deviation of value.
    */
    sd?: number;
    /**
    * The minimum of value.
    */
    min?: number;
    /**
    * The maximum of value.
    */
    max?: number;
    /**
    * 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?: PropertyStatsDefinition;
    /**
    * The number of observations the descriptive statistics are calculated over.
    */
    observations?: number;
    /**
    * A reference to the [Term] describing the method or model for acquiring or estimating these data.
    */
    methodModel?: Term;
    /**
    * A free text field, describing the method or model used for acquiring or estimating these data.
    */
    methodModelDescription?: string;
    /**
    * A reference to the [Source] of these data.
    */
    source?: Source;
    /**
    * An indicator of the data quality or whether the data are missing.
    */
    dataState?: PropertyDataState;
    /**
    * The version of the schema when these data were 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) and [Cycles](./Cycle).
    */
    aggregated?: (string)[];
    /**
    * A list of versions of the aggregation engine corresponding to each aggregated field.
    */
    aggregatedVersion?: (string)[];
}
