import { AttributeType } from "../../api/concept/type/AttributeType"; import { RoleType } from "../../api/concept/type/RoleType"; import { ThingType } from "../../api/concept/type/ThingType"; import { TypeDBTransaction } from "../../api/connection/TypeDBTransaction"; import { Stream } from "../../common/util/Stream"; import { TypeImpl } from "../../dependencies_internal"; import { Concept } from "../../api/concept/Concept"; import { ThingType as ThingTypeProto, ThingTypeRes, ThingTypeResPart, ThingTypeRoot as ThingTypeRootProto } from "typedb-protocol/proto/concept"; import { TransactionReq } from "typedb-protocol/proto/transaction"; import { Thing } from "../../api/concept/thing/Thing"; import Annotation = ThingType.Annotation; import Transitivity = Concept.Transitivity; export declare abstract class ThingTypeImpl extends TypeImpl implements ThingType { protected constructor(name: string, root: boolean, abstract: boolean); protected get className(): string; isThingType(): boolean; asThingType(): ThingType; abstract getSupertype(transaction: TypeDBTransaction): Promise; abstract getSupertypes(transaction: TypeDBTransaction): Stream; abstract getSubtypes(transaction: TypeDBTransaction): Stream; abstract getSubtypes(transaction: TypeDBTransaction, transitivity: Transitivity): Stream; abstract getInstances(transaction: TypeDBTransaction): Stream; abstract getInstances(transaction: TypeDBTransaction, transitivity: Transitivity): Stream; delete(transaction: TypeDBTransaction): Promise; setLabel(transaction: TypeDBTransaction, newLabel: string): Promise; setAbstract(transaction: TypeDBTransaction): Promise; unsetAbstract(transaction: TypeDBTransaction): Promise; getOwns(transaction: TypeDBTransaction): Stream; getOwns(transaction: TypeDBTransaction, valueType: Concept.ValueType): Stream; getOwns(transaction: TypeDBTransaction, annotations: Annotation[]): Stream; getOwns(transaction: TypeDBTransaction, valueType: Concept.ValueType, annotations: Annotation[]): Stream; getOwns(transaction: TypeDBTransaction, transitivity: Transitivity): Stream; getOwns(transaction: TypeDBTransaction, valueType: Concept.ValueType, transitivity: Transitivity): Stream; getOwns(transaction: TypeDBTransaction, annotations: Annotation[], transitivity: Transitivity): Stream; getOwns(transaction: TypeDBTransaction, valueType: Concept.ValueType, annotations: Annotation[], transitivity: Transitivity): Stream; getOwnsOverridden(transaction: TypeDBTransaction, attributeType: AttributeType): Promise; setOwns(transaction: TypeDBTransaction, attributeType: AttributeType): Promise; setOwns(transaction: TypeDBTransaction, attributeType: AttributeType, annotations: Annotation[]): Promise; setOwns(transaction: TypeDBTransaction, attributeType: AttributeType, overriddenType: AttributeType): Promise; setOwns(transaction: TypeDBTransaction, attributeType: AttributeType, overriddenType: AttributeType, annotations: Annotation[]): Promise; unsetOwns(transaction: TypeDBTransaction, attributeType: AttributeType): Promise; getPlays(transaction: TypeDBTransaction): Stream; getPlays(transaction: TypeDBTransaction, transitivity: Transitivity): Stream; getPlaysOverridden(transaction: TypeDBTransaction, role: RoleType): Promise; setPlays(transaction: TypeDBTransaction, role: RoleType): Promise; setPlays(transaction: TypeDBTransaction, role: RoleType, overriddenRole: RoleType): Promise; unsetPlays(transaction: TypeDBTransaction, role: RoleType): Promise; getSyntax(transaction: TypeDBTransaction): Promise; protected execute(transaction: TypeDBTransaction, request: TransactionReq): Promise; protected stream(transaction: TypeDBTransaction, request: TransactionReq): Stream; } export declare namespace ThingTypeImpl { class Root extends ThingTypeImpl { constructor(); isDeleted(transaction: TypeDBTransaction): Promise; getSupertype(transaction: TypeDBTransaction): Promise; getSupertypes(transaction: TypeDBTransaction): Stream; getSubtypes(transaction: TypeDBTransaction): Stream; getSubtypes(transaction: TypeDBTransaction, transitivity: Transitivity): Stream; getInstances(transaction: TypeDBTransaction): Stream; getInstances(transaction: TypeDBTransaction, transitivity: Transitivity): Stream; } namespace Root { function ofThingTypeRootProto(_: ThingTypeRootProto): Root; } function ofThingTypeProto(proto: ThingTypeProto): ThingType; }