import { GlossaristModel } from './base.js'; /** * Wire shape for ConceptRef. * * Four mutually exclusive forms: * 1. {source, id} — resolved reference to a concept * 2. {text} — text-only inline form (label) * 3. {text, external} — external concept (defined elsewhere) * 4. {ellipsis} — ellipsis marker ("further members exist") * * `external` is mutually exclusive with source/id (external concepts * don't have a machine-readable handle in this dataset). * `ellipsis` is mutually exclusive with everything else. */ export interface ConceptRefJson { source?: string | null; id?: string | null; text?: string | null; external?: boolean; ellipsis?: boolean; } /** * ConceptRef — a reference to a concept. * * Identity: for resolved refs, `${source}|${id}`. For external refs, * `ext:${text}`. For ellipsis, `ellipsis` (a single sentinel identity * shared by all ellipsis members within the same hyperedge). For * text-only, `text:${text}`. */ export declare class ConceptRef extends GlossaristModel { readonly source: string | null; readonly id: string | null; readonly text: string | null; readonly external: boolean; readonly ellipsis: boolean; constructor(data?: ConceptRefJson); get isResolved(): boolean; get isExternal(): boolean; get isEllipsis(): boolean; get isTextOnly(): boolean; toString(): string; toJSON(): ConceptRefJson; identity(): string; static fromJSON(data: ConceptRefJson): ConceptRef; /** Convenience constructor for the common `(source, id)` form. */ static fromPair(source: string, id: string): ConceptRef; /** Convenience constructor for the external form. */ static external(text: string): ConceptRef; /** Convenience constructor for the ellipsis sentinel. */ static ellipsis(): ConceptRef; } //# sourceMappingURL=concept-ref.d.ts.map