import { JSON, SchemaType } from './types';
import { Term } from './Term';
import { Source } from './Source';
import { ImpactAssessment } from './ImpactAssessment';
import { Input } from './Input';
import { Transport } from './Transport';
import { TermTermType } from './Term';
export declare enum InfrastructureOwnershipStatus {
    borrowed = "borrowed",
    owned = "owned",
    rented = "rented"
}
export declare enum InfrastructureMethodClassification {
    '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 Infrastructure.
 * Note: it does not contain the default TermTermType on related Blank Nodes.
 */
export declare const infrastructureTermTermType: {
    term: TermTermType[];
    inputs: {
        term: TermTermType[];
    };
    all: TermTermType[];
};
/**
 * Contains all the fields that make the blank nodes unique.
 */
export declare const infrastructureUniquenessFields: {
    inputs: string[];
    transport: string[];
};
/**
 * A physical item located on a specific [Site](/schema/Site) (e.g., trellises on vineyards) or a physical item held at the [Organisation](/schema/Organisation) level and used across multiple Sites (e.g., a tractor). Infrastructure is depreciated over [Cycles](/schema/Cycle) and then becomes an [Input](/schema/Input) and terms describing the depreciated Infrastructure are available in the [Glossary](/glossary?termType=material). Each item of Infrastructure must be unique, and the fields which determine uniqueness are defined in the <code>[infrastructure](/schema/Site#infrastructure)</code> field of the Site or Organisation.
 */
export declare class Infrastructure extends JSON<SchemaType.Infrastructure> {
    /**
    * A reference to the [Term](/schema/Term) describing the Infrastructure.
    */
    term?: Term;
    /**
    * A name for the Infrastructure, if not described by a Term.
    */
    name?: string;
    /**
    * A short description of the Infrastructure. Use this to specify the machinery brand name or manufacturer name (e.g., "Valtra BM 100" or "John Deere 5090E").
    */
    description?: string;
    /**
    * The date when the Infrastructure was built [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, or YYYY).
    */
    startDate?: string;
    /**
    * The (expected) date when the Infrastructure was (will be) dismantled [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD, YYYY-MM, or YYYY).
    */
    endDate?: string;
    /**
    * The (expected) lifespan of all Inputs required to create the Infrastructure, expressed in decimal years. Equal to <code>[endDate](/schema/Infrastructure#endDate) - [startDate](/schema/Infrastructure#startDate)</code>. If each Input has a different lifespan (e.g., the greenhouse glass lasts for 5 years while the metal frame lasts for 20 years) this should be specified for each [Input](/schema/Input#lifespan).
    */
    defaultLifespan?: number;
    /**
    * The (expected) lifespan, expressed in hours.
    */
    defaultLifespanHours?: number;
    /**
    * The mass of the Infrastructure, expressed in kilograms.
    */
    mass?: number;
    /**
    * The area of the Infrastructure, expressed in hectares.
    */
    area?: number;
    /**
    * The ownership status of the Infrastructure.
    */
    ownershipStatus?: InfrastructureOwnershipStatus;
    /**
    * A classification of the method used to acquire or estimate the <code>[term](/schema/Infrastructure#term)</code> and <code>[value](/schema/Infrastructure#value)</code>. Overrides the <code>[defaultMethodClassification](/schema/Site#defaultMethodClassification)</code> specified in the [Site](/schema/Site). <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?: InfrastructureMethodClassification;
    /**
    * A justification of the <code>[methodClassification](/schema/Infrastructure#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/Infrastructure#methodClassification)</code> is specified.
    */
    methodClassificationDescription?: string;
    /**
    * A reference to the [Source](/schema/Source) of these data, if different from the Source of the Site.
    */
    source?: Source;
    /**
    * A reference to the node containing environmental impact data related to producing this Infrastructure.
    */
    impactAssessment?: ImpactAssessment;
    /**
    * The [Inputs](/schema/Input) required to create the Infrastructure.
    */
    inputs?: Input[];
    /**
    * A list of [Transport](/schema/Transport) stages to bring this Product to the [Cycle](/schema/Cycle).
    */
    transport?: Transport[];
    /**
    * The version of the schema when these data were created.
    */
    schemaVersion?: string;
}
