import { JSON, SchemaType } from './types';
import { Term } from './Term';
import { Source } from './Source';
import { Input } from './Input';
import { Practice } from './Practice';
import { Emission } from './Emission';
import { TermTermType } from './Term';
export declare enum TransportStatsDefinition {
    cycles = "cycles",
    modelled = "modelled",
    'other observations' = "other observations",
    regions = "regions",
    replications = "replications",
    simulated = "simulated",
    spatial = "spatial"
}
export declare enum TransportDistanceStatsDefinition {
    cycles = "cycles",
    modelled = "modelled",
    'other observations' = "other observations",
    regions = "regions",
    replications = "replications",
    simulated = "simulated",
    spatial = "spatial",
    time = "time"
}
export declare enum TransportMethodClassification {
    'consistent external sources' = "consistent external sources",
    'estimated with assumptions' = "estimated with assumptions",
    'expert opinion' = "expert opinion",
    'inconsistent external sources' = "inconsistent external sources",
    modelled = "modelled",
    'non-verified survey data' = "non-verified survey data",
    'physical measurement' = "physical measurement",
    'unsourced assumption' = "unsourced assumption",
    'verified survey data' = "verified survey data"
}
/**
 * Contains all the TermTermType with override on the Transport.
 * Note: it does not contain the default TermTermType on related Blank Nodes.
 */
export declare const transportTermTermType: {
    term: TermTermType[];
    methodModel: TermTermType[];
    practices: {
        term: TermTermType[];
    };
    all: TermTermType[];
};
/**
 * Contains all the fields that make the blank nodes unique.
 */
export declare const transportUniquenessFields: {
    inputs: string[];
    practices: string[];
    emissions: string[];
};
/**
 * The transport of a [Product](/schema/Product), [Input](/schema/Input), or item of [Infrastructure](/schema/Infrastructure) to or from a [Cycle](/schema/Cycle).
 */
