import { JSON, SchemaType } from './types';
import { Term } from './Term';
import { Property } from './Property';
import { Source } from './Source';
import { TermTermType } from './Term';
export declare enum EmissionStatsDefinition {
    cycles = "cycles",
    modelled = "modelled",
    otherObservations = "otherObservations",
    regions = "regions",
    replications = "replications",
    simulated = "simulated",
    sites = "sites",
    spatial = "spatial"
}
export declare enum EmissionMethodTier {
    background = "background",
    measured = "measured",
    'tier 1' = "tier 1",
    'tier 2' = "tier 2",
    'tier 3' = "tier 3"
}
/**
 * Contains all the TermTermType with override on the Emission.
 * Note: it does not contain the default TermTermType on related Blank Nodes.
 */
export declare const emissionTermTermType: {
    term: TermTermType[];
    inputs: TermTermType[];
    methodModel: TermTermType[];
    all: TermTermType[];
};
/**
 * A chemical flow into water, soil, or air.
 */
export declare class Emission extends JSON<SchemaType.Emission> {
    /**
    * A reference to the [Term] describing the Emission.
    */
    term?: Term;
    /**
    * A description of the Emission.
    */
    description?: string;
    /**
    * The quantity of the Emission. 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?: EmissionStatsDefinition;
    /**
    * The number of observations the descriptive statistics are calculated over, if different from the [numberOfCycles](./Cycle#numberOfCycles) specified in [Cycle].
    */
    observations?: (number | null)[];
    /**
    * A corresponding array to [value](#value), representing the dates of the Emissions in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, YYYY, --MM-DD, or --MM).
    */
    dates?: (string)[];
    /**
    * For Emissions over periods, the start date of the Emission (if different from the start date of the [Cycle]) in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, or YYYY).
    */
    startDate?: string;
    /**
    * For Emissions over periods, the end date of the Emission (if different from the start date of the [Cycle]) in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, or YYYY).
    */
    endDate?: string;
    /**
    * The duration of the Emissions in days, particularly used for measured Emissions.
    */
    emissionDuration?: number;
    /**
    * For soil Emissions, the depth at which the Emissions was recorded in centimeters.
    */
    depth?: number;
    /**
    * A list of [Properties](./Property) of the Emission, which would override any default properties specified in [term](#term).
    */
    properties?: Property[];
    /**
    * A reference to the [Term] describing the method for measuring the Emission or the model used to calculate it.
    */
    methodModel?: Term;
    /**
    * A free text field, describing the method for measuring the Emission or the model used to calculate it.
    */
    methodModelDescription?: string;
    /**
    * Background data are drawn from existing datasets such as [ecoinvent](https://www.ecoinvent.org/) and not modelled specifically here. Measured data are direct measurements of an Emission. Tier 1 methods use global parameters without any regional specificity (e.g. a global factor for the N2O emissions from synthetic fertilizer). Tier 2 methods are models with geographically specific parameters. Tier 3 methods are geographically specific models with time-steps.
    */
    methodTier?: EmissionMethodTier;
    /**
    * For background Emissions, the [Terms](./Term) describing the [Inputs](./Input) they are associated with. This is a required field for background Emissions.
    */
    inputs?: Term[];
    /**
    * For Emissions created during a [Transformation], the [Term] describing the [Transformation].
    */
    transformation?: Term;
    /**
    * A reference to the [Source] of these data, if different from the [defaultSource](Cycle#defaultSource) of the [Cycle].
    */
    source?: Source;
    /**
    * 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 [Cycles](./Cycle).
    */
    aggregated?: (string)[];
    /**
    * A list of versions of the aggregation engine corresponding to each aggregated field.
    */
    aggregatedVersion?: (string)[];
    /**
    * Indicates if this emission has been marked as deleted from the original dataset.
    */
    deleted?: boolean;
}
