import { JSON, SchemaType } from './types';
import { Term } from './Term';
import { Input } from './Input';
import { Emission } from './Emission';
import { Product } from './Product';
import { Practice } from './Practice';
import { TermTermType } from './Term';
/**
 * Contains all the TermTermType with override on the Transformation.
 * Note: it does not contain the default TermTermType on related Blank Nodes.
 */
export declare const transformationTermTermType: {
    term: TermTermType[];
    all: TermTermType[];
};
/**
 * The Transformation of one [Product] to a new Product in the same [Cycle]. This is useful for representing processes such as excreta management, grain drying, or crop grading. Multiple Transformations can be chained together using the [previousTransformationTerm](#previousTransformationTerm) field.
 */
export declare class Transformation extends JSON<SchemaType.Transformation> {
    /**
    * A reference to the [Term] describing the process or operation for transforming the Product.
    */
    term?: Term;
    /**
    * A description of process or operation, including information not captured with other fields.
    */
    description?: string;
    /**
    * The start date 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;
    /**
    * The end date if different from the end 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 Transformation. Calculated from [startDate](#startDate) and [endDate](#endDate) if provided.
    */
    transformationDuration?: number;
    /**
    * A reference to the [Term](#term) used to describe the Transformation that came before the current Transformation. This is used to link Transformations, so that the [products](#products) of the prior transformation can become the [inputs](#inputs) of the current Transformation.
    */
    previousTransformationTerm?: Term;
    /**
    * The share of products from the [previous transformation](#previousTransformationTerm) that enter the current transformation.
    */
    previousTransformationShare?: number;
    /**
    * The Inputs into the Transformation.
    */
    inputs?: Input[];
    /**
    * The Emissions created from this Transformation.
    */
    emissions?: Emission[];
    /**
    * The Products created from this Transformation.
    */
    products?: Product[];
    /**
    * The Practices used during this Transformation.
    */
    practices?: Practice[];
    /**
    * 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)[];
}