export declare class Transport extends JSON<SchemaType.Transport> {
    /**
    * A reference to the [Term](/glossary?termType=transport) describing the Transport mode.
    */
    term?: Term;
    /**
    * A description of the Transport mode.
    */
    description?: string;
    /**
    * The [distance](/schema/Transport#distance) transported times the number of tonnes transported. E.g., if 40 kg of [Urea (kg N)](/term/ureaKgN) are used during the Cycle, the nitrogen content of Urea is [45.5%](/term/ureaKgN#downloads), and the urea was transported 91 km, this field is calculated as <code>40 / 1000 / 45.5% * 91 = 8 tonne kilometers</code>.
    */
    value?: number;
    /**
    * An array of up to 1000 random samples from the posterior distribution of <code>[value](/schema/Transport#value)</code. This should describe the entire distribution of the dataset and not the distribution of the mean.
    */
    distribution?: (number)[];
    /**
    * The standard deviation of <code>[value](/schema/Transport#value)</code>.
    */
    sd?: number;
    /**
    * The minimum of <code>[value](/schema/Transport#value)</code>.
    */
    min?: number;
    /**
    * The maximum of <code>[value](/schema/Transport#value)</code>.
    */
    max?: number;
    /**
    * The 10th percentile of <code>[value](/schema/Transport#value)</code>.
    */
    percentile10th?: number;
    /**
    * The 90th percentile of <code>[value](/schema/Transport#value)</code>.
    */
    percentile90th?: number;
    /**
    * What the descriptive statistics (<code>[sd](/schema/Transport#sd)</code>, <code>[min](/schema/Transport#min)</code>, <code>[max](/schema/Transport#max)</code>, and <code>[value](/schema/Transport#value)</code>) 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?: TransportStatsDefinition;
    /**
    * The number of observations the descriptive statistics are calculated over.
    */
    observations?: (number | null)[];
    /**
    * The distance transported in kilometers.
    */
    distance?: number;
    /**
    * The standard deviation of <code>[distance](/schema/Transport#distance)</code>.
    */
    distanceSd?: number;
    /**
    * The minimum of <code>[distance](/schema/Transport#distance)</code>.
    */
    distanceMin?: number;
    /**
    * The maximum of <code>[distance](/schema/Transport#distance)</code>.
    */
    distanceMax?: number;
    /**
    * What the descriptive statistics (<code>[distanceSd](/schema/Transport#distanceSd)</code>, <code>[distanceMin](/schema/Transport#distanceMin)</code>, <code>[distanceMax](/schema/Transport#distanceMax)</code>, and <code>[distance](/schema/Transport#distance)</code>) are calculated across, or whether they are simulated or the output of a model. <code>spatial</code> refers to descriptive statistics calculated across spatial units (e.g., pixels) within a region or country. <code>time</code> refers to descriptive statistics calculated across units of time (e.g., hours).
    */
    distanceStatsDefinition?: TransportDistanceStatsDefinition;
    /**
    * The number of observations the descriptive statistics for [distance](/schema/Transport#distance) are calculated over.
    */
    distanceObservations?: (number | null)[];
    /**
    * Whether the return leg is included in [value](/schema/Transport#value) and [distance](/schema/Transport#distance).
    */
    returnLegIncluded?: boolean;
    /**
    * A reference to the [Term](/schema/Term) describing the method or model used to acquire or estimate these data.
    */
    methodModel?: Term;
    /**
    * A free text field, describing the method or model used to acquire or estimate these data.
    */
    methodModelDescription?: string;
    /**
    * A classification of the method used to acquire or estimate the <code>[term](/schema/Transport#term)</code> and <code>[value](/schema/Transport#value)</code>. Overrides the <code>[defaultMethodClassification](/schema/Cycle#defaultMethodClassification)</code> specified in the [Cycle](/schema/Cycle). <code>methodClassification</code> should be specified separately for <code>[inputs](/schema/Transport#inputs)</code> (see <code>[Input](/schema/Input#methodClassification)</code>) and <code>[practices](/schema/Transport#practices)</code> (see <code>[Practice](/schema/Practice#methodClassification)</code>). <ul class="is-pl-3 is-list-style-disc">  <li>
      <code>physical measurement</code> means the amount is quantified using weighing,
      volume measurement, metering, chemical methods, or other physical approaches.
    </li>
    <li>
      <code>verified survey data</code> means the data are initially collected through
      surveys; all or a subset of the data are verified using physical methods; and
      erroneous survey data are discarded or corrected.
    </li>
    <li>
      <code>non-verified survey data</code> means the data are collected through
      surveys that have not been subjected to verification.
    </li>
    <li>
      <code>modelled</code> means a previously calibrated model is used to estimate
      this data point from other data points describing this Cycle.
    </li>
    <li>
      <code>estimated with assumptions</code> means a documented assumption is used
      to estimate this data point from other data points describing this Cycle.
    </li>
    <li>
      <code>consistent external sources</code> means the data are taken from external
      datasets referring to different producers/enterprises:
      <ul class="is-pl-4 is-list-style-disc">
        <li>
          Using the same technology (defined as the same
          [System](/glossary?termType=system) or the same key [Practices](/schema/Practice)
          as those specified in the Cycle);
        </li>
        <li>
          At the same date (defined as occurring within the
          [startDate](/schema/Cycle#startDate) and [endDate](/schema/Cycle#endDate) of the Cycle);
          and
        </li>
        <li>
          In the same [region](/schema/Site#region) or [country](/schema/Site#country).
        </li>
      </ul>
      Modelling or assumptions may have also been used to transform these data.
    </li>
    <li>
      <code>inconsistent external sources</code> means the data are taken from external
      datasets referring to different producers/enterprises:
      <ul class="is-pl-4 is-list-style-disc">
        <li>
          Using a different technology (defined as a different
          [System](/glossary?termType=system) or using different key
          [Practices](/schema/Practice) to those specified in the Cycle);
        </li>
        <li>
          At a different date (defined as occurring within the
          [startDate](/schema/Cycle#startDate) and [endDate](/schema/Cycle#endDate) of the Cycle);
          or
        </li>
        <li>
          In a different [region](/schema/Site#region) or [country](/schema/Site#country).
        </li>
      </ul>
      Modelling or assumptions may have also been used to transform these data.
    </li>
    <li>
      <code>expert opinion</code> means the data have been estimated by experts in
      the field.
    </li>
    <li>
      <code>unsourced assumption</code> means the data do not have a clear source
      and/or are based on assumptions only.
    </li>
  </ul>
    */
    methodClassification?: TransportMethodClassification;
    /**
    * A justification of the <code>[methodClassification](/schema/Transport#methodClassification)</code> used. If the data were <code>estimated with assumptions</code> this field should also describe the assumptions. This is a required field if <code>[methodClassification](/schema/Transport#methodClassification)</code> is specified.
    */
    methodClassificationDescription?: string;
    /**
    * A reference to the [Source](/schema/Source) of these data.
    */
    source?: Source;
    /**
    * A list of references to any other [sources](/schema/Source) of these data.
    */
    otherSources?: Source[];
    /**
    * The Inputs into the Transport process (e.g., [diesel](/term/diesel)).
    */
    inputs?: Input[];
    /**
    * The Practices used.
    */
    practices?: Practice[];
    /**
    * The Emissions created during Transport.
    */
    emissions?: Emission[];
    /**
    * 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](/schema/Site) and [Cycles](/schema/Cycle).
    */
    aggregated?: (string)[];
    /**
    * A list of versions of the aggregation engine corresponding to each aggregated field.
    */
    aggregatedVersion?: (string)[];
}
