/** * A Label holds the uniquely identifying name of a type. * * It consists of an optional 'scope', and a 'name', represented "scope:name". * The scope is used only used to distinguish between role-types of the same name declared in different relation types. */ export declare class Label { private readonly _scope; private readonly _name; /** @ignore */ constructor(scope: string, label: string); /** Returns the (possibly null) scope part of the label. */ get scope(): string; /** Returns the name part of the label. */ get name(): string; /** Returns the string representation of the scoped name. */ get scopedName(): string; /** Printable string */ toString(): string; /** Compares this label to that label. * @param that - The label to compare to. */ equals(that: Label): boolean; } export declare namespace Label { /** Creates an unscoped scoped label from the name * @param name - The type name. */ function of(name: string): Label; /** Creates an unscoped scoped label from the name * @param scope - The scope part of the type name. * @param name - The type name. */ function scoped(scope: string, name: string): Label; }