import { RelationType as RelationTypeProto } from "typedb-protocol/proto/concept"; import { Relation } from "../../api/concept/thing/Relation"; import { RelationType } from "../../api/concept/type/RelationType"; import { RoleType } from "../../api/concept/type/RoleType"; import { TypeDBTransaction } from "../../api/connection/TypeDBTransaction"; import { Stream } from "../../common/util/Stream"; import { ThingTypeImpl } from "../../dependencies_internal"; import { Concept } from "../../api/concept/Concept"; import Transitivity = Concept.Transitivity; export declare class RelationTypeImpl extends ThingTypeImpl implements RelationType { constructor(label: string, root: boolean, abstract: boolean); protected get className(): string; isRelationType(): boolean; asRelationType(): RelationType; isDeleted(transaction: TypeDBTransaction): Promise; create(transaction: TypeDBTransaction): Promise; getSupertype(transaction: TypeDBTransaction): Promise; setSupertype(transaction: TypeDBTransaction, superRelationType: RelationType): 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; getRelates(transaction: TypeDBTransaction): Stream; getRelates(transaction: TypeDBTransaction, transitivity: Transitivity): Stream; getRelatesForRoleLabel(transaction: TypeDBTransaction, roleLabel: string): Promise; getRelatesOverridden(transaction: TypeDBTransaction, roleLabel: string): Promise; setRelates(transaction: TypeDBTransaction, roleLabel: string, overriddenLabel?: string): Promise; unsetRelates(transaction: TypeDBTransaction, roleLabel: string): Promise; } export declare namespace RelationTypeImpl { function ofRelationTypeProto(proto: RelationTypeProto): RelationType; }