import { Cardinality } from "../../../models/v2/ontologies/class-definition";
import { CreateOntology } from "../../../models/v2/ontologies/create/create-ontology";
import { CreateResourceClass } from "../../../models/v2/ontologies/create/create-resource-class";
import { CreateResourceProperty } from "../../../models/v2/ontologies/create/create-resource-property";
import { DeleteOntology } from "../../../models/v2/ontologies/delete/delete-ontology";
import { DeleteOntologyResponse } from "../../../models/v2/ontologies/delete/delete-ontology-response";
import { DeleteResourceClass } from "../../../models/v2/ontologies/delete/delete-resource-class";
import { DeleteResourceClassComment } from "../../../models/v2/ontologies/delete/delete-resource-class-comment";
import { DeleteResourceProperty } from "../../../models/v2/ontologies/delete/delete-resource-property";
import { DeleteResourcePropertyComment } from "../../../models/v2/ontologies/delete/delete-resource-property-comment";
import { OntologiesMetadata, OntologyMetadata } from "../../../models/v2/ontologies/ontology-metadata";
import { CanDoResponse } from "../../../models/v2/ontologies/read/can-do-response";
import { ReadOntology } from "../../../models/v2/ontologies/read/read-ontology";
import { ResourceClassDefinitionWithAllLanguages } from "../../../models/v2/ontologies/resource-class-definition";
import { ResourcePropertyDefinitionWithAllLanguages } from "../../../models/v2/ontologies/resource-property-definition";
import { UpdateOntology } from "../../../models/v2/ontologies/update/update-ontology";
import { UpdateOntologyMetadata } from "../../../models/v2/ontologies/update/update-ontology-metadata";
import { UpdateResourceClassCardinality } from "../../../models/v2/ontologies/update/update-resource-class-cardinality";
import { UpdateResourceClassComment } from "../../../models/v2/ontologies/update/update-resource-class-comment";
import { UpdateResourceClassLabel } from "../../../models/v2/ontologies/update/update-resource-class-label";
import { UpdateResourcePropertyComment } from "../../../models/v2/ontologies/update/update-resource-property-comment";
import { UpdateResourcePropertyGuiElement } from "../../../models/v2/ontologies/update/update-resource-property-gui-element";
import { UpdateResourcePropertyLabel } from "../../../models/v2/ontologies/update/update-resource-property-label";
import { Endpoint } from "../../endpoint";
/**
 * Handles requests to the ontologies route of the Knora API.
 *
 * @category Endpoint V2
 */
