import type { JDLRelationshipType, RelationshipSide } from '../basic-types/relationships.js'; export type JDLRelationshipOptions = Record<'global' | 'source' | 'destination', Record>; export type JDLSourceEntitySide = { sourceEntity: string; injectedFieldInSourceEntity?: string; injectedFieldInSourceIsRequired: boolean; commentForSourceEntity?: string; }; export type JDLRelationshipModel = { side?: RelationshipSide; from: string; to: string; type: JDLRelationshipType; options: JDLRelationshipOptions; injectedFieldInFrom?: string | null; injectedFieldInTo?: string | null; isInjectedFieldInFromRequired: boolean; isInjectedFieldInToRequired: boolean; commentInFrom?: string | null; commentInTo?: string | null; }; export default class JDLRelationship implements JDLRelationshipModel { side?: RelationshipSide; from: string; to: string; type: JDLRelationshipType; options: { global: Record; source: Record; destination: Record; }; injectedFieldInFrom?: string | null; injectedFieldInTo?: string | null; isInjectedFieldInFromRequired: boolean; isInjectedFieldInToRequired: boolean; commentInFrom?: string | null; commentInTo?: string | null; constructor(args: Partial & Pick); getId(): string; hasGlobalOption(option: string): boolean; forEachGlobalOption(passedFunction: (optionName: string, value: any) => void): void; forEachSourceOption(passedFunction: (optionName: string, value: any) => void): void; forEachDestinationOption(passedFunction: (optionName: string, value: any) => void): void; toString(): string; }