import { IAttributes as IPayActionAttributes, IOrderAsInstrument, IPurposeAsReturnAction, IRefundActionAsInstrument } from '../action/trade/pay'; import { IOptimizedPayAction4order } from '../assetTransaction/pay'; import { IExtendId } from '../autoGenerated'; import { ITaskAttributes } from '../task'; import { TaskName } from '../taskName'; export type IPayReturnFeeActionInstrument = IOrderAsInstrument | IRefundActionAsInstrument; /** * in case of pay return fee */ export interface IPayReturnFeeAction extends Pick { instrument?: IPayReturnFeeActionInstrument[]; purpose: IPurposeAsReturnAction; } /** * in case of pay order */ export type IPayOrderAction = Pick & { instrument?: never; typeOf?: never; potentialActions?: never; }; export type IData = IPayReturnFeeAction | IPayOrderAction; export interface IAttributes extends ITaskAttributes { name: TaskName.Pay; data: IData; } /** * pay task */ export type ITask = IExtendId;