export declare class OntologiesEndpointV2 extends Endpoint {
    /**
     * Requests metadata about all ontologies from Knora.
     */
    getOntologiesMetadata(): import("rxjs").Observable<OntologiesMetadata>;
    /**
     * Requests an ontology from Knora.
     *
     * @param ontologyIri the IRI of the ontology to be requested.
     * @param allLanguages gets labels and comments in all languages, if  set to true.
     */
    getOntology(ontologyIri: string, allLanguages?: boolean): import("rxjs").Observable<ReadOntology>;
    /**
     * Requests metadata about all ontologies from a specific project.
     *
     * @param projectIri the IRI of the project.
     */
    getOntologiesByProjectIri(projectIri: string): import("rxjs").Observable<OntologiesMetadata>;
    /**
     * Creates a new ontology.
     *
     * @param ontology The ontology to be created
     */
    createOntology(ontology: CreateOntology): import("rxjs").Observable<OntologyMetadata>;
    /**
     * Checks whether an existing ontology can be deleted.
     *
     * @param ontologyIri the Iri of the ontology to be checked.
     */
    canDeleteOntology(ontologyIri: string): import("rxjs").Observable<CanDoResponse>;
    /**
     * Deletes an ontology.
     *
     * @param ontology the ontology to be deleted.
     */
    deleteOntology(ontology: DeleteOntology): import("rxjs").Observable<DeleteOntologyResponse>;
    /**
     * Updates the metadata of an ontology.
     *
     * @param ontologyMetadata The ontology metadata to be updated
     */
    updateOntology(ontologyMetadata: UpdateOntologyMetadata): import("rxjs").Observable<OntologyMetadata>;
    /**
     * Removes the comment from the metadata of an ontology.
     *
     * @param ontologyMetadata The ontology metadata to be updated
     */
    deleteOntologyComment(ontologyMetadata: UpdateOntologyMetadata): import("rxjs").Observable<OntologyMetadata>;
    /**
     * The PUT request for updating the metadata of an ontology.
     *
     * @param ontologyMetadata The ontology metadata to be updated
     */
    private updateOntologyMetadata;
    /**
     * Creates a resource class without cardinalities.
     *
     * @param  resourceClass The resource class to be created.
     */
    createResourceClass(resourceClass: UpdateOntology<CreateResourceClass>): import("rxjs").Observable<ResourceClassDefinitionWithAllLanguages>;
    /**
     * Updates a resource class's label or comment.
     *
     * @param updateResourceClass the new label or comment.
     */
    updateResourceClass(updateResourceClass: UpdateOntology<UpdateResourceClassLabel | UpdateResourceClassComment>): import("rxjs").Observable<ResourceClassDefinitionWithAllLanguages>;
    /**
     * Updates a property's label or comment.
     *
     * @param updateProperty the new label or comment.
     */
    updateResourceProperty(updateProperty: UpdateOntology<UpdateResourcePropertyLabel | UpdateResourcePropertyComment>): import("rxjs").Observable<ResourcePropertyDefinitionWithAllLanguages>;
    /**
     * Checks whether an existing resource class can be deleted.
     *
     * @param resourceClassIri the iri of the resource class to be checked.
     */
    canDeleteResourceClass(resourceClassIri: string): import("rxjs").Observable<CanDoResponse>;
    /**
     * Deletes a resource class.
     *
     * @param deleteResourceClass with class IRI.
     */
    deleteResourceClass(deleteResourceClass: DeleteResourceClass): import("rxjs").Observable<OntologyMetadata>;
    /**
     * Deletes a resource class's comment
     *
     * @param deleteResourceClassComment with class IRI and lastModificationDate
     */
    deleteResourceClassComment(deleteResourceClassComment: DeleteResourceClassComment): import("rxjs").Observable<ResourceClassDefinitionWithAllLanguages>;
    /**
     * Creates a resource property.
     *
     * @param  resourceProperties the resource property to be created.
     */
    createResourceProperty(resourceProperties: UpdateOntology<CreateResourceProperty>): import("rxjs").Observable<ResourcePropertyDefinitionWithAllLanguages>;
    /**
     * Updates the GUI element and/or the GUI attributes of a property
     * @param replaceGuiElement
     */
    replaceGuiElementOfProperty(replaceGuiElement: UpdateOntology<UpdateResourcePropertyGuiElement>): import("rxjs").Observable<ResourcePropertyDefinitionWithAllLanguages>;
    /**
     * Checks whether an existing property can be deleted.
     *
     * @param propertyIri the iri of the property to be checked.
     */
    canDeleteResourceProperty(propertyIri: string): import("rxjs").Observable<CanDoResponse>;
    /**
     * Deletes a resource property.
     *
     * @param  deleteResourceProperty with property IRI.
     */
    deleteResourceProperty(deleteResourceProperty: DeleteResourceProperty): import("rxjs").Observable<OntologyMetadata>;
    /**
     * Deletes a resource property's comment
     *
     * @param deleteResourcePropertyComment with property IRI and lastModificationDate
     */
    deleteResourcePropertyComment(deleteResourcePropertyComment: DeleteResourcePropertyComment): import("rxjs").Observable<ResourcePropertyDefinitionWithAllLanguages>;
    /**
     * Adds cardinalities for properties to a resource class.
     *
     * @param addCardinalityToResourceClass the cardinalities to be added.
     */
    addCardinalityToResourceClass(addCardinalityToResourceClass: UpdateOntology<UpdateResourceClassCardinality>): import("rxjs").Observable<ResourceClassDefinitionWithAllLanguages>;
    /**
     * Checks whether existing cardinalities can be replaced for a given resource class.
     *
     * @deprecated use canReplaceCardinalityOfResourceClassWith instead
     * @param resourceClassIri the iri of the resource class to be checked.
     */
    canReplaceCardinalityOfResourceClass(resourceClassIri: string): import("rxjs").Observable<CanDoResponse>;
    /**
     * Checks whether existing cardinalities can be replaced for a given resource class, propertyIri, and desired cardinality
     *
     * @param resourceClassIri the iri of the resource class to be checked.
     * @param propertyIri the iri of the property to be checked.
     * @param desiredCardinality the desired cardinality.
     */
    canReplaceCardinalityOfResourceClassWith(resourceClassIri: string, propertyIri: string, desiredCardinality: Cardinality): import("rxjs").Observable<CanDoResponse>;
    /**
     * Replaces cardinalities for properties to a resource class.
     *
     * @param replaceCardinalityOfResourceClass the cardinalities to be added.
     */
    replaceCardinalityOfResourceClass(replaceCardinalityOfResourceClass: UpdateOntology<UpdateResourceClassCardinality>): import("rxjs").Observable<ResourceClassDefinitionWithAllLanguages>;
    /**
     * Checks wether a cardinality can be removed from a class even in presence of resources of this class.
     * A cardinality can be removed in the case that the property is not used in any resources.
     * For now, DSP-API allows only one cardinality at a time to delete.
     * @param deleteCardinalitiesFromClass the cardinalities that need to be checked.
     */
    canDeleteCardinalityFromResourceClass(deleteCardinalityFromClass: UpdateOntology<UpdateResourceClassCardinality>): import("rxjs").Observable<CanDoResponse>;
    /**
     * Deletes cardinalities from a class even in presence of resources of this class.
     * A cardinality can be removed in the case that the property is not used in any resources.
     * For now, DSP-API allows only one cardinality at a time to be deleted.
     * @param deleteCardinalitiesFromClass the cardinalities that need to be checked.
     */
    deleteCardinalityFromResourceClass(deleteCardinalityFromClass: UpdateOntology<UpdateResourceClassCardinality>): import("rxjs").Observable<ResourceClassDefinitionWithAllLanguages>;
    /**
     * Updates gui order of cardinalities
     * @param replaceGuiOrder
     */
    replaceGuiOrderOfCardinalities(replaceGuiOrder: UpdateOntology<UpdateResourceClassCardinality>): import("rxjs").Observable<ResourceClassDefinitionWithAllLanguages>;
    private _badCardinalityRequest;
}
