export declare enum NodeType {
    Actor = "Actor",
    Cycle = "Cycle",
    ImpactAssessment = "ImpactAssessment",
    Organisation = "Organisation",
    Site = "Site",
    Source = "Source",
    Term = "Term"
}
export declare enum SchemaType {
    Actor = "Actor",
    Animal = "Animal",
    Bibliography = "Bibliography",
    Completeness = "Completeness",
    Cycle = "Cycle",
    Emission = "Emission",
    ImpactAssessment = "ImpactAssessment",
    Indicator = "Indicator",
    Infrastructure = "Infrastructure",
    Input = "Input",
    Management = "Management",
    Measurement = "Measurement",
    Organisation = "Organisation",
    Practice = "Practice",
    Product = "Product",
    Property = "Property",
    Site = "Site",
    Source = "Source",
    Term = "Term",
    Transformation = "Transformation",
    Transport = "Transport"
}
export declare const searchableProperties: {
    [type in SchemaType]: string[];
};
export declare const nestedSearchableKeys: string[];
export declare const uniquenessFields: {
    Animal: {
        properties: string[];
        inputs: string[];
        practices: string[];
    };
    Cycle: {
        practices: string[];
        animals: string[];
        inputs: string[];
        products: string[];
        transformations: string[];
        emissions: string[];
    };
    Emission: {
        properties: string[];
        inputs: string[];
        animals: string[];
        transport: string[];
    };
    ImpactAssessment: {
        emissionsResourceUse: string[];
        impacts: string[];
        endpoints: string[];
    };
    Indicator: {
        inputs: string[];
        animals: string[];
    };
    Infrastructure: {
        inputs: string[];
        transport: string[];
    };
    Input: {
        properties: string[];
        transport: string[];
    };
    Management: {
        properties: string[];
    };
    Measurement: {
        properties: string[];
    };
    Organisation: {
        infrastructure: string[];
    };
    Practice: {
        properties: string[];
    };
    Product: {
        properties: string[];
        transport: string[];
    };
    Site: {
        measurements: string[];
        management: string[];
        infrastructure: string[];
    };
    Term: {
        subClassOf: string[];
        defaultProperties: string[];
    };
    Transformation: {
        properties: string[];
        inputs: string[];
        emissions: string[];
        products: string[];
        practices: string[];
    };
    Transport: {
        inputs: string[];
        practices: string[];
        emissions: string[];
    };
};
export declare class JSON<T extends SchemaType> {
    type: T;
    /**
     * Not required, used to generate contextualized unique id.
     */
    id?: string;
}
export interface IContext {
    '@base': string;
    '@vocab': string;
}
export interface JSONLD<T extends NodeType> {
    '@context': string | Array<string | IContext>;
    '@type': T;
    '@id': string;
    name: string;
}
