import { Relation as RelationProto } from "typedb-protocol/proto/concept"; import { Relation } from "../../api/concept/thing/Relation"; import { Thing } from "../../api/concept/thing/Thing"; 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 { ThingImpl } from "../../dependencies_internal"; export declare class RelationImpl extends ThingImpl implements Relation { private readonly _type; constructor(iid: string, inferred: boolean, type: RelationType); protected get className(): string; get type(): RelationType; isRelation(): boolean; asRelation(): Relation; isDeleted(transaction: TypeDBTransaction): Promise; addRolePlayer(transaction: TypeDBTransaction, roleType: RoleType, player: Thing): Promise; removeRolePlayer(transaction: TypeDBTransaction, roleType: RoleType, player: Thing): Promise; getPlayersByRoleType(transaction: TypeDBTransaction, roleTypes?: RoleType[]): Stream; getRolePlayers(transaction: TypeDBTransaction): Promise>; getRelating(transaction: TypeDBTransaction): Stream; private findRole; } export declare namespace RelationImpl { function ofRelationProto(proto: RelationProto): RelationImpl; }