import * as _angular_core from '@angular/core'; import { TemplateRef } from '@angular/core'; import { SearchResult, DmsObject, Relationship, TranslateService } from '@yuuvis/client-core'; import { Node, Font, Edge } from 'vis-network/standalone'; import { FormControl, FormGroup } from '@angular/forms'; interface RelationshipComponentInput { originId: string; relations: SearchResult; objects: SearchResult; } interface RelationshipNode extends Node { objectType: string; } interface RelationshipComponentConfig { rootNode: RelationshipComponentConfigNode; nodes: RelationshipComponentConfigNode[]; } interface RelationshipComponentConfigNode { objectType: string; labelField: string; descriptionField?: string; icon?: string; summaryFields?: string[]; objectLink?: string; } interface ObjectLink { id: string; type: { id: string; label: string; }; source: ObjectLinkNode; target: ObjectLinkNode; } interface ObjectLinkNode { id: string; label: string; description?: string; icon?: string; objectLink?: string; } declare class ObjectRelationshipComponent { #private; /** * Display mode for the relationship view. */ mode: _angular_core.ModelSignal<"list" | "graph">; empty: _angular_core.Signal; /** * ID of the object to display relations for. */ objectId: _angular_core.InputSignal; /** * Configuration for the relations component. */ config: _angular_core.InputSignal; originObject: _angular_core.WritableSignal; supportedRelationships: _angular_core.Signal; busy: _angular_core.WritableSignal; relationActions: _angular_core.InputSignal | null>; toggleMode(): void; addRelationship(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class YuvObjectRelationshipModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } declare const ROOT_NODE_SETTINGS: Partial; declare const ROOT_NODE_FONT_SETTINGS: Font; declare const NODE_SETTINGS: Partial; declare const NODE_FONT_SETTINGS: Font; declare const EDGE_SETTINGS: Partial; declare const EDGE_FONT_SETTINGS: Font; declare const ADD_RELATIONSHIP_DIALOG_OPTIONS: { maxWidth: string; }; declare class AddRelationshipComponent { #private; readonly translate: TranslateService; targetTypeLabels: Record; targetTypeFilterControl: FormControl; targetTypeFilterValue: _angular_core.Signal; object: _angular_core.InputSignal; config: _angular_core.InputSignal; supportedRelationships: _angular_core.Signal; filteredRelationships: _angular_core.Signal; availableTargetTypes: _angular_core.Signal; labeledTargetTypes: _angular_core.Signal<{ id: string; label: string; }[]>; sourceNode: _angular_core.Signal<{ title: string; description: string | undefined; icon: string | undefined; }>; form: FormGroup<{ relation: FormControl; targetObject: FormControl | null>; }>; busy: _angular_core.WritableSignal; error: _angular_core.WritableSignal; optionCompareWith(o1: Relationship | undefined, o2: Relationship | undefined): boolean; onRelationSelect(idx: number[]): void; submit(): void; close(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { ADD_RELATIONSHIP_DIALOG_OPTIONS, AddRelationshipComponent, EDGE_FONT_SETTINGS, EDGE_SETTINGS, NODE_FONT_SETTINGS, NODE_SETTINGS, ObjectRelationshipComponent, ROOT_NODE_FONT_SETTINGS, ROOT_NODE_SETTINGS, YuvObjectRelationshipModule }; export type { ObjectLink, ObjectLinkNode, RelationshipComponentConfig, RelationshipComponentConfigNode, RelationshipComponentInput, RelationshipNode };