import type { IPoint } from '../geometry'; import type { ICommentOption, INatureOption, IObjectOption, IRegionOption, IRelationOption, IThingOption } from '../option'; import type { IComment } from './i-comment'; import type { INature } from './i-nature'; import type { IObject } from './i-object'; import type { IRegion } from './i-region'; import type { IRelation } from './i-relation'; import { IThing } from './i-thing'; export interface IShapeFactory { createObject(userData: unknown, option?: IObjectOption, hoverOption?: IObjectOption, errorOption?: IObjectOption, id?: string): IObject; createNature(userData: unknown, option?: INatureOption, hoverOption?: INatureOption, errorOption?: INatureOption, id?: string): INature; createRelation(startPoint: IPoint, endPoint: IPoint, userData: unknown, option?: IRelationOption, hoverOption?: IRelationOption, errorOption?: IRelationOption, id?: string): IRelation; createComment(userData: unknown, option?: ICommentOption, hoverOption?: ICommentOption, errorOption?: ICommentOption, id?: string): IComment; createRegion(userData: unknown, option?: IRegionOption, hoverOption?: IRegionOption, errorOption?: IRegionOption, id?: string): IRegion; createThing(userData: unknown, option?: IThingOption, hoverOption?: IThingOption, errorOption?: IThingOption, id?: string): IThing; }