import { Attribute } from "./thing/Attribute"; import { Entity } from "./thing/Entity"; import { Relation } from "./thing/Relation"; import { AttributeType } from "./type/AttributeType"; import { EntityType } from "./type/EntityType"; import { RelationType } from "./type/RelationType"; import { ThingType } from "./type/ThingType"; import { Concept } from "./Concept"; import { TypeDBDriverError } from "../../common/errors/TypeDBDriverError"; /** * Provides access for all Concept API methods. */ export interface ConceptManager { /** * Retrieves the root ThingType, “thing”. * * ### Examples * * ```ts * transaction.concepts().getRootThingType() * ``` */ getRootThingType(): Promise; /** * Retrieves the root EntityType, “entity”. * * ### Examples * * ```ts * transaction.concepts().getRootEntityType() * ``` */ getRootEntityType(): Promise; /** * Retrieve the root RelationType, “relation”. * * ### Examples * * ```ts * transaction.concepts().getRootRelationType() * ``` */ getRootRelationType(): Promise; /** * Retrieve the root AttributeType, “attribute”. * * ### Examples * * ```ts * transaction.concepts().getRootAttributeType() * ``` */ getRootAttributeType(): Promise; /** * Retrieves an EntityType by its label. * * ### Examples * * ```ts * transaction.concepts().getEntityType(label) * ``` * * @param label - The label of the EntityType to retrieve */ getEntityType(label: string): Promise; /** * Retrieves a RelationType by its label. * * ### Examples * * ```ts * transaction.concepts().getRelationType(label) * ``` * * @param label - The label of the RelationType to retrieve */ getRelationType(label: string): Promise; /** * Retrieves an AttributeType by its label. * * ### Examples * * ```ts * transaction.concepts().getAttributeType(label) * ``` * * @param label - The label of the AttributeType to retrieve */ getAttributeType(label: string): Promise; /** * Creates a new EntityType if none exists with the given label, otherwise retrieves the existing one. * * ### Examples * * ```ts * transaction.concepts().putEntityType(label) * ``` * * @param label - The label of the EntityType to create or retrieve */ putEntityType(label: string): Promise; /** * Creates a new RelationType if none exists with the given label, otherwise retrieves the existing one. * * ### Examples * * ```ts * transaction.concepts().putRelationType(label) * ``` * * @param label - The label of the RelationType to create or retrieve */ putRelationType(label: string): Promise; /** * Creates a new AttributeType if none exists with the given label, or retrieves the existing one. * or retrieve. :return: * * ### Examples * * ```ts * await transaction.concepts().putAttributeType(label, valueType) * ``` * * @param label - The label of the AttributeType to create or retrieve * @param valueType - The value type of the AttributeType to create */ putAttributeType(label: string, valueType: Concept.ValueType): Promise; /** * Retrieves an Entity by its iid. * * ### Examples * * ```ts * transaction.concepts().getEntity(iid) * ``` * * @param iid - The iid of the Entity to retrieve */ getEntity(iid: string): Promise; /** * Retrieves a Relation by its iid. * * ### Examples * * ```ts * transaction.concepts().getRelation(iid) * ``` * * @param iid - The iid of the Relation to retrieve */ getRelation(iid: string): Promise; /** * Retrieves an Attribute by its iid. * * ### Examples * * ```ts * transaction.concepts().getAttribute(iid) * ``` * * @param iid - The iid of the Attribute to retrieve */ getAttribute(iid: string): Promise; /** * Retrieves a list of all schema exceptions for the current transaction. * * ### Examples * * ```ts * transaction.concepts().getSchemaException() * ``` */ getSchemaExceptions(): Promise; }