import type { IRelationOption } from '../option'; import type { ILabelable } from './i-labelable'; import type { IObject } from './i-object'; import type { IUserDatable } from './i-user-datable'; import type { IStatusable } from './i-statusable'; import type { Ishapable } from './i-shapable'; import type { ILineBase } from '../base'; export interface IRelation extends ILineBase, Ishapable, ILabelable, IStatusable, IUserDatable { new (startX: number, startY: number, endX: number, endY: number, option: IRelationOption, hoverOption: IRelationOption, errorOption: IRelationOption, id?: string): IRelation; getRelations(): Array; setRelations(relations: Array): void; getStart(): IObject | undefined; setStart(object: IObject): void; getEnd(): IObject | undefined; setEnd(object: IObject): void; getPeers(): [IObject | undefined, IObject | undefined]; setPeers(start: IObject, end: IObject): void; haveSamePeers(relation: IRelation): boolean; }