import { Concept } from "../../api/concept/Concept"; import { Attribute } from "../../api/concept/thing/Attribute"; import { Relation } from "../../api/concept/thing/Relation"; import { Thing } from "../../api/concept/thing/Thing"; 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 { ConceptImpl } from "../../dependencies_internal"; import { Thing as ThingProto, ThingRes, ThingResPart } from "typedb-protocol/proto/concept"; import { TransactionReq } from "typedb-protocol/proto/transaction"; import Annotation = ThingType.Annotation; export declare abstract class ThingImpl extends ConceptImpl implements Thing { private readonly _iid; private readonly _inferred; protected constructor(iid: string, inferred: boolean); equals(concept: Concept): boolean; toString(): string; get iid(): string; abstract get type(): ThingType; get inferred(): boolean; isThing(): boolean; asThing(): Thing; delete(transaction: TypeDBTransaction): Promise; abstract isDeleted(transaction: TypeDBTransaction): Promise; getHas(transaction: TypeDBTransaction): Stream; getHas(transaction: TypeDBTransaction, annotations: Annotation[]): Stream; getHas(transaction: TypeDBTransaction, attributeType: AttributeType): Stream; getHas(transaction: TypeDBTransaction, attributeTypes: AttributeType[]): Stream; getHas(transaction: TypeDBTransaction, attributeTypes: AttributeType[], annotations: Annotation[]): Stream; setHas(transaction: TypeDBTransaction, attribute: Attribute): Promise; unsetHas(transaction: TypeDBTransaction, attribute: Attribute): Promise; getPlaying(transaction: TypeDBTransaction): Stream; getRelations(transaction: TypeDBTransaction, roleTypes?: RoleType[]): Stream; protected execute(transaction: TypeDBTransaction, request: TransactionReq): Promise; protected stream(transaction: TypeDBTransaction, request: TransactionReq): Stream; } export declare namespace ThingImpl { function ofThingProto(proto: ThingProto): Thing; }