import { IParticipantAsSeller, IParticipantAsWebApplication, IParticipantAsPerson } from '../../../action'; import { IPermitIssuedThroughFaceToFace, IPermitIssuedThroughMembershipService } from '../../../assetTransaction/reserve'; import { AssetTransactionType } from '../../../assetTransactionType'; import { OfferType } from '../../../offerType'; import { PriceCurrency } from '../../../priceCurrency'; import { IPriceSpecification as IUnitPriceSpecification } from '../../../priceSpecification/unitPriceSpecification'; import { ITicketOffer } from '../../../product'; import { TransactionType } from '../../../transactionType'; export type IAgent = IParticipantAsSeller; export type IRecipient = IParticipantAsWebApplication | IParticipantAsPerson; export declare enum ObjectType { SeatReservation = "SeatReservation" } export interface IInstrumentAsCOAReserveTransaction { typeOf: AssetTransactionType.COAReserveTransaction; identifier?: never; /** * 仮予約番号 * ある時期(2023-09-12頃)以前では空文字のケースがあるので注意 */ transactionNumber: string; } export interface IInstrumentAsReserveTransaction { typeOf: AssetTransactionType.Reserve; identifier?: never; /** * 予約取引番号 */ transactionNumber: string; } export interface IPurpose { typeOf: TransactionType.PlaceOrder; id: string; } export type IError = any; export interface IAcceptedOfferInResult extends Pick { typeOf: OfferType.Offer; id: string; includesObject: { amountOfThisGood: number; }; /** * 取引確定時の検証に必要な情報のみ保管する */ priceSpecification?: Pick; } export type IAggregateProgramMembershipUsed = (IPermitIssuedThroughFaceToFace | IPermitIssuedThroughMembershipService)[]; /** * オファー承認結果としての集計オファー */ export interface IResultAsAggregateOffer { typeOf: OfferType.AggregateOffer; /** * オファーIDごとの集計 */ offers?: IAcceptedOfferInResult[]; itemOffered?: { serviceOutput: { /** * programMembershipUsed required(2024-08-15~) */ programMembershipUsed: IAggregateProgramMembershipUsed; }; }; /** * 決済金額 * オファー未指定の場合、金額非確定なので、この属性は存在しない */ price?: number; priceCurrency: PriceCurrency; }