import { IParticipantAsPerson, IParticipantAsWebApplication, IParticipantAsSoftwareApplication, IAction as IBaseAction, IAttributes as IBaseAttributes } from '../../action'; import { ActionType } from '../../actionType'; import { IAbout as INoteAbout } from '../../creativeWork/noteDigitalDocument'; import { CreativeWorkType } from '../../creativeWorkType'; import { EventType } from '../../eventType'; import { OfferType } from '../../offerType'; import { ProductType } from '../../product'; import { IObject } from './add/object'; import { IInstrumentAsApplication } from './instrumentAsApplication'; export * from './add/object'; export type IAgent = IParticipantAsPerson | IParticipantAsWebApplication | IParticipantAsSoftwareApplication; export interface IAddedObject { id: string; typeOf: CreativeWorkType.NoteDigitalDocument | ProductType | OfferType.Offer | 'ProductModel' | CreativeWorkType.Movie | EventType; } export type IResult = IAddedObject[]; export type IInstrument = IInstrumentAsApplication; export interface ITargetCollectionAsNote { typeOf: CreativeWorkType.NoteDigitalDocument; about: Pick; } export interface ITargetCollectionAsResource { typeOf: ProductType | OfferType.Offer | 'ProductModel' | CreativeWorkType.Movie | EventType; } export type ITargetCollection = ITargetCollectionAsNote | ITargetCollectionAsResource; export interface IAttributes extends Pick, 'typeOf' | 'targetCollection' | 'sameAs' | 'result' | 'project' | 'object' | 'instrument' | 'error' | 'agent'> { potentialActions?: never; purpose?: never; instrument: IInstrument; targetCollection: ITargetCollection; } /** * 追加アクション */ export type IAction = IBaseAction;