@wix/auto_sdk_online-programs_participants 1.0.21 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/index.d.ts +16 -3
- package/build/cjs/index.js +64 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index.typings.d.ts +2 -2
- package/build/cjs/index.typings.js +56 -0
- package/build/cjs/index.typings.js.map +1 -1
- package/build/cjs/meta.d.ts +43 -2
- package/build/cjs/meta.js +49 -0
- package/build/cjs/meta.js.map +1 -1
- package/build/cjs/{online-programs-participants-v3-participant-participants.universal-D4rclIQF.d.ts → online-programs-participants-v3-participant-participants.universal-B5JuUrJE.d.ts} +53 -1
- package/build/es/index.d.mts +16 -3
- package/build/es/index.mjs +63 -0
- package/build/es/index.mjs.map +1 -1
- package/build/es/index.typings.d.mts +2 -2
- package/build/es/index.typings.mjs +55 -0
- package/build/es/index.typings.mjs.map +1 -1
- package/build/es/meta.d.mts +43 -2
- package/build/es/meta.mjs +48 -0
- package/build/es/meta.mjs.map +1 -1
- package/build/es/{online-programs-participants-v3-participant-participants.universal-D4rclIQF.d.mts → online-programs-participants-v3-participant-participants.universal-B5JuUrJE.d.mts} +53 -1
- package/build/internal/cjs/index.d.ts +16 -3
- package/build/internal/cjs/index.typings.d.ts +2 -2
- package/build/internal/cjs/meta.d.ts +43 -2
- package/build/internal/cjs/{online-programs-participants-v3-participant-participants.universal-AG5j7ATZ.d.ts → online-programs-participants-v3-participant-participants.universal-CAVKsE12.d.ts} +53 -1
- package/build/internal/es/index.d.mts +16 -3
- package/build/internal/es/index.typings.d.mts +2 -2
- package/build/internal/es/meta.d.mts +43 -2
- package/build/internal/es/{online-programs-participants-v3-participant-participants.universal-AG5j7ATZ.d.mts → online-programs-participants-v3-participant-participants.universal-CAVKsE12.d.mts} +53 -1
- package/package.json +2 -2
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../index.ts","../../src/online-programs-participants-v3-participant-participants.public.ts","../../src/online-programs-participants-v3-participant-participants.universal.ts","../../src/online-programs-participants-v3-participant-participants.http.ts","../../src/online-programs-participants-v3-participant-participants.context.ts"],"sourcesContent":["export * from './src/online-programs-participants-v3-participant-participants.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n BulkCreateParticipantsApplicationErrors,\n BulkCreateParticipantsForAllMembersOptions,\n BulkCreateParticipantsForAllMembersResponse,\n BulkCreateParticipantsOptions,\n BulkCreateParticipantsResponse,\n BulkUpdateParticipantTagsApplicationErrors,\n BulkUpdateParticipantTagsByFilterApplicationErrors,\n BulkUpdateParticipantTagsByFilterOptions,\n BulkUpdateParticipantTagsByFilterResponse,\n BulkUpdateParticipantTagsOptions,\n BulkUpdateParticipantTagsResponse,\n CreateParticipantApplicationErrors,\n CreateParticipantOptions,\n GetAccessStatusResponse,\n GetParticipantOptions,\n GetParticipationStatsResponse,\n GetPremiumStatsResponse,\n IssueCertificateApplicationErrors,\n IssueCertificateOptions,\n IssueCertificateResponse,\n Participant,\n ParticipantCompletedProgramEnvelope,\n ParticipantCreatedEnvelope,\n ParticipantDeletedEnvelope,\n ParticipantLeftEnvelope,\n ParticipantMissedProgramDeadlineEnvelope,\n ParticipantProgramDurationEndedEnvelope,\n ParticipantQuery,\n ParticipantRemovedEnvelope,\n ParticipantSearch,\n ParticipantTagsModifiedEnvelope,\n ParticipantUpdatedEnvelope,\n ParticipantsQueryBuilder,\n QueryParticipantsOptions,\n QueryParticipantsResponse,\n SearchParticipantsOptions,\n SearchParticipantsResponse,\n UpdateParticipant,\n UpdateParticipantOptions,\n bulkCreateParticipants as universalBulkCreateParticipants,\n bulkCreateParticipantsForAllMembers as universalBulkCreateParticipantsForAllMembers,\n bulkUpdateParticipantTags as universalBulkUpdateParticipantTags,\n bulkUpdateParticipantTagsByFilter as universalBulkUpdateParticipantTagsByFilter,\n createParticipant as universalCreateParticipant,\n deleteParticipant as universalDeleteParticipant,\n exportParticipantsStats as universalExportParticipantsStats,\n getAccessStatus as universalGetAccessStatus,\n getParticipant as universalGetParticipant,\n getParticipationStats as universalGetParticipationStats,\n getPremiumStats as universalGetPremiumStats,\n issueCertificate as universalIssueCertificate,\n queryParticipants as universalQueryParticipants,\n searchParticipants as universalSearchParticipants,\n typedQueryParticipants as universalTypedQueryParticipants,\n updateParticipant as universalUpdateParticipant,\n} from './online-programs-participants-v3-participant-participants.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/online-programs' };\n\nexport function createParticipant(\n httpClient: HttpClient\n): CreateParticipantSignature {\n return (\n participant: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >,\n options?: CreateParticipantOptions\n ) =>\n universalCreateParticipant(\n participant,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateParticipantSignature {\n /**\n * Creates a participant.\n *\n * Returns an error if the member is already a participant in the specified program.\n * Use UpdateParticipant to modify existing participants.\n * @param - Participant to create\n * @returns Created participant\n */\n (\n participant: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >,\n options?: CreateParticipantOptions\n ): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n > & {\n __applicationErrorsType?: CreateParticipantApplicationErrors;\n }\n >;\n}\n\nexport function updateParticipant(\n httpClient: HttpClient\n): UpdateParticipantSignature {\n return (\n _id: string,\n participant: NonNullablePaths<UpdateParticipant, `revision`, 2>,\n options?: UpdateParticipantOptions\n ) =>\n universalUpdateParticipant(\n _id,\n participant,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateParticipantSignature {\n /**\n * Updates a participant's enrollment status or enrollment pricing details.\n *\n * Use this method to suspend or resume a participant by setting `enrollment_status` to\n * `SUSPENDED` or `JOINED`. To remove a participant, use `DeleteParticipant`.\n * Progress status is calculated from the participant's resolved steps and can't be updated.\n * @param - Participant ID.\n * @returns Updated participant\n */\n (\n _id: string,\n participant: NonNullablePaths<UpdateParticipant, `revision`, 2>,\n options?: UpdateParticipantOptions\n ): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n >;\n}\n\nexport function bulkCreateParticipants(\n httpClient: HttpClient\n): BulkCreateParticipantsSignature {\n return (\n participants: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >[],\n options?: BulkCreateParticipantsOptions\n ) =>\n universalBulkCreateParticipants(\n participants,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateParticipantsSignature {\n /**\n * Creates participants in bulk.\n *\n * All participants in a single bulk create request must belong to the same program.\n * Returns an error if the member is already a participant in the specified program.\n *\n * When `pricing_type` is `SINGLE_PAYMENT`, provide `single_payment_details`.\n * When `pricing_type` is `PAID_PLAN`, provide `paid_plan_details`.\n * When `pricing_type` is `FREE_COUPON`, provide `free_coupon_details`.\n * Other pricing types (`FREE`, `ADDED_MANUALLY`) do not require details.\n * @param - List of participants to create.\n */\n (\n participants: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >[],\n options?: BulkCreateParticipantsOptions\n ): Promise<\n NonNullablePaths<\n BulkCreateParticipantsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.memberId`\n | `results.${number}.item.programId`\n | `results.${number}.item.progress.totalStepsCompleted`\n | `results.${number}.item.progress.totalStepsAvailable`\n | `results.${number}.item.progress.completionPercentage`\n | `results.${number}.item.enrollmentStatus`\n | `results.${number}.item.progressStatus`\n | `results.${number}.item.enrollmentInfo.timeZone`\n | `results.${number}.item.enrollmentInfo.startDate`\n | `results.${number}.item.enrollmentInfo.pricingType`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateParticipantsApplicationErrors;\n }\n >;\n}\n\nexport function bulkCreateParticipantsForAllMembers(\n httpClient: HttpClient\n): BulkCreateParticipantsForAllMembersSignature {\n return (\n programId: string,\n options?: BulkCreateParticipantsForAllMembersOptions\n ) =>\n universalBulkCreateParticipantsForAllMembers(\n programId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateParticipantsForAllMembersSignature {\n /**\n * Creates participants in bulk for all site members in a program, with an optional exclusion filter.\n *\n * Participants are created in the `JOINED` state with the join path set to `ADDED`.\n * Members who are already participants in the program will be skipped.\n * Only members who are not yet participants will be added.\n * @param - ID of the program for which to create participants for all site members in bulk.\n */\n (\n programId: string,\n options?: BulkCreateParticipantsForAllMembersOptions\n ): Promise<\n NonNullablePaths<BulkCreateParticipantsForAllMembersResponse, `jobId`, 2>\n >;\n}\n\nexport function deleteParticipant(\n httpClient: HttpClient\n): DeleteParticipantSignature {\n return (participantId: string) =>\n universalDeleteParticipant(\n participantId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteParticipantSignature {\n /**\n * Removes a participant from the program.\n *\n * The member will lose access to program content but will remain in any associated social groups.\n * @param - ID of the participant to delete.\n */\n (participantId: string): Promise<void>;\n}\n\nexport function issueCertificate(\n httpClient: HttpClient\n): IssueCertificateSignature {\n return (participantId: string, options?: IssueCertificateOptions) =>\n universalIssueCertificate(\n participantId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface IssueCertificateSignature {\n /**\n * Manually issues a certificate to an active or finished participant.\n *\n * A finished participant has completed or failed the program, or was automatically removed.\n * The program must have a connected certificate reward. When authenticated as a site member,\n * the participant must have completed the program.\n * @param - ID of the participant to issue the certificate to.\n */\n (participantId: string, options?: IssueCertificateOptions): Promise<\n NonNullablePaths<\n IssueCertificateResponse,\n | `participant.memberId`\n | `participant.programId`\n | `participant.progress.totalStepsCompleted`\n | `participant.progress.totalStepsAvailable`\n | `participant.progress.completionPercentage`\n | `participant.enrollmentStatus`\n | `participant.progressStatus`\n | `participant.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participant.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participant.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participant.enrollmentInfo.timeZone`\n | `participant.enrollmentInfo.startDate`\n | `participant.enrollmentInfo.pricingType`\n | `participant.tags.privateTags.tagIds`,\n 5\n > & {\n __applicationErrorsType?: IssueCertificateApplicationErrors;\n }\n >;\n}\n\nexport function getPremiumStats(\n httpClient: HttpClient\n): GetPremiumStatsSignature {\n return () =>\n universalGetPremiumStats(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetPremiumStatsSignature {\n /**\n * Retrieves premium plan statistics for the site.\n */\n (): Promise<\n NonNullablePaths<\n GetPremiumStatsResponse,\n `premiumEnabled` | `activeParticipantsCount` | `activeParticipantsLimit`,\n 2\n >\n >;\n}\n\nexport function getParticipationStats(\n httpClient: HttpClient\n): GetParticipationStatsSignature {\n return (programIds: string[]) =>\n universalGetParticipationStats(\n programIds,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetParticipationStatsSignature {\n /**\n * Retrieves site-wide participant statistics for the requested programs.\n *\n * The statistics aren't limited to the caller's own participation records.\n * @param - IDs of the programs to retrieve participant statistics for.\n */\n (programIds: string[]): Promise<\n NonNullablePaths<\n GetParticipationStatsResponse,\n | `participationStats`\n | `participationStats.${number}.programId`\n | `participationStats.${number}.participantsCount`\n | `participationStats.${number}.autoRemovedCount`,\n 4\n >\n >;\n}\n\nexport function getParticipant(\n httpClient: HttpClient\n): GetParticipantSignature {\n return (participantId: string, options?: GetParticipantOptions) =>\n universalGetParticipant(\n participantId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetParticipantSignature {\n /**\n * Returns a participant by ID.\n * @param - ID of the participant to fetch.\n * @returns The retrieved participant.\n */\n (participantId: string, options?: GetParticipantOptions): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n >;\n}\n\nexport function queryParticipants(\n httpClient: HttpClient\n): QueryParticipantsSignature {\n return (options?: QueryParticipantsOptions) =>\n universalQueryParticipants(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryParticipantsSignature {\n /**\n * Queries existing participants.\n */\n (options?: QueryParticipantsOptions): ParticipantsQueryBuilder;\n}\n\nexport function typedQueryParticipants(\n httpClient: HttpClient\n): TypedQueryParticipantsSignature {\n return (query: ParticipantQuery, options?: QueryParticipantsOptions) =>\n universalTypedQueryParticipants(\n query,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface TypedQueryParticipantsSignature {\n /** */\n (query: ParticipantQuery, options?: QueryParticipantsOptions): Promise<\n NonNullablePaths<\n QueryParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`,\n 6\n >\n >;\n}\n\nexport function getAccessStatus(\n httpClient: HttpClient\n): GetAccessStatusSignature {\n return () =>\n universalGetAccessStatus(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetAccessStatusSignature {\n /**\n * Retrieves the access status for the current site, indicating whether participants can access\n * online programs or if access is blocked due to plan limitations or other restrictions.\n */\n (): Promise<NonNullablePaths<GetAccessStatusResponse, `accessBlocked`, 2>>;\n}\n\nexport function bulkUpdateParticipantTags(\n httpClient: HttpClient\n): BulkUpdateParticipantTagsSignature {\n return (\n participantIds: string[],\n options?: BulkUpdateParticipantTagsOptions\n ) =>\n universalBulkUpdateParticipantTags(\n participantIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateParticipantTagsSignature {\n /**\n * Updates tags for multiple Participants by IDs.\n *\n * Allows assigning and/or unassigning tags in a single operation.\n * At least one of assign_tags or unassign_tags must be provided.\n * @param - Participant IDs to update tags for (1-100 items)\n */\n (\n participantIds: string[],\n options?: BulkUpdateParticipantTagsOptions\n ): Promise<\n NonNullablePaths<\n BulkUpdateParticipantTagsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateParticipantTagsApplicationErrors;\n }\n >;\n}\n\nexport function bulkUpdateParticipantTagsByFilter(\n httpClient: HttpClient\n): BulkUpdateParticipantTagsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkUpdateParticipantTagsByFilterOptions\n ) =>\n universalBulkUpdateParticipantTagsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateParticipantTagsByFilterSignature {\n /**\n * Updates tags for Participants matching a filter.\n *\n * Allows assigning and/or unassigning tags for all Participants matching the filter.\n * Returns a job ID for tracking the async operation.\n * @param - WQL filter to select Participants\n */\n (\n filter: Record<string, any>,\n options?: BulkUpdateParticipantTagsByFilterOptions\n ): Promise<\n NonNullablePaths<BulkUpdateParticipantTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateParticipantTagsByFilterApplicationErrors;\n }\n >;\n}\n\nexport function searchParticipants(\n httpClient: HttpClient\n): SearchParticipantsSignature {\n return (search: ParticipantSearch, options?: SearchParticipantsOptions) =>\n universalSearchParticipants(\n search,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface SearchParticipantsSignature {\n /**\n * Retrieves a list of participants matching the search criteria.\n *\n * Results and aggregations include only the participant records that the caller is authorized to access.\n * @param - Query to search participants.\n */\n (search: ParticipantSearch, options?: SearchParticipantsOptions): Promise<\n NonNullablePaths<\n SearchParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n >\n >;\n}\n\n/** @internal */\nexport function exportParticipantsStats(\n httpClient: HttpClient\n): ExportParticipantsStatsSignature {\n return (programId: string) =>\n universalExportParticipantsStats(\n programId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ExportParticipantsStatsSignature {\n /**\n * Exports participant data and step completion statistics for a program as a CSV file.\n * The export includes participant details, progress, status, and completion dates for each step.\n *\n * This method initiates an asynchronous export. Subscribe to the `ParticipantExportsFinished`\n * event to receive the download URL when the export completes.\n * @param - program id to export data from\n */\n (programId: string): Promise<void>;\n}\n\nexport const onParticipantCompletedProgram = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_completed_program',\n true,\n (event: ParticipantCompletedProgramEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantCompletedProgramEnvelope>();\nexport const onParticipantCreated = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_created',\n true,\n (event: ParticipantCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.lastActivityDate' },\n { path: 'entity.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'entity.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantCreatedEnvelope>();\nexport const onParticipantDeleted = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_deleted',\n true,\n (event: ParticipantDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.lastActivityDate' },\n { path: 'entity.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'entity.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantDeletedEnvelope>();\nexport const onParticipantLeft = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_left',\n true,\n (event: ParticipantLeftEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantLeftEnvelope>();\nexport const onParticipantMissedProgramDeadline = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_missed_program_deadline',\n true,\n (event: ParticipantMissedProgramDeadlineEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantMissedProgramDeadlineEnvelope>();\nexport const onParticipantProgramDurationEnded = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_program_duration_ended',\n true,\n (event: ParticipantProgramDurationEndedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantProgramDurationEndedEnvelope>();\nexport const onParticipantRemoved = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_removed',\n true,\n (event: ParticipantRemovedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantRemovedEnvelope>();\nexport const onParticipantTagsModified = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_tags_modified',\n true,\n (event: ParticipantTagsModifiedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantTagsModifiedEnvelope>();\nexport const onParticipantUpdated = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_updated',\n true,\n (event: ParticipantUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.lastActivityDate' },\n { path: 'entity.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n { path: 'modifiedFields.createdDate' },\n { path: 'modifiedFields.updatedDate' },\n { path: 'modifiedFields.lastActivityDate' },\n { path: 'modifiedFields.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.progress.completionPercentage' },\n { path: 'modifiedFields.progress.completionPercentage' },\n ],\n },\n ])\n )\n)<ParticipantUpdatedEnvelope>();\n\nexport {\n AccountInfo,\n AccountInfoMetadata,\n ActionEvent,\n Aggregation,\n AggregationData,\n AggregationKindOneOf,\n AggregationResults,\n AggregationResultsResultOneOf,\n AggregationResultsScalarResult,\n AggregationType,\n ApplicationError,\n BaseEventMetadata,\n BulkActionMetadata,\n BulkActionType,\n BulkCreateParticipantsForAllMembersOptions,\n BulkCreateParticipantsForAllMembersRequest,\n BulkCreateParticipantsForAllMembersResponse,\n BulkCreateParticipantsOptions,\n BulkCreateParticipantsRequest,\n BulkCreateParticipantsResponse,\n BulkParticipantMigrationResult,\n BulkParticipantResult,\n BulkUpdateParticipantTagsByFilterOptions,\n BulkUpdateParticipantTagsByFilterRequest,\n BulkUpdateParticipantTagsByFilterResponse,\n BulkUpdateParticipantTagsOptions,\n BulkUpdateParticipantTagsRequest,\n BulkUpdateParticipantTagsResponse,\n BulkUpdateParticipantTagsResult,\n BulkUpsertParticipantsMigrationRequest,\n BulkUpsertParticipantsMigrationResponse,\n CertificateInfo,\n CreateParticipantOptions,\n CreateParticipantRequest,\n CreateParticipantResponse,\n CursorPaging,\n CursorPagingMetadata,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Cursors,\n DateHistogramAggregation,\n DateHistogramResult,\n DateHistogramResults,\n Delete,\n DeleteAllParticipantsMigrationRequest,\n DeleteAllParticipantsMigrationResponse,\n DeleteParticipantRequest,\n DeleteParticipantResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n Empty,\n EnrollmentInfo,\n EnrollmentInfoPricingTypeDetailsOneOf,\n EnrollmentStatus,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n EventMetadata,\n ExportParticipantsStatsRequest,\n ExportParticipantsStatsResponse,\n ExtendedFields,\n FreeCouponDetails,\n GetAccessStatusRequest,\n GetAccessStatusResponse,\n GetCompletionStatsRequest,\n GetCompletionStatsResponse,\n GetParticipantOptions,\n GetParticipantRequest,\n GetParticipantResponse,\n GetParticipationStatsRequest,\n GetParticipationStatsResponse,\n GetPremiumStatsRequest,\n GetPremiumStatsResponse,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n GroupByValueResults,\n IdentificationData,\n IdentificationDataIdOneOf,\n IncludeMissingValuesOptions,\n Interval,\n IssueCertificateOptions,\n IssueCertificateRequest,\n IssueCertificateResponse,\n ItemMetadata,\n Member,\n MessageEnvelope,\n MissingValues,\n Mode,\n NestedAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n NestedAggregationType,\n NestedResultValue,\n NestedResultValueResultOneOf,\n NestedResults,\n NestedValueAggregationResult,\n Paging,\n PagingMetadataV2,\n PaidPlanDetails,\n Participant,\n ParticipantCompletedProgram,\n ParticipantCompletedProgramEnvelope,\n ParticipantCreatedEnvelope,\n ParticipantDeletedEnvelope,\n ParticipantLeft,\n ParticipantLeftEnvelope,\n ParticipantMigration,\n ParticipantMissedProgramDeadline,\n ParticipantMissedProgramDeadlineEnvelope,\n ParticipantProgramDurationEnded,\n ParticipantProgramDurationEndedEnvelope,\n ParticipantQuerySpec,\n ParticipantRemoved,\n ParticipantRemovedEnvelope,\n ParticipantSearchSpec,\n ParticipantTagsModified,\n ParticipantTagsModifiedEnvelope,\n ParticipantUpdatedEnvelope,\n ParticipantsQueryBuilder,\n ParticipantsQueryResult,\n PricingType,\n ProgramParticipationStats,\n Progress,\n ProgressStatus,\n QueryParticipantsOptions,\n QueryParticipantsRequest,\n QueryParticipantsResponse,\n QueryV2,\n QueryV2PagingMethodOneOf,\n RangeAggregation,\n RangeAggregationResult,\n RangeBucket,\n RangeResult,\n RangeResults,\n ReindexMessage,\n ReindexMessageActionOneOf,\n ReindexParticipantsSearchRequest,\n ReindexParticipantsSearchResponse,\n RequestedFields,\n RestoreInfo,\n Results,\n ScalarAggregation,\n ScalarResult,\n ScalarType,\n Schema,\n SearchDetails,\n SearchParticipantsOptions,\n SearchParticipantsRequest,\n SearchParticipantsResponse,\n SinglePaymentDetails,\n SortDirection,\n SortOrder,\n SortType,\n Sorting,\n SynchronizeTimeCapsuleTasksRequest,\n SynchronizeTimeCapsuleTasksResponse,\n TagList,\n Tags,\n UpdateParticipant,\n UpdateParticipantOptions,\n UpdateParticipantRequest,\n UpdateParticipantResponse,\n Upsert,\n ValueAggregation,\n ValueAggregationOptionsOneOf,\n ValueAggregationResult,\n ValueResult,\n ValueResults,\n WebhookIdentityType,\n utils,\n} from './online-programs-participants-v3-participant-participants.universal.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n HttpClient,\n HttpResponse,\n Search as SearchSdkType,\n NonNullablePaths,\n QuerySpec,\n Query as QuerySdkType,\n SearchSpec,\n} from '@wix/sdk-types';\nimport * as ambassadorWixOnlineProgramsParticipantsV3Participant from './online-programs-participants-v3-participant-participants.http.js';\n// @ts-ignore\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\nimport { createSearchUtils } from '@wix/sdk-runtime/search-builder-utils';\n\n/**\n * Participant entity represents a site member who takes part in a specific Online Program.\n * Participants have access to the program's content and progress through the program by completing its steps.\n * A participant can join through a join application flow or be manually added by the program owner.\n * A participant's status depends on their progress and the program's settings (e.g., start and end dates). Participation may also be temporarily suspended.\n */\nexport interface Participant {\n /**\n * Participant ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Participant revision (for optimistic concurrency control).\n * @readonly\n */\n revision?: string | null;\n /**\n * Participant creation date.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date the participant was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Member ID of the participant on the site.\n * @format GUID\n * @readonly\n */\n memberId?: string;\n /**\n * ID of the program the participant is enrolled in.\n * @format GUID\n * @readonly\n */\n programId?: string;\n /**\n * Program completion progress. This field is conditional and must be explicitly requested via `fields` parameter.\n * @readonly\n */\n progress?: Progress;\n /**\n * Certificate info for participant\n * @readonly\n */\n certificateInfo?: CertificateInfo;\n /**\n * Site member info snapshot for the participant\n * @readonly\n */\n member?: Member;\n /**\n * Last activity date of the participant in the program (can either be status change or step resolution).\n * @readonly\n */\n lastActivityDate?: Date | null;\n /**\n * Participant's enrollment status in the program.\n * @readonly\n */\n enrollmentStatus?: EnrollmentStatusWithLiterals;\n /**\n * Participant's progress status in the program.\n * @readonly\n */\n progressStatus?: ProgressStatusWithLiterals;\n /** Additional information about the participant's enrollment and completion timeframe in the program. */\n enrollmentInfo?: EnrollmentInfo;\n /** Extended fields for participant (can be used for storing custom data). */\n extendedFields?: ExtendedFields;\n /** Tags for categorizing and organizing participants. */\n tags?: Tags;\n}\n\nexport enum PricingType {\n /** Member joined a program that is configured as free to join, with no payment required. */\n FREE = 'FREE',\n /** Member was added to the program by site owner. */\n ADDED_MANUALLY = 'ADDED_MANUALLY',\n /** Member paid once to join the program. */\n SINGLE_PAYMENT = 'SINGLE_PAYMENT',\n /** Member joined using a Pricing Plan. */\n PAID_PLAN = 'PAID_PLAN',\n /** Member joined a paid program using a coupon that provided 100% discount. */\n FREE_COUPON = 'FREE_COUPON',\n}\n\n/** @enumType */\nexport type PricingTypeWithLiterals =\n | PricingType\n | 'FREE'\n | 'ADDED_MANUALLY'\n | 'SINGLE_PAYMENT'\n | 'PAID_PLAN'\n | 'FREE_COUPON';\n\nexport interface SinglePaymentDetails {\n /**\n * ID of the cashier order which was used to pay for joining the program.\n * @format GUID\n * @immutable\n */\n paymentOrderId?: string;\n /**\n * ID of the offline transaction if the participant used an offline payment method (e.g., cash, check). Null if online payment was used.\n * @format GUID\n * @immutable\n */\n offlineTransactionId?: string | null;\n}\n\nexport interface PaidPlanDetails {\n /**\n * ID of the Paid Plan for which member has paid to join the program.\n * @format GUID\n * @immutable\n */\n paidPlanId?: string;\n}\n\nexport interface FreeCouponDetails {\n /**\n * ID of the coupon which was applied and gave 100% discount to join the program for free.\n * @format GUID\n * @immutable\n */\n freeCouponId?: string;\n}\n\nexport interface Progress {\n /** Number of program steps completed by member. */\n totalStepsCompleted?: number;\n /** Total number of program steps available to resolve. */\n totalStepsAvailable?: number;\n /**\n * Participant's completion percentage. For completed participants, this is 100.0. Otherwise, it is calculated as\n * (total_steps_completed / total_steps_available) * 100, capped at 100, and rounded to 1 decimal place.\n * @max 100\n */\n completionPercentage?: number;\n}\n\nexport interface CertificateInfo {\n /**\n * Date when the certificate was issued (UTC).\n * @readonly\n */\n issueDate?: Date | null;\n}\n\nexport interface Member {\n /**\n * First name of the site member. Null if the member has not provided this information in their profile.\n * @readonly\n * @maxLength 1000\n */\n firstName?: string | null;\n /**\n * Last name of the site member. Null if the member has not provided this information in their profile.\n * @readonly\n * @maxLength 1000\n */\n lastName?: string | null;\n /**\n * Email of the site member. Null if the member has not provided this information in their profile.\n * @readonly\n * @format EMAIL\n */\n email?: string | null;\n /**\n * Contact ID for accessing additional member information via the Contacts API. Use this to retrieve extended contact details like phone numbers, addresses, and custom fields. Null if the member has not provided this information in their profile.\n * @format GUID\n * @readonly\n */\n contactId?: string | null;\n /**\n * Member nickname. Null if the member has not provided this information in their profile.\n * @readonly\n * @maxLength 1000\n */\n nickname?: string | null;\n /**\n * Profile image URL of the site member.\n * @readonly\n * @format WEB_URL\n */\n profileImageUrl?: string | null;\n}\n\nexport enum EnrollmentStatus {\n /** Participant is actively enrolled in the program. */\n JOINED = 'JOINED',\n /** Enrollment temporarily suspended due to payment issues. */\n SUSPENDED = 'SUSPENDED',\n /** Automatically removed via a Wix Automations workflow. */\n AUTO_REMOVED = 'AUTO_REMOVED',\n /** Removed from the program by the site owner. */\n REMOVED = 'REMOVED',\n /** Participant voluntarily left the program. */\n LEFT = 'LEFT',\n}\n\n/** @enumType */\nexport type EnrollmentStatusWithLiterals =\n | EnrollmentStatus\n | 'JOINED'\n | 'SUSPENDED'\n | 'AUTO_REMOVED'\n | 'REMOVED'\n | 'LEFT';\n\nexport enum ProgressStatus {\n /** Enrolled but no steps completed yet. */\n NOT_STARTED = 'NOT_STARTED',\n /** At least one step completed but program not yet finished. */\n IN_PROGRESS = 'IN_PROGRESS',\n /** Participant successfully completed the program. */\n COMPLETED = 'COMPLETED',\n /** Participant failed to complete the program within the deadline. */\n FAILED = 'FAILED',\n /** Progress tracking is not applicable — participant left, was removed, or was auto-removed. */\n NOT_APPLICABLE = 'NOT_APPLICABLE',\n}\n\n/** @enumType */\nexport type ProgressStatusWithLiterals =\n | ProgressStatus\n | 'NOT_STARTED'\n | 'IN_PROGRESS'\n | 'COMPLETED'\n | 'FAILED'\n | 'NOT_APPLICABLE';\n\nexport interface EnrollmentInfo extends EnrollmentInfoPricingTypeDetailsOneOf {\n /** Details about a Single Payment enrollment. */\n singlePaymentDetails?: SinglePaymentDetails;\n /** Details about a Paid Plan enrollment. */\n paidPlanDetails?: PaidPlanDetails;\n /** Details about a Free Coupon enrollment. */\n freeCouponDetails?: FreeCouponDetails;\n /**\n * Time zone of the site when the participant was enrolled in the program, in IANA timezone format (e.g., \"America/New_York\").\n * @maxLength 50\n * @readonly\n */\n timeZone?: string;\n /**\n * Date when the participant starts the program. Equals the participant's `created_date` if the program has no configured start date; otherwise, equals the program's start date if the participant enrolled before it began.\n * @format LOCAL_DATE\n * @readonly\n */\n startDate?: string;\n /** Pricing type used for the participant's enrollment in the program. */\n pricingType?: PricingTypeWithLiterals;\n /**\n * Date by which the participant must complete the program. Null if the program has no deadline. Set if the program has a fixed end date or a duration-based deadline calculated from the participant's start date.\n * @format LOCAL_DATE\n * @readonly\n */\n deadline?: string | null;\n}\n\n/** @oneof */\nexport interface EnrollmentInfoPricingTypeDetailsOneOf {\n /** Details about a Single Payment enrollment. */\n singlePaymentDetails?: SinglePaymentDetails;\n /** Details about a Paid Plan enrollment. */\n paidPlanDetails?: PaidPlanDetails;\n /** Details about a Free Coupon enrollment. */\n freeCouponDetails?: FreeCouponDetails;\n}\n\nexport interface ExtendedFields {\n /**\n * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\n * The value of each key is structured according to the schema defined when the extended fields were configured.\n *\n * You can only access fields for which you have the appropriate permissions.\n *\n * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).\n */\n namespaces?: Record<string, Record<string, any>>;\n}\n\n/**\n * Common object for tags.\n * Should be use as in this example:\n * message Foo {\n * option (.wix.api.decomposite_of) = \"wix.commons.v2.tags.Foo\";\n * string id = 1;\n * ...\n * Tags tags = 5\n * }\n *\n * example of taggable entity\n * {\n * id: \"123\"\n * tags: {\n * public_tags: {\n * tag_ids:[\"11\",\"22\"]\n * },\n * private_tags: {\n * tag_ids: [\"33\", \"44\"]\n * }\n * }\n * }\n */\nexport interface Tags {\n /** Tags that require an additional permission in order to access them, typically restricted from site members and visitors. */\n privateTags?: TagList;\n /** Tags that are exposed to anyone with access to the entity, including site members and visitors. */\n publicTags?: TagList;\n}\n\nexport interface TagList {\n /**\n * List of tag IDs.\n * @maxSize 100\n * @maxLength 5\n */\n tagIds?: string[];\n}\n\n/**\n * Message for reindexing search data to a given search schema. Support both upsert and delete flows as well as\n * performs context manipulation with adding tenant, provided in message to callscope.\n */\nexport interface ReindexMessage extends ReindexMessageActionOneOf {\n upsert?: Upsert;\n delete?: Delete;\n entityFqdn?: string;\n tenantId?: string;\n eventTime?: Date | null;\n entityEventSequence?: string | null;\n schema?: Schema;\n}\n\n/** @oneof */\nexport interface ReindexMessageActionOneOf {\n upsert?: Upsert;\n delete?: Delete;\n}\n\nexport interface Upsert {\n entityId?: string;\n entityAsJson?: string;\n}\n\nexport interface Delete {\n entityId?: string;\n}\n\nexport interface Schema {\n label?: string;\n clusterName?: string;\n}\n\n/**\n * Domain event emitted when a participant's tags are modified.\n * Pre-publication rename from TagsModified; no consumers of the legacy FQN are known.\n */\nexport interface ParticipantTagsModified {\n /** The Participant with updated tags */\n participant?: Participant;\n /** Tags that were assigned */\n assignedTags?: Tags;\n /** Tags that were unassigned */\n unassignedTags?: Tags;\n}\n\n/** Domain event emitted when a participant completes a program. */\nexport interface ParticipantCompletedProgram {\n /**\n * ID of the participant who completed the program.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program which was completed.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who completed the program.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after completing the program. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant misses a program deadline. */\nexport interface ParticipantMissedProgramDeadline {\n /**\n * ID of the participant who missed the deadline.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program for which the deadline was missed.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who missed the deadline.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after missing the deadline. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant's program duration ends. */\nexport interface ParticipantProgramDurationEnded {\n /**\n * ID of the participant whose program duration ended.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program whose duration ended for the participant.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant whose program duration ended.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant when the program duration ended. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant is removed from a program by an administrator. */\nexport interface ParticipantRemoved {\n /**\n * ID of the participant who was removed.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program from which the participant was removed.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who was removed.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after being removed from the program. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant voluntarily leaves a program. */\nexport interface ParticipantLeft {\n /**\n * ID of the participant who left the program.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program the participant left.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who left.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after leaving the program. */\n participant?: Participant;\n}\n\nexport interface CreateParticipantRequest {\n /** Participant to create */\n participant: Participant;\n /**\n * Array of conditional fields to include in the response.\n * Use `RequestedFields.PROGRESS` to include the progress field, which requires calculating completion statistics across all program steps. Only request this field when you need current progress data, as it impacts performance.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Enum for specifying which conditional fields to include in responses.\n * Use these values in the `fields` parameter to request expensive or conditional fields.\n */\nexport enum RequestedFields {\n /** Request the progress field to be calculated and included in the response. */\n PROGRESS = 'PROGRESS',\n}\n\n/** @enumType */\nexport type RequestedFieldsWithLiterals = RequestedFields | 'PROGRESS';\n\nexport interface CreateParticipantResponse {\n /** Created participant */\n participant?: Participant;\n}\n\nexport interface UpdateParticipantRequest {\n /** Participant to update. Must include the participant ID. */\n participant: Participant;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n /**\n * Optional explicit field mask. If omitted, the API infers it from writable fields in `participant`.\n * @internal\n */\n fieldMask?: string[];\n}\n\nexport interface UpdateParticipantResponse {\n /** Updated participant */\n participant?: Participant;\n}\n\nexport interface BulkCreateParticipantsRequest {\n /**\n * List of participants to create.\n * @minSize 1\n * @maxSize 100\n */\n participants: Participant[];\n /** Whether to return entities in response or not. */\n returnEntity?: boolean;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkCreateParticipantsResponse {\n /**\n * Results of the bulk create operation.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkParticipantResult[];\n /** Metadata about the bulk action. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkParticipantResult {\n /** Metadata for the item. */\n itemMetadata?: ItemMetadata;\n /** The participant entity. Empty if `return_entity` is `false`. */\n item?: Participant;\n}\n\nexport interface ItemMetadata {\n /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface ApplicationError {\n /** Error code. */\n code?: string;\n /** Description of the error. */\n description?: string;\n /** Data related to the error. */\n data?: Record<string, any> | null;\n}\n\nexport interface BulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface BulkUpsertParticipantsMigrationRequest {\n /**\n * List of participants to create or update.\n * @minSize 1\n * @maxSize 100\n */\n participants?: ParticipantMigration[];\n}\n\nexport interface ParticipantMigration {\n /** Participant to create or update. */\n participant?: Participant;\n /**\n * Resolved step IDs to restore on participant.\n * @maxSize 5000\n * @format GUID\n */\n resolvedStepIds?: string[];\n}\n\nexport interface BulkUpsertParticipantsMigrationResponse {\n /**\n * Results of the bulk migration operation.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkParticipantMigrationResult[];\n /** Metadata about the bulk action. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkParticipantMigrationResult {\n /** Metadata for the item. */\n itemMetadata?: ItemMetadata;\n /** Action type of bulk action (INSERT OR UPDATE) for that endpoint. */\n action?: BulkActionTypeWithLiterals;\n}\n\nexport enum BulkActionType {\n /** default action type, should never be used */\n UNKNOWN_ACTION_TYPE = 'UNKNOWN_ACTION_TYPE',\n /** Action type for inserting new items. */\n INSERT = 'INSERT',\n /** Action type for updating existing items. */\n UPDATE = 'UPDATE',\n}\n\n/** @enumType */\nexport type BulkActionTypeWithLiterals =\n | BulkActionType\n | 'UNKNOWN_ACTION_TYPE'\n | 'INSERT'\n | 'UPDATE';\n\nexport interface DeleteAllParticipantsMigrationRequest {}\n\nexport interface DeleteAllParticipantsMigrationResponse {}\n\nexport interface ReindexParticipantsSearchRequest {\n /**\n * @minSize 1\n * @maxSize 1000\n * @format GUID\n */\n participantIds?: string[];\n}\n\nexport interface ReindexParticipantsSearchResponse {}\n\nexport interface SynchronizeTimeCapsuleTasksRequest {\n /**\n * Metasite whose participant finish tasks should be synchronized.\n * @format GUID\n */\n metaSiteId?: string;\n}\n\nexport interface SynchronizeTimeCapsuleTasksResponse {\n /**\n * ID of the asynchronous job that will process the request. Pass this ID to Get Async Job to track the operation status.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkCreateParticipantsForAllMembersRequest {\n /**\n * ID of the program for which to create participants for all site members in bulk.\n * @format GUID\n */\n programId: string;\n /**\n * Site member IDs to exclude from bulk participant creation. Maximum 100 member IDs can be excluded.\n * @format GUID\n * @maxSize 100\n */\n excludeMemberIds?: string[];\n}\n\nexport interface BulkCreateParticipantsForAllMembersResponse {\n /**\n * ID of the asynchronous job that will process the request. Pass this ID to Get Async Job to track the operation status.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface DeleteParticipantRequest {\n /**\n * ID of the participant to delete.\n * @format GUID\n */\n participantId: string;\n}\n\nexport interface DeleteParticipantResponse {}\n\nexport interface IssueCertificateRequest {\n /**\n * ID of the participant to issue the certificate to.\n * @format GUID\n */\n participantId: string;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface IssueCertificateResponse {\n /** Updated participant */\n participant?: Participant;\n}\n\nexport interface GetCompletionStatsRequest {\n /**\n * ID of the program to retrieve completion statistics for.\n * @format GUID\n */\n programId?: string;\n}\n\nexport interface GetCompletionStatsResponse {\n /** Number of participants that completed the program */\n completedParticipantsCount?: number;\n /** Percentage of participants that completed the program */\n completionRate?: number;\n}\n\nexport interface GetPremiumStatsRequest {}\n\nexport interface GetPremiumStatsResponse {\n /** True if site has Online Programs premium feature */\n premiumEnabled?: boolean;\n /** Count of active participants on the site */\n activeParticipantsCount?: number;\n /** Limit of active participants on a site without premium */\n activeParticipantsLimit?: number;\n}\n\nexport interface GetParticipationStatsRequest {\n /**\n * IDs of the programs to retrieve participant statistics for.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n programIds: string[];\n}\n\nexport interface GetParticipationStatsResponse {\n /**\n * Participant statistics for each distinct requested program ID.\n * @maxSize 100\n */\n participationStats?: ProgramParticipationStats[];\n}\n\nexport interface ProgramParticipationStats {\n /**\n * Program ID.\n * @format GUID\n */\n programId?: string;\n /** Number of participants with a joined or suspended enrollment, including participants who completed or failed the program. */\n participantsCount?: number;\n /** Number of participants automatically removed when the program duration ended. */\n autoRemovedCount?: number;\n}\n\nexport interface GetParticipantRequest {\n /**\n * ID of the participant to fetch.\n * @format GUID\n */\n participantId: string;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface GetParticipantResponse {\n /** The retrieved participant. */\n participant?: Participant;\n}\n\nexport interface QueryParticipantsRequest {\n /** Platformized query */\n query?: QueryV2;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface QueryV2 extends QueryV2PagingMethodOneOf {\n /** Paging options to limit and offset the number of items. */\n paging?: Paging;\n /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 100\n */\n sort?: Sorting[];\n /**\n * Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned.\n * @maxSize 100\n * @maxLength 1000\n */\n fields?: string[];\n /**\n * Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned.\n * @maxSize 100\n * @maxLength 1000\n */\n fieldsets?: string[];\n}\n\n/** @oneof */\nexport interface QueryV2PagingMethodOneOf {\n /** Paging options to limit and offset the number of items. */\n paging?: Paging;\n /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface Paging {\n /** Number of items to load. */\n limit?: number | null;\n /** Number of items to skip in the current sort order. */\n offset?: number | null;\n}\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryParticipantsResponse {\n /** List of participants matching the query. */\n participants?: Participant[];\n /** Paging metadata. */\n pagingMetadata?: PagingMetadataV2;\n}\n\nexport interface PagingMetadataV2 {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Offset that was requested. */\n offset?: number | null;\n /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */\n total?: number | null;\n /** Flag that indicates the server failed to calculate the `total` field. */\n tooManyToCount?: boolean | null;\n /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */\n cursors?: Cursors;\n /**\n * Indicates if there are more results after the current page.\n * If `true`, another page of results can be retrieved.\n * If `false`, this is the last page.\n * @internal\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface GetAccessStatusRequest {}\n\nexport interface GetAccessStatusResponse {\n /** True if participants cannot access online programs due to some limitations */\n accessBlocked?: boolean;\n}\n\nexport interface BulkUpdateParticipantTagsRequest {\n /**\n * Participant IDs to update tags for (1-100 items)\n * @minSize 1\n * @maxSize 100\n * @format GUID\n */\n participantIds: string[];\n /** Tags to assign to the Participants */\n assignTags?: Tags;\n /** Tags to unassign from the Participants */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateParticipantTagsResponse {\n /**\n * Results for each Participant\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkUpdateParticipantTagsResult[];\n /** Metadata about the bulk operation */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpdateParticipantTagsResult {\n /** Metadata for this specific item */\n itemMetadata?: ItemMetadata;\n}\n\nexport interface BulkUpdateParticipantTagsByFilterRequest {\n /** WQL filter to select Participants */\n filter: Record<string, any> | null;\n /** Tags to assign to matching Participants */\n assignTags?: Tags;\n /** Tags to unassign from matching Participants */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateParticipantTagsByFilterResponse {\n /**\n * Job ID for tracking the async operation. Pass this ID to Get Async Job to track the operation status.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface SearchParticipantsRequest {\n /** Query to search participants. */\n search?: CursorSearch;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CursorSearch extends CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * List of sort objects.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 10\n */\n sort?: Sorting[];\n /**\n * Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories.\n * @maxSize 10\n */\n aggregations?: Aggregation[];\n /** Free text to match in searchable fields. */\n search?: SearchDetails;\n /**\n * Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\n * Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\".\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Aggregation extends AggregationKindOneOf {\n /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n dateHistogram?: DateHistogramAggregation;\n /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n nested?: NestedAggregation;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n /**\n * Deprecated. Use `nested` instead.\n * @deprecated Deprecated. Use `nested` instead.\n * @replacedBy kind.nested\n * @targetRemovalDate 2024-03-30\n */\n groupBy?: GroupByAggregation;\n}\n\n/** @oneof */\nexport interface AggregationKindOneOf {\n /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n dateHistogram?: DateHistogramAggregation;\n /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n nested?: NestedAggregation;\n}\n\nexport interface RangeBucket {\n /** Inclusive lower bound of the range. Required if `to` is not provided. */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if `from` is not provided. */\n to?: number | null;\n}\n\nexport enum SortType {\n /** Number of matches in the results. */\n COUNT = 'COUNT',\n /** Alphabetically by the field value. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';\n\nexport enum SortDirection {\n /** Descending order. */\n DESC = 'DESC',\n /** Ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';\n\nexport enum MissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values in the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';\n\nexport interface IncludeMissingValuesOptions {\n /**\n * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum ScalarType {\n /** Total number of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n /**\n * Sum of values.\n * @internal\n */\n SUM = 'SUM',\n /**\n * Average of values.\n * @internal\n */\n AVG = 'AVG',\n}\n\n/** @enumType */\nexport type ScalarTypeWithLiterals =\n | ScalarType\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface ValueAggregation extends ValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: IncludeMissingValuesOptions;\n /** Sort type. */\n sortType?: SortTypeWithLiterals;\n /** Sort direction. */\n sortDirection?: SortDirectionWithLiterals;\n /**\n * Number of aggregation results to return.\n * Min: `1`\n * Max: `250`\n * Default: `10`\n */\n limit?: number | null;\n /**\n * Whether to include or exclude missing values in the aggregation results.\n * Default: `EXCLUDE`.\n */\n missingValues?: MissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface ValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: IncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationType {\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationTypeWithLiterals =\n | NestedAggregationType\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface RangeAggregation {\n /**\n * List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.\n * @maxSize 50\n */\n buckets?: RangeBucket[];\n}\n\nexport interface ScalarAggregation {\n /** Operator type for the scalar aggregation. */\n type?: ScalarTypeWithLiterals;\n}\n\nexport interface DateHistogramAggregation {\n /** Interval for date histogram aggregation. */\n interval?: IntervalWithLiterals;\n}\n\nexport enum Interval {\n YEAR = 'YEAR',\n MONTH = 'MONTH',\n WEEK = 'WEEK',\n DAY = 'DAY',\n HOUR = 'HOUR',\n MINUTE = 'MINUTE',\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type IntervalWithLiterals =\n | Interval\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface NestedAggregationItem extends NestedAggregationItemKindOneOf {\n /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n dateHistogram?: DateHistogramAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. The matching aggregation field must be passed. */\n type?: NestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationItemKindOneOf {\n /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n dateHistogram?: DateHistogramAggregation;\n}\n\nexport enum AggregationType {\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type AggregationTypeWithLiterals =\n | AggregationType\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */\nexport interface NestedAggregation {\n /**\n * Flattened list of aggregations, where each aggregation is nested within previous one.\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: NestedAggregationItem[];\n}\n\nexport interface GroupByAggregation extends GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: ValueAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /**\n * Field to aggregate by.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: ValueAggregation;\n}\n\nexport interface SearchDetails {\n /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */\n mode?: ModeWithLiterals;\n /**\n * Search term or expression.\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. */\n fuzzy?: boolean;\n}\n\nexport enum Mode {\n /** At least one of the search terms must be present. */\n OR = 'OR',\n /** All search terms must be present. */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type ModeWithLiterals = Mode | 'OR' | 'AND';\n\nexport interface SearchParticipantsResponse {\n /** Participants matching the search criteria. */\n participants?: Participant[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n /** Aggregation data in case aggregations were requested. */\n aggregationData?: AggregationData;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in current page. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n /**\n * Total number of items matching the filter.\n * Available only on the first page of *Search* results, not included in *Query* or *List* results.\n * If the Search results span multiple pages, the value of `total` will exceed the number of items returned on the first page.\n * @internal\n */\n total?: number | null;\n}\n\nexport interface AggregationData {\n /**\n * key = aggregation name (as derived from search request).\n * @maxSize 10000\n */\n results?: AggregationResults[];\n}\n\nexport interface ValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 100\n */\n value?: string;\n /** Count of entities with this value. */\n count?: number;\n}\n\nexport interface RangeAggregationResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Count of entities in this range. */\n count?: number;\n}\n\nexport interface NestedAggregationResults\n extends NestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n /**\n * User-defined name of aggregation, matches the one provided in request.\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that matches result. */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by, matches the one provided in request.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n}\n\nexport interface ValueResults {\n /**\n * List of value aggregations.\n * @maxSize 250\n */\n results?: ValueAggregationResult[];\n}\n\nexport interface RangeResults {\n /**\n * List of ranges returned in same order as requested.\n * @maxSize 50\n */\n results?: RangeAggregationResult[];\n}\n\nexport interface AggregationResultsScalarResult {\n /** Type of scalar aggregation. */\n type?: ScalarTypeWithLiterals;\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface NestedValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 1000\n */\n value?: string;\n /** Nested aggregations. */\n nestedResults?: NestedAggregationResults;\n}\n\nexport interface ValueResult {\n /**\n * Value of the field.\n * @maxLength 1000\n */\n value?: string;\n /** Count of entities with this value. */\n count?: number | null;\n}\n\nexport interface RangeResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Count of entities in this range. */\n count?: number | null;\n}\n\nexport interface ScalarResult {\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface NestedResultValue extends NestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: ValueResult;\n /** Range aggregation result. */\n range?: RangeResult;\n /** Scalar aggregation result. */\n scalar?: ScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: ValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: ValueResult;\n /** Range aggregation result. */\n range?: RangeResult;\n /** Scalar aggregation result. */\n scalar?: ScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: ValueResult;\n}\n\nexport interface Results {\n /** List of nested aggregations. */\n results?: Record<string, NestedResultValue>;\n}\n\nexport interface DateHistogramResult {\n /**\n * Date in ISO 8601 format.\n * @maxLength 100\n */\n value?: string;\n /** Count of documents in the bucket. */\n count?: number;\n}\n\nexport interface GroupByValueResults {\n /**\n * List of value aggregations.\n * @maxSize 1000\n */\n results?: NestedValueAggregationResult[];\n}\n\nexport interface DateHistogramResults {\n /**\n * List of date histogram aggregations.\n * @maxSize 200\n */\n results?: DateHistogramResult[];\n}\n\n/**\n * Results of `NESTED` aggregation type in a flattened form.\n * Aggregations in resulting array are keyed by requested aggregation `name`.\n */\nexport interface NestedResults {\n /**\n * List of nested aggregations.\n * @maxSize 1000\n */\n results?: Results[];\n}\n\nexport interface AggregationResults extends AggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results. */\n nested?: NestedResults;\n /**\n * User-defined name of aggregation as derived from search request.\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that must match provided kind as derived from search request. */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by as derived from search request.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results. */\n nested?: NestedResults;\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface Empty {}\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface AccountInfo {\n /**\n * ID of the Wix account associated with the event.\n * @format GUID\n */\n accountId?: string | null;\n /**\n * ID of the parent Wix account. Only included when accountId belongs to a child account.\n * @format GUID\n */\n parentAccountId?: string | null;\n /**\n * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n * @format GUID\n */\n siteId?: string | null;\n}\n\nexport interface ExportParticipantsStatsRequest {\n /**\n * program id to export data from\n * @format GUID\n */\n programId: string;\n}\n\nexport interface ExportParticipantsStatsResponse {}\n\n/** @docsIgnore */\nexport type CreateParticipantApplicationErrors =\n | {\n code?: 'PREMIUM_PLAN_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PARTICIPANTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkCreateParticipantsApplicationErrors =\n | {\n code?: 'MULTIPLE_PROGRAM_IDS_IN_BULK_CREATE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREMIUM_PLAN_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PARTICIPANTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type IssueCertificateApplicationErrors =\n | {\n code?: 'PARTICIPANT_NOT_ACTIVE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_CERTIFICATE_REWARD';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PARTICIPANT_NOT_COMPLETED_PROGRAM';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateParticipantTagsApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type BulkUpdateParticipantTagsByFilterApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\n description?: string;\n data?: Record<string, any>;\n};\n\nexport interface BaseEventMetadata {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface EventMetadata extends BaseEventMetadata {\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n accountInfo?: AccountInfoMetadata;\n}\n\nexport interface AccountInfoMetadata {\n /** ID of the Wix account associated with the event */\n accountId: string;\n /** ID of the Wix site associated with the event. Only included when the event is tied to a specific site. */\n siteId?: string;\n /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */\n parentAccountId?: string;\n}\n\nexport interface ParticipantCompletedProgramEnvelope {\n data: ParticipantCompletedProgram;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant completes a program.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_completed_program\n * @slug completed_program\n * @documentationMaturity preview\n */\nexport declare function onParticipantCompletedProgram(\n handler: (event: ParticipantCompletedProgramEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantCreatedEnvelope {\n entity: Participant;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant is created.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_created\n * @slug created\n * @documentationMaturity preview\n */\nexport declare function onParticipantCreated(\n handler: (event: ParticipantCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantDeletedEnvelope {\n entity: Participant;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant is deleted.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_deleted\n * @slug deleted\n * @documentationMaturity preview\n */\nexport declare function onParticipantDeleted(\n handler: (event: ParticipantDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantLeftEnvelope {\n data: ParticipantLeft;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant voluntarily leaves a program.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_left\n * @slug left\n * @documentationMaturity preview\n */\nexport declare function onParticipantLeft(\n handler: (event: ParticipantLeftEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantMissedProgramDeadlineEnvelope {\n data: ParticipantMissedProgramDeadline;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant misses a program deadline.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_missed_program_deadline\n * @slug missed_program_deadline\n * @documentationMaturity preview\n */\nexport declare function onParticipantMissedProgramDeadline(\n handler: (\n event: ParticipantMissedProgramDeadlineEnvelope\n ) => void | Promise<void>\n): void;\n\nexport interface ParticipantProgramDurationEndedEnvelope {\n data: ParticipantProgramDurationEnded;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant's program duration ends.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_program_duration_ended\n * @slug program_duration_ended\n * @documentationMaturity preview\n */\nexport declare function onParticipantProgramDurationEnded(\n handler: (\n event: ParticipantProgramDurationEndedEnvelope\n ) => void | Promise<void>\n): void;\n\nexport interface ParticipantRemovedEnvelope {\n data: ParticipantRemoved;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an administrator removes a participant from a program.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_removed\n * @slug removed\n * @documentationMaturity preview\n */\nexport declare function onParticipantRemoved(\n handler: (event: ParticipantRemovedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantTagsModifiedEnvelope {\n data: ParticipantTagsModified;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant's tags are modified.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_tags_modified\n * @slug tags_modified\n * @documentationMaturity preview\n */\nexport declare function onParticipantTagsModified(\n handler: (event: ParticipantTagsModifiedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantUpdatedEnvelope {\n entity: Participant;\n metadata: EventMetadata;\n /** @hidden */\n modifiedFields: Record<string, any>;\n}\n\n/**\n * Triggered when a participant is updated.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_updated\n * @slug updated\n * @documentationMaturity preview\n */\nexport declare function onParticipantUpdated(\n handler: (event: ParticipantUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a participant.\n *\n * Returns an error if the member is already a participant in the specified program.\n * Use UpdateParticipant to modify existing participants.\n * @param participant - Participant to create\n * @public\n * @documentationMaturity preview\n * @requiredField participant\n * @requiredField participant.enrollmentInfo\n * @requiredField participant.enrollmentInfo.pricingType\n * @requiredField participant.memberId\n * @requiredField participant.programId\n * @permissionId online_programs:participants:v3:participant:create_participant\n * @applicableIdentity APP\n * @returns Created participant\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.CreateParticipant\n */\nexport async function createParticipant(\n participant: NonNullablePaths<\n Participant,\n `enrollmentInfo` | `enrollmentInfo.pricingType` | `memberId` | `programId`,\n 3\n >,\n options?: CreateParticipantOptions\n): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n > & {\n __applicationErrorsType?: CreateParticipantApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participant: participant,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.createParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.participant!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participant: '$[0]',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participant', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateParticipantOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use `RequestedFields.PROGRESS` to include the progress field, which requires calculating completion statistics across all program steps. Only request this field when you need current progress data, as it impacts performance.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates a participant's enrollment status or enrollment pricing details.\n *\n * Use this method to suspend or resume a participant by setting `enrollment_status` to\n * `SUSPENDED` or `JOINED`. To remove a participant, use `DeleteParticipant`.\n * Progress status is calculated from the participant's resolved steps and can't be updated.\n * @param _id - Participant ID.\n * @public\n * @documentationMaturity preview\n * @requiredField _id\n * @requiredField participant\n * @requiredField participant.revision\n * @permissionId online_programs:participants:v3:participant:update_participant\n * @applicableIdentity APP\n * @returns Updated participant\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.UpdateParticipant\n */\nexport async function updateParticipant(\n _id: string,\n participant: NonNullablePaths<UpdateParticipant, `revision`, 2>,\n options?: UpdateParticipantOptions\n): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participant: { ...participant, id: _id },\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.updateParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.participant!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { participant: '$[1]' },\n explicitPathsToArguments: {\n 'participant.id': '$[0]',\n fields: '$[2].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'participant', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateParticipant {\n /**\n * Participant ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Participant revision (for optimistic concurrency control).\n * @readonly\n */\n revision?: string | null;\n /**\n * Participant creation date.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date the participant was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Member ID of the participant on the site.\n * @format GUID\n * @readonly\n */\n memberId?: string;\n /**\n * ID of the program the participant is enrolled in.\n * @format GUID\n * @readonly\n */\n programId?: string;\n /**\n * Program completion progress. This field is conditional and must be explicitly requested via `fields` parameter.\n * @readonly\n */\n progress?: Progress;\n /**\n * Certificate info for participant\n * @readonly\n */\n certificateInfo?: CertificateInfo;\n /**\n * Site member info snapshot for the participant\n * @readonly\n */\n member?: Member;\n /**\n * Last activity date of the participant in the program (can either be status change or step resolution).\n * @readonly\n */\n lastActivityDate?: Date | null;\n /**\n * Participant's enrollment status in the program.\n * @readonly\n */\n enrollmentStatus?: EnrollmentStatusWithLiterals;\n /**\n * Participant's progress status in the program.\n * @readonly\n */\n progressStatus?: ProgressStatusWithLiterals;\n /** Additional information about the participant's enrollment and completion timeframe in the program. */\n enrollmentInfo?: EnrollmentInfo;\n /** Extended fields for participant (can be used for storing custom data). */\n extendedFields?: ExtendedFields;\n /** Tags for categorizing and organizing participants. */\n tags?: Tags;\n}\n\nexport interface UpdateParticipantOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates participants in bulk.\n *\n * All participants in a single bulk create request must belong to the same program.\n * Returns an error if the member is already a participant in the specified program.\n *\n * When `pricing_type` is `SINGLE_PAYMENT`, provide `single_payment_details`.\n * When `pricing_type` is `PAID_PLAN`, provide `paid_plan_details`.\n * When `pricing_type` is `FREE_COUPON`, provide `free_coupon_details`.\n * Other pricing types (`FREE`, `ADDED_MANUALLY`) do not require details.\n * @param participants - List of participants to create.\n * @public\n * @documentationMaturity preview\n * @requiredField participants\n * @requiredField participants.enrollmentInfo\n * @requiredField participants.enrollmentInfo.pricingType\n * @requiredField participants.memberId\n * @requiredField participants.programId\n * @permissionId online_programs:participants:v3:participant:bulk_create_participants\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipants\n */\nexport async function bulkCreateParticipants(\n participants: NonNullablePaths<\n Participant,\n `enrollmentInfo` | `enrollmentInfo.pricingType` | `memberId` | `programId`,\n 3\n >[],\n options?: BulkCreateParticipantsOptions\n): Promise<\n NonNullablePaths<\n BulkCreateParticipantsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.memberId`\n | `results.${number}.item.programId`\n | `results.${number}.item.progress.totalStepsCompleted`\n | `results.${number}.item.progress.totalStepsAvailable`\n | `results.${number}.item.progress.completionPercentage`\n | `results.${number}.item.enrollmentStatus`\n | `results.${number}.item.progressStatus`\n | `results.${number}.item.enrollmentInfo.timeZone`\n | `results.${number}.item.enrollmentInfo.startDate`\n | `results.${number}.item.enrollmentInfo.pricingType`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateParticipantsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participants: participants,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkCreateParticipants(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participants: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participants', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateParticipantsOptions {\n /** Whether to return entities in response or not. */\n returnEntity?: boolean;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates participants in bulk for all site members in a program, with an optional exclusion filter.\n *\n * Participants are created in the `JOINED` state with the join path set to `ADDED`.\n * Members who are already participants in the program will be skipped.\n * Only members who are not yet participants will be added.\n * @param programId - ID of the program for which to create participants for all site members in bulk.\n * @public\n * @documentationMaturity preview\n * @requiredField programId\n * @permissionId online_programs:participants:v3:participant:bulk_create_participants_for_all_members\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipantsForAllMembers\n */\nexport async function bulkCreateParticipantsForAllMembers(\n programId: string,\n options?: BulkCreateParticipantsForAllMembersOptions\n): Promise<\n NonNullablePaths<BulkCreateParticipantsForAllMembersResponse, `jobId`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n programId: programId,\n excludeMemberIds: options?.excludeMemberIds,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkCreateParticipantsForAllMembers(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n programId: '$[0]',\n excludeMemberIds: '$[1].excludeMemberIds',\n },\n singleArgumentUnchanged: false,\n },\n ['programId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateParticipantsForAllMembersOptions {\n /**\n * Site member IDs to exclude from bulk participant creation. Maximum 100 member IDs can be excluded.\n * @format GUID\n * @maxSize 100\n */\n excludeMemberIds?: string[];\n}\n\n/**\n * Removes a participant from the program.\n *\n * The member will lose access to program content but will remain in any associated social groups.\n * @param participantId - ID of the participant to delete.\n * @public\n * @documentationMaturity preview\n * @requiredField participantId\n * @permissionId online_programs:participants:v3:participant:delete_participant\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.DeleteParticipant\n */\nexport async function deleteParticipant(participantId: string): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantId: participantId,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.deleteParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { participantId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['participantId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Manually issues a certificate to an active or finished participant.\n *\n * A finished participant has completed or failed the program, or was automatically removed.\n * The program must have a connected certificate reward. When authenticated as a site member,\n * the participant must have completed the program.\n * @param participantId - ID of the participant to issue the certificate to.\n * @public\n * @documentationMaturity preview\n * @requiredField participantId\n * @permissionId online_programs:participants:v3:participant:issue_certificate\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.IssueCertificate\n */\nexport async function issueCertificate(\n participantId: string,\n options?: IssueCertificateOptions\n): Promise<\n NonNullablePaths<\n IssueCertificateResponse,\n | `participant.memberId`\n | `participant.programId`\n | `participant.progress.totalStepsCompleted`\n | `participant.progress.totalStepsAvailable`\n | `participant.progress.completionPercentage`\n | `participant.enrollmentStatus`\n | `participant.progressStatus`\n | `participant.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participant.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participant.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participant.enrollmentInfo.timeZone`\n | `participant.enrollmentInfo.startDate`\n | `participant.enrollmentInfo.pricingType`\n | `participant.tags.privateTags.tagIds`,\n 5\n > & {\n __applicationErrorsType?: IssueCertificateApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantId: participantId,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.issueCertificate(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participantId: '$[0]',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participantId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface IssueCertificateOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Retrieves premium plan statistics for the site.\n * @public\n * @documentationMaturity preview\n * @permissionId online_programs:participants:v3:participant:get_premium_stats\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetPremiumStats\n */\nexport async function getPremiumStats(): Promise<\n NonNullablePaths<\n GetPremiumStatsResponse,\n `premiumEnabled` | `activeParticipantsCount` | `activeParticipantsLimit`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getPremiumStats(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves site-wide participant statistics for the requested programs.\n *\n * The statistics aren't limited to the caller's own participation records.\n * @param programIds - IDs of the programs to retrieve participant statistics for.\n * @public\n * @documentationMaturity preview\n * @requiredField programIds\n * @permissionId online_programs:participants:v3:participant:get_participation_stats\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetParticipationStats\n */\nexport async function getParticipationStats(\n programIds: string[]\n): Promise<\n NonNullablePaths<\n GetParticipationStatsResponse,\n | `participationStats`\n | `participationStats.${number}.programId`\n | `participationStats.${number}.participantsCount`\n | `participationStats.${number}.autoRemovedCount`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n programIds: programIds,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getParticipationStats(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { programIds: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['programIds']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Returns a participant by ID.\n * @param participantId - ID of the participant to fetch.\n * @public\n * @documentationMaturity preview\n * @requiredField participantId\n * @permissionId online_programs:participants:v3:participant:get_participant\n * @applicableIdentity APP\n * @returns The retrieved participant.\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetParticipant\n */\nexport async function getParticipant(\n participantId: string,\n options?: GetParticipantOptions\n): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantId: participantId,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.participant!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participantId: '$[0]',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participantId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetParticipantOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Queries existing participants.\n * @public\n * @documentationMaturity preview\n * @permissionId online_programs:participants:v3:participant:query_participants\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.QueryParticipants\n */\nexport function queryParticipants(\n options?: QueryParticipantsOptions\n): ParticipantsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Participant,\n 'CURSOR',\n QueryParticipantsRequest,\n QueryParticipantsResponse\n >({\n func: async (payload: QueryParticipantsRequest) => {\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.queryParticipants({\n ...payload,\n ...(options ?? {}),\n });\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n return result;\n } catch (err) {\n sideEffects?.onError?.(err);\n throw err;\n }\n },\n requestTransformer: (query: QueryParticipantsRequest['query']) => {\n const args = [query, options] as [\n QueryParticipantsRequest['query'],\n QueryParticipantsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest({\n ...args?.[1],\n query: args?.[0],\n });\n },\n responseTransformer: ({\n data,\n }: HttpResponse<QueryParticipantsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [])\n );\n\n return {\n items: transformedData?.participants,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryParticipantsOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[] | undefined;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface ParticipantsQueryResult extends QueryCursorResult {\n items: Participant[];\n query: ParticipantsQueryBuilder;\n next: () => Promise<ParticipantsQueryResult>;\n prev: () => Promise<ParticipantsQueryResult>;\n}\n\nexport interface ParticipantsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n eq: (\n propertyName:\n | '_id'\n | '_createdDate'\n | 'memberId'\n | 'programId'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ne: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ge: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n gt: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n le: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n lt: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @documentationMaturity preview */\n in: (\n propertyName:\n | '_id'\n | '_createdDate'\n | 'memberId'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @documentationMaturity preview */\n exists: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate',\n value: boolean\n ) => ParticipantsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n ascending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus'\n | 'enrollmentInfo.startDate'\n >\n ) => ParticipantsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n descending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus'\n | 'enrollmentInfo.startDate'\n >\n ) => ParticipantsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object.\n * @documentationMaturity preview\n */\n limit: (limit: number) => ParticipantsQueryBuilder;\n /** @param cursor - A pointer to specific record\n * @documentationMaturity preview\n */\n skipTo: (cursor: string) => ParticipantsQueryBuilder;\n /** @documentationMaturity preview */\n find: () => Promise<ParticipantsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.QueryParticipants\n * @requiredField query\n */\nexport async function typedQueryParticipants(\n query: ParticipantQuery,\n options?: QueryParticipantsOptions\n): Promise<\n NonNullablePaths<\n QueryParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n query: query,\n ...options,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.queryParticipants(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['query', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ParticipantQuerySpec extends QuerySpec {\n paging: 'cursor';\n wql: [\n {\n fields: ['_id'];\n operators: ['$eq', '$in'];\n sort: 'BOTH';\n },\n {\n fields: ['enrollmentStatus', 'progressStatus'];\n operators: ['$eq', '$in'];\n sort: 'BOTH';\n },\n {\n fields: ['memberId'];\n operators: ['$eq', '$in'];\n sort: 'NONE';\n },\n {\n fields: ['programId'];\n operators: ['$eq'];\n sort: 'NONE';\n },\n {\n fields: [\n '_createdDate',\n 'lastActivityDate',\n 'progress.totalStepsCompleted'\n ];\n operators: '*';\n sort: 'BOTH';\n },\n {\n fields: ['enrollmentInfo.startDate'];\n operators: ['$gt', '$gte', '$lt', '$lte'];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n Participant,\n ParticipantQuerySpec\n>;\nexport type ParticipantQuery = {\n /** \n Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonQueryWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 100 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonQueryWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n }[];\n};\n\nexport const utils = {\n query: /*#__PURE__*/ createQueryUtils<\n Participant,\n ParticipantQuerySpec,\n ParticipantQuery\n >(),\n search: /*#__PURE__*/ createSearchUtils<\n Participant,\n ParticipantSearchSpec,\n ParticipantSearch\n >(),\n};\n\n/**\n * Retrieves the access status for the current site, indicating whether participants can access\n * online programs or if access is blocked due to plan limitations or other restrictions.\n * @public\n * @documentationMaturity preview\n * @permissionId online_programs:participants:v3:participant:get_access_status\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetAccessStatus\n */\nexport async function getAccessStatus(): Promise<\n NonNullablePaths<GetAccessStatusResponse, `accessBlocked`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getAccessStatus(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Updates tags for multiple Participants by IDs.\n *\n * Allows assigning and/or unassigning tags in a single operation.\n * At least one of assign_tags or unassign_tags must be provided.\n * @param participantIds - Participant IDs to update tags for (1-100 items)\n * @public\n * @documentationMaturity preview\n * @requiredField participantIds\n * @permissionId online_programs:participants:v3:participant:bulk_update_participant_tags\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTags\n */\nexport async function bulkUpdateParticipantTags(\n participantIds: string[],\n options?: BulkUpdateParticipantTagsOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateParticipantTagsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateParticipantTagsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantIds: participantIds,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkUpdateParticipantTags(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participantIds: '$[0]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['participantIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateParticipantTagsOptions {\n /** Tags to assign to the Participants */\n assignTags?: Tags;\n /** Tags to unassign from the Participants */\n unassignTags?: Tags;\n}\n\n/**\n * Updates tags for Participants matching a filter.\n *\n * Allows assigning and/or unassigning tags for all Participants matching the filter.\n * Returns a job ID for tracking the async operation.\n * @param filter - WQL filter to select Participants\n * @public\n * @documentationMaturity preview\n * @requiredField filter\n * @permissionId online_programs:participants:v3:participant:bulk_update_participant_tags_by_filter\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTagsByFilter\n */\nexport async function bulkUpdateParticipantTagsByFilter(\n filter: Record<string, any>,\n options?: BulkUpdateParticipantTagsByFilterOptions\n): Promise<\n NonNullablePaths<BulkUpdateParticipantTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateParticipantTagsByFilterApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n filter: filter,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkUpdateParticipantTagsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateParticipantTagsByFilterOptions {\n /** Tags to assign to matching Participants */\n assignTags?: Tags;\n /** Tags to unassign from matching Participants */\n unassignTags?: Tags;\n}\n\n/**\n * Retrieves a list of participants matching the search criteria.\n *\n * Results and aggregations include only the participant records that the caller is authorized to access.\n * @param search - Query to search participants.\n * @public\n * @documentationMaturity preview\n * @requiredField search\n * @permissionId online_programs:participants:v3:participant:search_participants\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.SearchParticipants\n */\nexport async function searchParticipants(\n search: ParticipantSearch,\n options?: SearchParticipantsOptions\n): Promise<\n NonNullablePaths<\n SearchParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n search: search,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.searchParticipants(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { search: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['search', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface SearchParticipantsOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface ParticipantSearchSpec extends SearchSpec {\n searchable: [\n 'member.email',\n 'member.firstName',\n 'member.lastName',\n 'member.nickname'\n ];\n aggregatable: [\n '_createdDate',\n '_id',\n '_updatedDate',\n 'enrollmentInfo.startDate',\n 'enrollmentStatus',\n 'lastActivityDate',\n 'member.contactId',\n 'memberId',\n 'programId',\n 'progress.completionPercentage',\n 'progress.totalStepsCompleted',\n 'progressStatus'\n ];\n paging: 'cursor';\n wql: [\n {\n operators: '*';\n fields: [\n '_id',\n 'enrollmentInfo.startDate',\n 'member.contactId',\n 'member.email',\n 'member.firstName',\n 'member.lastName',\n 'member.nickname',\n 'memberId',\n 'programId',\n 'progress.completionPercentage',\n 'progress.totalStepsCompleted'\n ];\n sort: 'BOTH';\n },\n {\n operators: ['$eq', '$in', '$nin'];\n fields: ['enrollmentStatus', 'progressStatus'];\n sort: 'BOTH';\n },\n {\n operators: '*';\n fields: ['_createdDate', '_updatedDate', 'lastActivityDate'];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonSearchWithEntityContext = SearchSdkType<\n Participant,\n ParticipantSearchSpec\n>;\nexport type ParticipantSearch = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonSearchWithEntityContext['filter'] | null;\n /** \n List of sort objects.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 10 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonSearchWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonSearchWithEntityContext['sort']>[number]['order'];\n }[];\n /** \n Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories. \n @maxSize: 10 \n */\n aggregations?: {\n /** \n A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. \n */\n value?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['value'];\n /** \n A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. \n */\n range?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['range'];\n /** \n A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. \n */\n scalar?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['scalar'];\n /** \n A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. \n */\n dateHistogram?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['dateHistogram'];\n /** \n A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. \n */\n nested?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['nested'];\n /** \n Aggregation name, returned in `aggregations.results.name`. \n @maxLength: 100 \n */\n name?:\n | NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['name']\n | null;\n /** \n Type of aggregation to perform. Must align with the corresponding aggregation field. \n */\n type?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['type'];\n /** \n Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n @maxLength: 200 \n */\n fieldPath?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['fieldPath'];\n /** \n Deprecated. Use `nested` instead. \n @deprecated: Deprecated. Use `nested` instead.,\n @replacedBy: kind.nested,\n @targetRemovalDate: 2024-03-30 \n */\n groupBy?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['groupBy'];\n }[];\n /** \n Free text to match in searchable fields. \n */\n search?: {\n /** \n Search mode. Defines the search logic for combining multiple terms in the `expression`. \n */\n mode?: NonNullable<CommonSearchWithEntityContext['search']>['mode'];\n /** \n Search term or expression. \n @maxLength: 100 \n */\n expression?:\n | NonNullable<CommonSearchWithEntityContext['search']>['expression']\n | null;\n /** \n Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n @maxLength: 200,\n @maxSize: 20 \n */\n fields?: NonNullable<CommonSearchWithEntityContext['search']>['fields'];\n /** \n Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. \n */\n fuzzy?: NonNullable<CommonSearchWithEntityContext['search']>['fuzzy'];\n };\n /** \n Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\n Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\". \n @maxLength: 50 \n */\n timeZone?: CommonSearchWithEntityContext['timeZone'] | null;\n};\n\n/**\n * Exports participant data and step completion statistics for a program as a CSV file.\n * The export includes participant details, progress, status, and completion dates for each step.\n *\n * This method initiates an asynchronous export. Subscribe to the `ParticipantExportsFinished`\n * event to receive the download URL when the export completes.\n * @param programId - program id to export data from\n * @internal\n * @documentationMaturity preview\n * @requiredField programId\n * @permissionId online_programs:participants:v3:participant:export_participants_stats\n * @fqn wix.onlineprograms.participants.v3.ParticipantExportsService.ExportParticipantsStats\n */\nexport async function exportParticipantsStats(\n programId: string\n): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n programId: programId,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.exportParticipantsStats(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { programId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['programId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixOnlineprogramsParticipantsV3ParticipantExportsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'bo._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wixbo.ai': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wix-bo.com': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n _: [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/online-programs/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/stats/premium',\n destPath: '/v3/stats/premium',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nfunction resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'bo._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wixbo.ai': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wix-bo.com': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n _: [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/online-programs/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/stats/premium',\n destPath: '/v3/stats/premium',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_online-programs_participants';\n\n/**\n * Creates a participant.\n *\n * Returns an error if the member is already a participant in the specified program.\n * Use UpdateParticipant to modify existing participants.\n */\nexport function createParticipant(payload: object): RequestOptionsFactory<any> {\n function __createParticipant({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.CreateParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createParticipant;\n}\n\n/**\n * Updates a participant's enrollment status or enrollment pricing details.\n *\n * Use this method to suspend or resume a participant by setting `enrollment_status` to\n * `SUSPENDED` or `JOINED`. To remove a participant, use `DeleteParticipant`.\n * Progress status is calculated from the participant's resolved steps and can't be updated.\n */\nexport function updateParticipant(payload: object): RequestOptionsFactory<any> {\n function __updateParticipant({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'PATCH' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.UpdateParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participant.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateParticipant;\n}\n\n/**\n * Creates participants in bulk.\n *\n * All participants in a single bulk create request must belong to the same program.\n * Returns an error if the member is already a participant in the specified program.\n *\n * When `pricing_type` is `SINGLE_PAYMENT`, provide `single_payment_details`.\n * When `pricing_type` is `PAID_PLAN`, provide `paid_plan_details`.\n * When `pricing_type` is `FREE_COUPON`, provide `free_coupon_details`.\n * Other pricing types (`FREE`, `ADDED_MANUALLY`) do not require details.\n */\nexport function bulkCreateParticipants(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateParticipants({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'participants.createdDate' },\n { path: 'participants.updatedDate' },\n { path: 'participants.lastActivityDate' },\n { path: 'participants.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [{ path: 'participants.progress.completionPercentage' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipants',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/create',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.lastActivityDate' },\n { path: 'results.item.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'results.item.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkCreateParticipants;\n}\n\n/**\n * Creates participants in bulk for all site members in a program, with an optional exclusion filter.\n *\n * Participants are created in the `JOINED` state with the join path set to `ADDED`.\n * Members who are already participants in the program will be skipped.\n * Only members who are not yet participants will be added.\n */\nexport function bulkCreateParticipantsForAllMembers(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateParticipantsForAllMembers({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipantsForAllMembers',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/create-for-all-members',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkCreateParticipantsForAllMembers;\n}\n\n/**\n * Removes a participant from the program.\n *\n * The member will lose access to program content but will remain in any associated social groups.\n */\nexport function deleteParticipant(payload: object): RequestOptionsFactory<any> {\n function __deleteParticipant({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'DELETE' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.DeleteParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participantId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteParticipant;\n}\n\n/**\n * Manually issues a certificate to an active or finished participant.\n *\n * A finished participant has completed or failed the program, or was automatically removed.\n * The program must have a connected certificate reward. When authenticated as a site member,\n * the participant must have completed the program.\n */\nexport function issueCertificate(payload: object): RequestOptionsFactory<any> {\n function __issueCertificate({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.IssueCertificate',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participantId}/issue-certificate',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __issueCertificate;\n}\n\n/** Retrieves premium plan statistics for the site. */\nexport function getPremiumStats(payload: object): RequestOptionsFactory<any> {\n function __getPremiumStats({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetPremiumStats',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/stats/premium',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getPremiumStats;\n}\n\n/**\n * Retrieves site-wide participant statistics for the requested programs.\n *\n * The statistics aren't limited to the caller's own participation records.\n */\nexport function getParticipationStats(\n payload: object\n): RequestOptionsFactory<any> {\n function __getParticipationStats({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetParticipationStats',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/stats',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __getParticipationStats;\n}\n\n/** Returns a participant by ID. */\nexport function getParticipant(payload: object): RequestOptionsFactory<any> {\n function __getParticipant({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participantId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getParticipant;\n}\n\n/** Queries existing participants. */\nexport function queryParticipants(payload: object): RequestOptionsFactory<any> {\n function __queryParticipants({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.QueryParticipants',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/query',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participants.createdDate' },\n { path: 'participants.updatedDate' },\n { path: 'participants.lastActivityDate' },\n { path: 'participants.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participants.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __queryParticipants;\n}\n\n/**\n * Retrieves the access status for the current site, indicating whether participants can access\n * online programs or if access is blocked due to plan limitations or other restrictions.\n */\nexport function getAccessStatus(payload: object): RequestOptionsFactory<any> {\n function __getAccessStatus({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetAccessStatus',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/access',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getAccessStatus;\n}\n\n/**\n * Updates tags for multiple Participants by IDs.\n *\n * Allows assigning and/or unassigning tags in a single operation.\n * At least one of assign_tags or unassign_tags must be provided.\n */\nexport function bulkUpdateParticipantTags(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateParticipantTags({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTags',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/update-tags',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateParticipantTags;\n}\n\n/**\n * Updates tags for Participants matching a filter.\n *\n * Allows assigning and/or unassigning tags for all Participants matching the filter.\n * Returns a job ID for tracking the async operation.\n */\nexport function bulkUpdateParticipantTagsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateParticipantTagsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTagsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/update-tags-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateParticipantTagsByFilter;\n}\n\n/**\n * Retrieves a list of participants matching the search criteria.\n *\n * Results and aggregations include only the participant records that the caller is authorized to access.\n */\nexport function searchParticipants(\n payload: object\n): RequestOptionsFactory<any> {\n function __searchParticipants({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'search.aggregations.range.buckets.from' },\n { path: 'search.aggregations.range.buckets.to' },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.from',\n },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.to',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.SearchParticipants',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/search',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participants.createdDate' },\n { path: 'participants.updatedDate' },\n { path: 'participants.lastActivityDate' },\n { path: 'participants.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'participants.progress.completionPercentage' },\n { path: 'aggregationData.results.scalar.value' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.scalar.value',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.scalar.value',\n },\n { path: 'aggregationData.results.ranges.results.from' },\n { path: 'aggregationData.results.ranges.results.to' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.from',\n },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.to',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.from',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.to',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __searchParticipants;\n}\n\n/**\n * Exports participant data and step completion statistics for a program as a CSV file.\n * The export includes participant details, progress, status, and completion dates for each step.\n *\n * This method initiates an asynchronous export. Subscribe to the `ParticipantExportsFinished`\n * event to receive the download URL when the export completes.\n */\nexport function exportParticipantsStats(\n payload: object\n): RequestOptionsFactory<any> {\n function __exportParticipantsStats({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantExportsService.ExportParticipantsStats',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantExportsServiceUrl({\n protoPath: '/v3/participants/export/{programId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __exportParticipantsStats;\n}\n","import {\n createParticipant as publicCreateParticipant,\n updateParticipant as publicUpdateParticipant,\n bulkCreateParticipants as publicBulkCreateParticipants,\n bulkCreateParticipantsForAllMembers as publicBulkCreateParticipantsForAllMembers,\n deleteParticipant as publicDeleteParticipant,\n issueCertificate as publicIssueCertificate,\n getPremiumStats as publicGetPremiumStats,\n getParticipationStats as publicGetParticipationStats,\n getParticipant as publicGetParticipant,\n queryParticipants as publicQueryParticipants,\n typedQueryParticipants as publicTypedQueryParticipants,\n getAccessStatus as publicGetAccessStatus,\n bulkUpdateParticipantTags as publicBulkUpdateParticipantTags,\n bulkUpdateParticipantTagsByFilter as publicBulkUpdateParticipantTagsByFilter,\n searchParticipants as publicSearchParticipants,\n exportParticipantsStats as publicExportParticipantsStats,\n} from './online-programs-participants-v3-participant-participants.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { createEventModule } from '@wix/sdk-runtime/event-definition-modules';\nimport {\n BuildRESTFunction,\n MaybeContext,\n BuildEventDefinition,\n} from '@wix/sdk-types';\nimport { HttpClient } from '@wix/sdk-types';\nimport { createQueryOverloadRouter } from '@wix/sdk-runtime/query-method-router';\nimport {\n ParticipantQuery,\n ParticipantsQueryBuilder,\n QueryParticipantsOptions,\n typedQueryParticipants as universalTypedQueryParticipants,\n} from './online-programs-participants-v3-participant-participants.universal.js';\nimport { onParticipantCompletedProgram as publicOnParticipantCompletedProgram } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantCreated as publicOnParticipantCreated } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantDeleted as publicOnParticipantDeleted } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantLeft as publicOnParticipantLeft } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantMissedProgramDeadline as publicOnParticipantMissedProgramDeadline } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantProgramDurationEnded as publicOnParticipantProgramDurationEnded } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantRemoved as publicOnParticipantRemoved } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantTagsModified as publicOnParticipantTagsModified } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantUpdated as publicOnParticipantUpdated } from './online-programs-participants-v3-participant-participants.public.js';\n\nfunction customQueryParticipants(httpClient: HttpClient) {\n const router = /*#__PURE__*/ createQueryOverloadRouter({\n builderQueryFunction: (options?: QueryParticipantsOptions) =>\n publicQueryParticipants(httpClient)(options),\n typedQueryFunction: (\n query: ParticipantQuery,\n options?: QueryParticipantsOptions\n ) => publicTypedQueryParticipants(httpClient)(query, options),\n hasOptionsParameter: true,\n });\n\n function overloadedQuery(\n query: ParticipantQuery,\n options?: QueryParticipantsOptions\n ): ReturnType<typeof universalTypedQueryParticipants>;\n function overloadedQuery(\n options?: QueryParticipantsOptions\n ): ParticipantsQueryBuilder;\n function overloadedQuery(\n queryOrOptions?: ParticipantQuery | QueryParticipantsOptions,\n options?: QueryParticipantsOptions\n ): any {\n return router(...arguments);\n }\n\n return overloadedQuery;\n}\n\nexport const createParticipant: MaybeContext<\n BuildRESTFunction<typeof publicCreateParticipant> &\n typeof publicCreateParticipant\n> = /*#__PURE__*/ createRESTModule(publicCreateParticipant);\nexport const updateParticipant: MaybeContext<\n BuildRESTFunction<typeof publicUpdateParticipant> &\n typeof publicUpdateParticipant\n> = /*#__PURE__*/ createRESTModule(publicUpdateParticipant);\nexport const bulkCreateParticipants: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateParticipants> &\n typeof publicBulkCreateParticipants\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateParticipants);\nexport const bulkCreateParticipantsForAllMembers: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateParticipantsForAllMembers> &\n typeof publicBulkCreateParticipantsForAllMembers\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateParticipantsForAllMembers);\nexport const deleteParticipant: MaybeContext<\n BuildRESTFunction<typeof publicDeleteParticipant> &\n typeof publicDeleteParticipant\n> = /*#__PURE__*/ createRESTModule(publicDeleteParticipant);\nexport const issueCertificate: MaybeContext<\n BuildRESTFunction<typeof publicIssueCertificate> &\n typeof publicIssueCertificate\n> = /*#__PURE__*/ createRESTModule(publicIssueCertificate);\nexport const getPremiumStats: MaybeContext<\n BuildRESTFunction<typeof publicGetPremiumStats> & typeof publicGetPremiumStats\n> = /*#__PURE__*/ createRESTModule(publicGetPremiumStats);\nexport const getParticipationStats: MaybeContext<\n BuildRESTFunction<typeof publicGetParticipationStats> &\n typeof publicGetParticipationStats\n> = /*#__PURE__*/ createRESTModule(publicGetParticipationStats);\nexport const getParticipant: MaybeContext<\n BuildRESTFunction<typeof publicGetParticipant> & typeof publicGetParticipant\n> = /*#__PURE__*/ createRESTModule(publicGetParticipant);\nexport const getAccessStatus: MaybeContext<\n BuildRESTFunction<typeof publicGetAccessStatus> & typeof publicGetAccessStatus\n> = /*#__PURE__*/ createRESTModule(publicGetAccessStatus);\nexport const bulkUpdateParticipantTags: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateParticipantTags> &\n typeof publicBulkUpdateParticipantTags\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateParticipantTags);\nexport const bulkUpdateParticipantTagsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateParticipantTagsByFilter> &\n typeof publicBulkUpdateParticipantTagsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateParticipantTagsByFilter);\nexport const searchParticipants: MaybeContext<\n BuildRESTFunction<typeof publicSearchParticipants> &\n typeof publicSearchParticipants\n> = /*#__PURE__*/ createRESTModule(publicSearchParticipants);\n/** @internal */\nexport const exportParticipantsStats: MaybeContext<\n BuildRESTFunction<typeof publicExportParticipantsStats> &\n typeof publicExportParticipantsStats\n> = /*#__PURE__*/ createRESTModule(publicExportParticipantsStats);\nexport const queryParticipants: MaybeContext<\n BuildRESTFunction<typeof customQueryParticipants> &\n typeof customQueryParticipants\n> = /*#__PURE__*/ createRESTModule(customQueryParticipants);\n/**\n * Triggered when a participant completes a program.\n */\nexport const onParticipantCompletedProgram: BuildEventDefinition<\n typeof publicOnParticipantCompletedProgram\n> &\n typeof publicOnParticipantCompletedProgram = /*#__PURE__*/ createEventModule(\n publicOnParticipantCompletedProgram\n);\n/**\n * Triggered when a participant is created.\n */\nexport const onParticipantCreated: BuildEventDefinition<\n typeof publicOnParticipantCreated\n> &\n typeof publicOnParticipantCreated = /*#__PURE__*/ createEventModule(\n publicOnParticipantCreated\n);\n/**\n * Triggered when a participant is deleted.\n */\nexport const onParticipantDeleted: BuildEventDefinition<\n typeof publicOnParticipantDeleted\n> &\n typeof publicOnParticipantDeleted = /*#__PURE__*/ createEventModule(\n publicOnParticipantDeleted\n);\n/**\n * Triggered when a participant voluntarily leaves a program.\n */\nexport const onParticipantLeft: BuildEventDefinition<\n typeof publicOnParticipantLeft\n> &\n typeof publicOnParticipantLeft = /*#__PURE__*/ createEventModule(\n publicOnParticipantLeft\n);\n/**\n * Triggered when a participant misses a program deadline.\n */\nexport const onParticipantMissedProgramDeadline: BuildEventDefinition<\n typeof publicOnParticipantMissedProgramDeadline\n> &\n typeof publicOnParticipantMissedProgramDeadline =\n /*#__PURE__*/ createEventModule(publicOnParticipantMissedProgramDeadline);\n/**\n * Triggered when a participant's program duration ends.\n */\nexport const onParticipantProgramDurationEnded: BuildEventDefinition<\n typeof publicOnParticipantProgramDurationEnded\n> &\n typeof publicOnParticipantProgramDurationEnded =\n /*#__PURE__*/ createEventModule(publicOnParticipantProgramDurationEnded);\n/**\n * Triggered when an administrator removes a participant from a program.\n */\nexport const onParticipantRemoved: BuildEventDefinition<\n typeof publicOnParticipantRemoved\n> &\n typeof publicOnParticipantRemoved = /*#__PURE__*/ createEventModule(\n publicOnParticipantRemoved\n);\n/**\n * Triggered when a participant's tags are modified.\n */\nexport const onParticipantTagsModified: BuildEventDefinition<\n typeof publicOnParticipantTagsModified\n> &\n typeof publicOnParticipantTagsModified = /*#__PURE__*/ createEventModule(\n publicOnParticipantTagsModified\n);\n/**\n * Triggered when a participant is updated.\n */\nexport const onParticipantUpdated: BuildEventDefinition<\n typeof publicOnParticipantUpdated\n> &\n typeof publicOnParticipantUpdated = /*#__PURE__*/ createEventModule(\n publicOnParticipantUpdated\n);\n\nexport {\n PricingType,\n EnrollmentStatus,\n ProgressStatus,\n RequestedFields,\n BulkActionType,\n SortOrder,\n SortType,\n SortDirection,\n MissingValues,\n ScalarType,\n NestedAggregationType,\n Interval,\n AggregationType,\n Mode,\n WebhookIdentityType,\n} from './online-programs-participants-v3-participant-participants.universal.js';\nexport {\n Participant,\n SinglePaymentDetails,\n PaidPlanDetails,\n FreeCouponDetails,\n Progress,\n CertificateInfo,\n Member,\n EnrollmentInfo,\n EnrollmentInfoPricingTypeDetailsOneOf,\n ExtendedFields,\n Tags,\n TagList,\n ReindexMessage,\n ReindexMessageActionOneOf,\n Upsert,\n Delete,\n Schema,\n ParticipantTagsModified,\n ParticipantCompletedProgram,\n ParticipantMissedProgramDeadline,\n ParticipantProgramDurationEnded,\n ParticipantRemoved,\n ParticipantLeft,\n CreateParticipantRequest,\n CreateParticipantResponse,\n UpdateParticipantRequest,\n UpdateParticipantResponse,\n BulkCreateParticipantsRequest,\n BulkCreateParticipantsResponse,\n BulkParticipantResult,\n ItemMetadata,\n ApplicationError,\n BulkActionMetadata,\n BulkUpsertParticipantsMigrationRequest,\n ParticipantMigration,\n BulkUpsertParticipantsMigrationResponse,\n BulkParticipantMigrationResult,\n DeleteAllParticipantsMigrationRequest,\n DeleteAllParticipantsMigrationResponse,\n ReindexParticipantsSearchRequest,\n ReindexParticipantsSearchResponse,\n SynchronizeTimeCapsuleTasksRequest,\n SynchronizeTimeCapsuleTasksResponse,\n BulkCreateParticipantsForAllMembersRequest,\n BulkCreateParticipantsForAllMembersResponse,\n DeleteParticipantRequest,\n DeleteParticipantResponse,\n IssueCertificateRequest,\n IssueCertificateResponse,\n GetCompletionStatsRequest,\n GetCompletionStatsResponse,\n GetPremiumStatsRequest,\n GetPremiumStatsResponse,\n GetParticipationStatsRequest,\n GetParticipationStatsResponse,\n ProgramParticipationStats,\n GetParticipantRequest,\n GetParticipantResponse,\n QueryParticipantsRequest,\n QueryV2,\n QueryV2PagingMethodOneOf,\n Sorting,\n Paging,\n CursorPaging,\n QueryParticipantsResponse,\n PagingMetadataV2,\n Cursors,\n GetAccessStatusRequest,\n GetAccessStatusResponse,\n BulkUpdateParticipantTagsRequest,\n BulkUpdateParticipantTagsResponse,\n BulkUpdateParticipantTagsResult,\n BulkUpdateParticipantTagsByFilterRequest,\n BulkUpdateParticipantTagsByFilterResponse,\n SearchParticipantsRequest,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Aggregation,\n AggregationKindOneOf,\n RangeBucket,\n IncludeMissingValuesOptions,\n ValueAggregation,\n ValueAggregationOptionsOneOf,\n RangeAggregation,\n ScalarAggregation,\n DateHistogramAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregation,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n SearchDetails,\n SearchParticipantsResponse,\n CursorPagingMetadata,\n AggregationData,\n ValueAggregationResult,\n RangeAggregationResult,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n ValueResults,\n RangeResults,\n AggregationResultsScalarResult,\n NestedValueAggregationResult,\n ValueResult,\n RangeResult,\n ScalarResult,\n NestedResultValue,\n NestedResultValueResultOneOf,\n Results,\n DateHistogramResult,\n GroupByValueResults,\n DateHistogramResults,\n NestedResults,\n AggregationResults,\n AggregationResultsResultOneOf,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n Empty,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n AccountInfo,\n ExportParticipantsStatsRequest,\n ExportParticipantsStatsResponse,\n BaseEventMetadata,\n EventMetadata,\n AccountInfoMetadata,\n ParticipantCompletedProgramEnvelope,\n ParticipantCreatedEnvelope,\n ParticipantDeletedEnvelope,\n ParticipantLeftEnvelope,\n ParticipantMissedProgramDeadlineEnvelope,\n ParticipantProgramDurationEndedEnvelope,\n ParticipantRemovedEnvelope,\n ParticipantTagsModifiedEnvelope,\n ParticipantUpdatedEnvelope,\n CreateParticipantOptions,\n UpdateParticipant,\n UpdateParticipantOptions,\n BulkCreateParticipantsOptions,\n BulkCreateParticipantsForAllMembersOptions,\n IssueCertificateOptions,\n GetParticipantOptions,\n QueryParticipantsOptions,\n ParticipantsQueryResult,\n ParticipantsQueryBuilder,\n ParticipantQuerySpec,\n BulkUpdateParticipantTagsOptions,\n BulkUpdateParticipantTagsByFilterOptions,\n SearchParticipantsOptions,\n ParticipantSearchSpec,\n} from './online-programs-participants-v3-participant-participants.universal.js';\nexport { utils } from './online-programs-participants-v3-participant-participants.universal.js';\nexport {\n PricingTypeWithLiterals,\n EnrollmentStatusWithLiterals,\n ProgressStatusWithLiterals,\n RequestedFieldsWithLiterals,\n BulkActionTypeWithLiterals,\n SortOrderWithLiterals,\n SortTypeWithLiterals,\n SortDirectionWithLiterals,\n MissingValuesWithLiterals,\n ScalarTypeWithLiterals,\n NestedAggregationTypeWithLiterals,\n IntervalWithLiterals,\n AggregationTypeWithLiterals,\n ModeWithLiterals,\n WebhookIdentityTypeWithLiterals,\n CreateParticipantApplicationErrors,\n BulkCreateParticipantsApplicationErrors,\n IssueCertificateApplicationErrors,\n BulkUpdateParticipantTagsApplicationErrors,\n BulkUpdateParticipantTagsByFilterApplicationErrors,\n CommonQueryWithEntityContext,\n ParticipantQuery,\n CommonSearchWithEntityContext,\n ParticipantSearch,\n} from './online-programs-participants-v3-participant-participants.universal.js';\n"],"mappings":"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","names":["bulkCreateParticipants","bulkCreateParticipantsForAllMembers","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","createParticipant","deleteParticipant","exportParticipantsStats","getAccessStatus","getParticipant","getParticipationStats","getPremiumStats","issueCertificate","onParticipantCompletedProgram","onParticipantCreated","onParticipantDeleted","onParticipantLeft","onParticipantMissedProgramDeadline","onParticipantProgramDurationEnded","onParticipantRemoved","onParticipantTagsModified","onParticipantUpdated","queryParticipants","searchParticipants","updateParticipant","import_rename_all_nested_keys","import_float","import_timestamp","import_transform_paths","import_float","import_timestamp","import_rest_modules","payload","import_transform_paths","PricingType","EnrollmentStatus","ProgressStatus","RequestedFields","BulkActionType","SortOrder","SortType","SortDirection","MissingValues","ScalarType","NestedAggregationType","Interval","AggregationType","Mode","WebhookIdentityType","createParticipant","sdkTransformError","updateParticipant","bulkCreateParticipants","bulkCreateParticipantsForAllMembers","deleteParticipant","issueCertificate","getPremiumStats","getParticipationStats","getParticipant","queryParticipants","getAccessStatus","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","searchParticipants","exportParticipantsStats","createParticipant","updateParticipant","bulkCreateParticipants","bulkCreateParticipantsForAllMembers","deleteParticipant","issueCertificate","getPremiumStats","getParticipationStats","getParticipant","queryParticipants","typedQueryParticipants","getAccessStatus","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","searchParticipants","exportParticipantsStats","import_rest_modules","queryParticipants","typedQueryParticipants","createParticipant","updateParticipant","bulkCreateParticipants","bulkCreateParticipantsForAllMembers","deleteParticipant","issueCertificate","getPremiumStats","getParticipationStats","getParticipant","getAccessStatus","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","searchParticipants","exportParticipantsStats","onParticipantCompletedProgram","onParticipantCreated","onParticipantDeleted","onParticipantLeft","onParticipantMissedProgramDeadline","onParticipantProgramDurationEnded","onParticipantRemoved","onParticipantTagsModified","onParticipantUpdated"]}
|
|
1
|
+
{"version":3,"sources":["../../index.ts","../../src/online-programs-participants-v3-participant-participants.public.ts","../../src/online-programs-participants-v3-participant-participants.universal.ts","../../src/online-programs-participants-v3-participant-participants.http.ts","../../src/online-programs-participants-v3-participant-participants.context.ts"],"sourcesContent":["export * from './src/online-programs-participants-v3-participant-participants.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n BulkCreateParticipantsApplicationErrors,\n BulkCreateParticipantsForAllMembersOptions,\n BulkCreateParticipantsForAllMembersResponse,\n BulkCreateParticipantsOptions,\n BulkCreateParticipantsResponse,\n BulkUpdateParticipantTagsApplicationErrors,\n BulkUpdateParticipantTagsByFilterApplicationErrors,\n BulkUpdateParticipantTagsByFilterOptions,\n BulkUpdateParticipantTagsByFilterResponse,\n BulkUpdateParticipantTagsOptions,\n BulkUpdateParticipantTagsResponse,\n CreateParticipantApplicationErrors,\n CreateParticipantOptions,\n GetAccessStatusResponse,\n GetCertificateDownloadUrlApplicationErrors,\n GetCertificateDownloadUrlResponse,\n GetParticipantOptions,\n GetParticipationStatsResponse,\n GetPremiumStatsResponse,\n IssueCertificateApplicationErrors,\n IssueCertificateOptions,\n IssueCertificateResponse,\n Participant,\n ParticipantCompletedProgramEnvelope,\n ParticipantCreatedEnvelope,\n ParticipantDeletedEnvelope,\n ParticipantLeftEnvelope,\n ParticipantMissedProgramDeadlineEnvelope,\n ParticipantProgramDurationEndedEnvelope,\n ParticipantQuery,\n ParticipantRemovedEnvelope,\n ParticipantSearch,\n ParticipantTagsModifiedEnvelope,\n ParticipantUpdatedEnvelope,\n ParticipantsQueryBuilder,\n QueryParticipantsOptions,\n QueryParticipantsResponse,\n SearchParticipantsOptions,\n SearchParticipantsResponse,\n UpdateParticipant,\n UpdateParticipantOptions,\n bulkCreateParticipants as universalBulkCreateParticipants,\n bulkCreateParticipantsForAllMembers as universalBulkCreateParticipantsForAllMembers,\n bulkUpdateParticipantTags as universalBulkUpdateParticipantTags,\n bulkUpdateParticipantTagsByFilter as universalBulkUpdateParticipantTagsByFilter,\n createParticipant as universalCreateParticipant,\n deleteParticipant as universalDeleteParticipant,\n exportParticipantsStats as universalExportParticipantsStats,\n getAccessStatus as universalGetAccessStatus,\n getCertificateDownloadUrl as universalGetCertificateDownloadUrl,\n getParticipant as universalGetParticipant,\n getParticipationStats as universalGetParticipationStats,\n getPremiumStats as universalGetPremiumStats,\n issueCertificate as universalIssueCertificate,\n queryParticipants as universalQueryParticipants,\n searchParticipants as universalSearchParticipants,\n typedQueryParticipants as universalTypedQueryParticipants,\n updateParticipant as universalUpdateParticipant,\n} from './online-programs-participants-v3-participant-participants.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/online-programs' };\n\nexport function createParticipant(\n httpClient: HttpClient\n): CreateParticipantSignature {\n return (\n participant: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >,\n options?: CreateParticipantOptions\n ) =>\n universalCreateParticipant(\n participant,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateParticipantSignature {\n /**\n * Creates a participant.\n *\n * Returns an error if the member is already a participant in the specified program.\n * Use UpdateParticipant to modify existing participants.\n * @param - Participant to create\n * @returns Created participant\n */\n (\n participant: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >,\n options?: CreateParticipantOptions\n ): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n > & {\n __applicationErrorsType?: CreateParticipantApplicationErrors;\n }\n >;\n}\n\nexport function updateParticipant(\n httpClient: HttpClient\n): UpdateParticipantSignature {\n return (\n _id: string,\n participant: NonNullablePaths<UpdateParticipant, `revision`, 2>,\n options?: UpdateParticipantOptions\n ) =>\n universalUpdateParticipant(\n _id,\n participant,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateParticipantSignature {\n /**\n * Updates a participant's enrollment status or enrollment pricing details.\n *\n * Use this method to suspend or resume a participant by setting `enrollment_status` to\n * `SUSPENDED` or `JOINED`. To remove a participant, use `DeleteParticipant`.\n * Progress status is calculated from the participant's resolved steps and can't be updated.\n * @param - Participant ID.\n * @returns Updated participant\n */\n (\n _id: string,\n participant: NonNullablePaths<UpdateParticipant, `revision`, 2>,\n options?: UpdateParticipantOptions\n ): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n >;\n}\n\nexport function bulkCreateParticipants(\n httpClient: HttpClient\n): BulkCreateParticipantsSignature {\n return (\n participants: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >[],\n options?: BulkCreateParticipantsOptions\n ) =>\n universalBulkCreateParticipants(\n participants,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateParticipantsSignature {\n /**\n * Creates participants in bulk.\n *\n * All participants in a single bulk create request must belong to the same program.\n * Returns an error if the member is already a participant in the specified program.\n *\n * When `pricing_type` is `SINGLE_PAYMENT`, provide `single_payment_details`.\n * When `pricing_type` is `PAID_PLAN`, provide `paid_plan_details`.\n * When `pricing_type` is `FREE_COUPON`, provide `free_coupon_details`.\n * Other pricing types (`FREE`, `ADDED_MANUALLY`) do not require details.\n * @param - List of participants to create.\n */\n (\n participants: NonNullablePaths<\n Participant,\n | `enrollmentInfo`\n | `enrollmentInfo.pricingType`\n | `memberId`\n | `programId`,\n 3\n >[],\n options?: BulkCreateParticipantsOptions\n ): Promise<\n NonNullablePaths<\n BulkCreateParticipantsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.memberId`\n | `results.${number}.item.programId`\n | `results.${number}.item.progress.totalStepsCompleted`\n | `results.${number}.item.progress.totalStepsAvailable`\n | `results.${number}.item.progress.completionPercentage`\n | `results.${number}.item.enrollmentStatus`\n | `results.${number}.item.progressStatus`\n | `results.${number}.item.enrollmentInfo.timeZone`\n | `results.${number}.item.enrollmentInfo.startDate`\n | `results.${number}.item.enrollmentInfo.pricingType`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateParticipantsApplicationErrors;\n }\n >;\n}\n\nexport function bulkCreateParticipantsForAllMembers(\n httpClient: HttpClient\n): BulkCreateParticipantsForAllMembersSignature {\n return (\n programId: string,\n options?: BulkCreateParticipantsForAllMembersOptions\n ) =>\n universalBulkCreateParticipantsForAllMembers(\n programId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateParticipantsForAllMembersSignature {\n /**\n * Creates participants in bulk for all site members in a program, with an optional exclusion filter.\n *\n * Participants are created in the `JOINED` state with the join path set to `ADDED`.\n * Members who are already participants in the program will be skipped.\n * Only members who are not yet participants will be added.\n * @param - ID of the program for which to create participants for all site members in bulk.\n */\n (\n programId: string,\n options?: BulkCreateParticipantsForAllMembersOptions\n ): Promise<\n NonNullablePaths<BulkCreateParticipantsForAllMembersResponse, `jobId`, 2>\n >;\n}\n\nexport function deleteParticipant(\n httpClient: HttpClient\n): DeleteParticipantSignature {\n return (participantId: string) =>\n universalDeleteParticipant(\n participantId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteParticipantSignature {\n /**\n * Removes a participant from the program.\n *\n * The member will lose access to program content but will remain in any associated social groups.\n * @param - ID of the participant to delete.\n */\n (participantId: string): Promise<void>;\n}\n\nexport function issueCertificate(\n httpClient: HttpClient\n): IssueCertificateSignature {\n return (participantId: string, options?: IssueCertificateOptions) =>\n universalIssueCertificate(\n participantId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface IssueCertificateSignature {\n /**\n * Manually issues a certificate to an active or finished participant.\n *\n * A finished participant has completed or failed the program, or was automatically removed.\n * The program must have a connected certificate reward. When authenticated as a site member,\n * the participant must have completed the program.\n * @param - ID of the participant to issue the certificate to.\n */\n (participantId: string, options?: IssueCertificateOptions): Promise<\n NonNullablePaths<\n IssueCertificateResponse,\n | `participant.memberId`\n | `participant.programId`\n | `participant.progress.totalStepsCompleted`\n | `participant.progress.totalStepsAvailable`\n | `participant.progress.completionPercentage`\n | `participant.enrollmentStatus`\n | `participant.progressStatus`\n | `participant.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participant.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participant.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participant.enrollmentInfo.timeZone`\n | `participant.enrollmentInfo.startDate`\n | `participant.enrollmentInfo.pricingType`\n | `participant.tags.privateTags.tagIds`,\n 5\n > & {\n __applicationErrorsType?: IssueCertificateApplicationErrors;\n }\n >;\n}\n\nexport function getCertificateDownloadUrl(\n httpClient: HttpClient\n): GetCertificateDownloadUrlSignature {\n return (participantId: string) =>\n universalGetCertificateDownloadUrl(\n participantId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetCertificateDownloadUrlSignature {\n /**\n * Retrieves a download URL for the participant's latest issued certificate.\n *\n * The URL is returned only after the certificate document finishes rendering.\n * @param - ID of the participant whose certificate download URL to retrieve.\n */\n (participantId: string): Promise<\n NonNullablePaths<GetCertificateDownloadUrlResponse, `downloadUrl`, 2> & {\n __applicationErrorsType?: GetCertificateDownloadUrlApplicationErrors;\n }\n >;\n}\n\nexport function getPremiumStats(\n httpClient: HttpClient\n): GetPremiumStatsSignature {\n return () =>\n universalGetPremiumStats(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetPremiumStatsSignature {\n /**\n * Retrieves premium plan statistics for the site.\n */\n (): Promise<\n NonNullablePaths<\n GetPremiumStatsResponse,\n `premiumEnabled` | `activeParticipantsCount` | `activeParticipantsLimit`,\n 2\n >\n >;\n}\n\nexport function getParticipationStats(\n httpClient: HttpClient\n): GetParticipationStatsSignature {\n return (programIds: string[]) =>\n universalGetParticipationStats(\n programIds,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetParticipationStatsSignature {\n /**\n * Retrieves site-wide participant statistics for the requested programs.\n *\n * The statistics aren't limited to the caller's own participation records.\n * @param - IDs of the programs to retrieve participant statistics for.\n */\n (programIds: string[]): Promise<\n NonNullablePaths<\n GetParticipationStatsResponse,\n | `participationStats`\n | `participationStats.${number}.programId`\n | `participationStats.${number}.participantsCount`\n | `participationStats.${number}.autoRemovedCount`,\n 4\n >\n >;\n}\n\nexport function getParticipant(\n httpClient: HttpClient\n): GetParticipantSignature {\n return (participantId: string, options?: GetParticipantOptions) =>\n universalGetParticipant(\n participantId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetParticipantSignature {\n /**\n * Returns a participant by ID.\n * @param - ID of the participant to fetch.\n * @returns The retrieved participant.\n */\n (participantId: string, options?: GetParticipantOptions): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n >;\n}\n\nexport function queryParticipants(\n httpClient: HttpClient\n): QueryParticipantsSignature {\n return (options?: QueryParticipantsOptions) =>\n universalQueryParticipants(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryParticipantsSignature {\n /**\n * Queries existing participants.\n */\n (options?: QueryParticipantsOptions): ParticipantsQueryBuilder;\n}\n\nexport function typedQueryParticipants(\n httpClient: HttpClient\n): TypedQueryParticipantsSignature {\n return (query: ParticipantQuery, options?: QueryParticipantsOptions) =>\n universalTypedQueryParticipants(\n query,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface TypedQueryParticipantsSignature {\n /** */\n (query: ParticipantQuery, options?: QueryParticipantsOptions): Promise<\n NonNullablePaths<\n QueryParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`,\n 6\n >\n >;\n}\n\nexport function getAccessStatus(\n httpClient: HttpClient\n): GetAccessStatusSignature {\n return () =>\n universalGetAccessStatus(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetAccessStatusSignature {\n /**\n * Retrieves the access status for the current site, indicating whether participants can access\n * online programs or if access is blocked due to plan limitations or other restrictions.\n */\n (): Promise<NonNullablePaths<GetAccessStatusResponse, `accessBlocked`, 2>>;\n}\n\nexport function bulkUpdateParticipantTags(\n httpClient: HttpClient\n): BulkUpdateParticipantTagsSignature {\n return (\n participantIds: string[],\n options?: BulkUpdateParticipantTagsOptions\n ) =>\n universalBulkUpdateParticipantTags(\n participantIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateParticipantTagsSignature {\n /**\n * Updates tags for multiple Participants by IDs.\n *\n * Allows assigning and/or unassigning tags in a single operation.\n * At least one of assign_tags or unassign_tags must be provided.\n * @param - Participant IDs to update tags for (1-100 items)\n */\n (\n participantIds: string[],\n options?: BulkUpdateParticipantTagsOptions\n ): Promise<\n NonNullablePaths<\n BulkUpdateParticipantTagsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateParticipantTagsApplicationErrors;\n }\n >;\n}\n\nexport function bulkUpdateParticipantTagsByFilter(\n httpClient: HttpClient\n): BulkUpdateParticipantTagsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkUpdateParticipantTagsByFilterOptions\n ) =>\n universalBulkUpdateParticipantTagsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateParticipantTagsByFilterSignature {\n /**\n * Updates tags for Participants matching a filter.\n *\n * Allows assigning and/or unassigning tags for all Participants matching the filter.\n * Returns a job ID for tracking the async operation.\n * @param - WQL filter to select Participants\n */\n (\n filter: Record<string, any>,\n options?: BulkUpdateParticipantTagsByFilterOptions\n ): Promise<\n NonNullablePaths<BulkUpdateParticipantTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateParticipantTagsByFilterApplicationErrors;\n }\n >;\n}\n\nexport function searchParticipants(\n httpClient: HttpClient\n): SearchParticipantsSignature {\n return (search: ParticipantSearch, options?: SearchParticipantsOptions) =>\n universalSearchParticipants(\n search,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface SearchParticipantsSignature {\n /**\n * Retrieves a list of participants matching the search criteria.\n *\n * Results and aggregations include only the participant records that the caller is authorized to access.\n * @param - Query to search participants.\n */\n (search: ParticipantSearch, options?: SearchParticipantsOptions): Promise<\n NonNullablePaths<\n SearchParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n >\n >;\n}\n\n/** @internal */\nexport function exportParticipantsStats(\n httpClient: HttpClient\n): ExportParticipantsStatsSignature {\n return (programId: string) =>\n universalExportParticipantsStats(\n programId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ExportParticipantsStatsSignature {\n /**\n * Exports participant data and step completion statistics for a program as a CSV file.\n * The export includes participant details, progress, status, and completion dates for each step.\n *\n * This method initiates an asynchronous export. Subscribe to the `ParticipantExportsFinished`\n * event to receive the download URL when the export completes.\n * @param - program id to export data from\n */\n (programId: string): Promise<void>;\n}\n\nexport const onParticipantCompletedProgram = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_completed_program',\n true,\n (event: ParticipantCompletedProgramEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantCompletedProgramEnvelope>();\nexport const onParticipantCreated = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_created',\n true,\n (event: ParticipantCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.lastActivityDate' },\n { path: 'entity.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'entity.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantCreatedEnvelope>();\nexport const onParticipantDeleted = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_deleted',\n true,\n (event: ParticipantDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.lastActivityDate' },\n { path: 'entity.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'entity.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantDeletedEnvelope>();\nexport const onParticipantLeft = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_left',\n true,\n (event: ParticipantLeftEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantLeftEnvelope>();\nexport const onParticipantMissedProgramDeadline = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_missed_program_deadline',\n true,\n (event: ParticipantMissedProgramDeadlineEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantMissedProgramDeadlineEnvelope>();\nexport const onParticipantProgramDurationEnded = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_program_duration_ended',\n true,\n (event: ParticipantProgramDurationEndedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantProgramDurationEndedEnvelope>();\nexport const onParticipantRemoved = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_removed',\n true,\n (event: ParticipantRemovedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantRemovedEnvelope>();\nexport const onParticipantTagsModified = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_tags_modified',\n true,\n (event: ParticipantTagsModifiedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.participant.createdDate' },\n { path: 'data.participant.updatedDate' },\n { path: 'data.participant.lastActivityDate' },\n { path: 'data.participant.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'data.participant.progress.completionPercentage' }],\n },\n ])\n )\n)<ParticipantTagsModifiedEnvelope>();\nexport const onParticipantUpdated = /*#__PURE__*/ EventDefinition(\n 'wix.online_programs.participants.v3.participant_updated',\n true,\n (event: ParticipantUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.lastActivityDate' },\n { path: 'entity.certificateInfo.issueDate' },\n { path: 'metadata.eventTime' },\n { path: 'modifiedFields.createdDate' },\n { path: 'modifiedFields.updatedDate' },\n { path: 'modifiedFields.lastActivityDate' },\n { path: 'modifiedFields.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.progress.completionPercentage' },\n { path: 'modifiedFields.progress.completionPercentage' },\n ],\n },\n ])\n )\n)<ParticipantUpdatedEnvelope>();\n\nexport {\n AccountInfo,\n AccountInfoMetadata,\n ActionEvent,\n Aggregation,\n AggregationData,\n AggregationKindOneOf,\n AggregationResults,\n AggregationResultsResultOneOf,\n AggregationResultsScalarResult,\n AggregationType,\n ApplicationError,\n BaseEventMetadata,\n BulkActionMetadata,\n BulkActionType,\n BulkCreateParticipantsForAllMembersOptions,\n BulkCreateParticipantsForAllMembersRequest,\n BulkCreateParticipantsForAllMembersResponse,\n BulkCreateParticipantsOptions,\n BulkCreateParticipantsRequest,\n BulkCreateParticipantsResponse,\n BulkParticipantMigrationResult,\n BulkParticipantResult,\n BulkUpdateParticipantTagsByFilterOptions,\n BulkUpdateParticipantTagsByFilterRequest,\n BulkUpdateParticipantTagsByFilterResponse,\n BulkUpdateParticipantTagsOptions,\n BulkUpdateParticipantTagsRequest,\n BulkUpdateParticipantTagsResponse,\n BulkUpdateParticipantTagsResult,\n BulkUpsertParticipantsMigrationRequest,\n BulkUpsertParticipantsMigrationResponse,\n CertificateInfo,\n CreateParticipantOptions,\n CreateParticipantRequest,\n CreateParticipantResponse,\n CursorPaging,\n CursorPagingMetadata,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Cursors,\n DateHistogramAggregation,\n DateHistogramResult,\n DateHistogramResults,\n Delete,\n DeleteAllParticipantsMigrationRequest,\n DeleteAllParticipantsMigrationResponse,\n DeleteParticipantRequest,\n DeleteParticipantResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n Empty,\n EnrollmentInfo,\n EnrollmentInfoPricingTypeDetailsOneOf,\n EnrollmentStatus,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n EventMetadata,\n ExportParticipantsStatsRequest,\n ExportParticipantsStatsResponse,\n ExtendedFields,\n FreeCouponDetails,\n GetAccessStatusRequest,\n GetAccessStatusResponse,\n GetCertificateDownloadUrlRequest,\n GetCertificateDownloadUrlResponse,\n GetCompletionStatsRequest,\n GetCompletionStatsResponse,\n GetParticipantOptions,\n GetParticipantRequest,\n GetParticipantResponse,\n GetParticipationStatsRequest,\n GetParticipationStatsResponse,\n GetPremiumStatsRequest,\n GetPremiumStatsResponse,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n GroupByValueResults,\n IdentificationData,\n IdentificationDataIdOneOf,\n IncludeMissingValuesOptions,\n Interval,\n IssueCertificateOptions,\n IssueCertificateRequest,\n IssueCertificateResponse,\n ItemMetadata,\n Member,\n MessageEnvelope,\n MissingValues,\n Mode,\n NestedAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n NestedAggregationType,\n NestedResultValue,\n NestedResultValueResultOneOf,\n NestedResults,\n NestedValueAggregationResult,\n Paging,\n PagingMetadataV2,\n PaidPlanDetails,\n Participant,\n ParticipantCompletedProgram,\n ParticipantCompletedProgramEnvelope,\n ParticipantCreatedEnvelope,\n ParticipantDeletedEnvelope,\n ParticipantLeft,\n ParticipantLeftEnvelope,\n ParticipantMigration,\n ParticipantMissedProgramDeadline,\n ParticipantMissedProgramDeadlineEnvelope,\n ParticipantProgramDurationEnded,\n ParticipantProgramDurationEndedEnvelope,\n ParticipantQuerySpec,\n ParticipantRemoved,\n ParticipantRemovedEnvelope,\n ParticipantSearchSpec,\n ParticipantTagsModified,\n ParticipantTagsModifiedEnvelope,\n ParticipantUpdatedEnvelope,\n ParticipantsQueryBuilder,\n ParticipantsQueryResult,\n PricingType,\n ProgramParticipationStats,\n Progress,\n ProgressStatus,\n QueryParticipantsOptions,\n QueryParticipantsRequest,\n QueryParticipantsResponse,\n QueryV2,\n QueryV2PagingMethodOneOf,\n RangeAggregation,\n RangeAggregationResult,\n RangeBucket,\n RangeResult,\n RangeResults,\n ReindexMessage,\n ReindexMessageActionOneOf,\n ReindexParticipantsSearchRequest,\n ReindexParticipantsSearchResponse,\n RequestedFields,\n RestoreInfo,\n Results,\n ScalarAggregation,\n ScalarResult,\n ScalarType,\n Schema,\n SearchDetails,\n SearchParticipantsOptions,\n SearchParticipantsRequest,\n SearchParticipantsResponse,\n SinglePaymentDetails,\n SortDirection,\n SortOrder,\n SortType,\n Sorting,\n SynchronizeTimeCapsuleTasksRequest,\n SynchronizeTimeCapsuleTasksResponse,\n TagList,\n Tags,\n UpdateParticipant,\n UpdateParticipantOptions,\n UpdateParticipantRequest,\n UpdateParticipantResponse,\n Upsert,\n ValueAggregation,\n ValueAggregationOptionsOneOf,\n ValueAggregationResult,\n ValueResult,\n ValueResults,\n WebhookIdentityType,\n utils,\n} from './online-programs-participants-v3-participant-participants.universal.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n HttpClient,\n HttpResponse,\n Search as SearchSdkType,\n NonNullablePaths,\n QuerySpec,\n Query as QuerySdkType,\n SearchSpec,\n} from '@wix/sdk-types';\nimport * as ambassadorWixOnlineProgramsParticipantsV3Participant from './online-programs-participants-v3-participant-participants.http.js';\n// @ts-ignore\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\nimport { createSearchUtils } from '@wix/sdk-runtime/search-builder-utils';\n\n/**\n * Participant entity represents a site member who takes part in a specific Online Program.\n * Participants have access to the program's content and progress through the program by completing its steps.\n * A participant can join through a join application flow or be manually added by the program owner.\n * A participant's status depends on their progress and the program's settings (e.g., start and end dates). Participation may also be temporarily suspended.\n */\nexport interface Participant {\n /**\n * Participant ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Participant revision (for optimistic concurrency control).\n * @readonly\n */\n revision?: string | null;\n /**\n * Participant creation date.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date the participant was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Member ID of the participant on the site.\n * @format GUID\n * @readonly\n */\n memberId?: string;\n /**\n * ID of the program the participant is enrolled in.\n * @format GUID\n * @readonly\n */\n programId?: string;\n /**\n * Program completion progress. This field is conditional and must be explicitly requested via `fields` parameter.\n * @readonly\n */\n progress?: Progress;\n /**\n * Certificate info for participant\n * @readonly\n */\n certificateInfo?: CertificateInfo;\n /**\n * Site member info snapshot for the participant\n * @readonly\n */\n member?: Member;\n /**\n * Last activity date of the participant in the program (can either be status change or step resolution).\n * @readonly\n */\n lastActivityDate?: Date | null;\n /**\n * Participant's enrollment status in the program.\n * @readonly\n */\n enrollmentStatus?: EnrollmentStatusWithLiterals;\n /**\n * Participant's progress status in the program.\n * @readonly\n */\n progressStatus?: ProgressStatusWithLiterals;\n /** Additional information about the participant's enrollment and completion timeframe in the program. */\n enrollmentInfo?: EnrollmentInfo;\n /** Extended fields for participant (can be used for storing custom data). */\n extendedFields?: ExtendedFields;\n /** Tags for categorizing and organizing participants. */\n tags?: Tags;\n}\n\nexport enum PricingType {\n /** Member joined a program that is configured as free to join, with no payment required. */\n FREE = 'FREE',\n /** Member was added to the program by site owner. */\n ADDED_MANUALLY = 'ADDED_MANUALLY',\n /** Member paid once to join the program. */\n SINGLE_PAYMENT = 'SINGLE_PAYMENT',\n /** Member joined using a Pricing Plan. */\n PAID_PLAN = 'PAID_PLAN',\n /** Member joined a paid program using a coupon that provided 100% discount. */\n FREE_COUPON = 'FREE_COUPON',\n}\n\n/** @enumType */\nexport type PricingTypeWithLiterals =\n | PricingType\n | 'FREE'\n | 'ADDED_MANUALLY'\n | 'SINGLE_PAYMENT'\n | 'PAID_PLAN'\n | 'FREE_COUPON';\n\nexport interface SinglePaymentDetails {\n /**\n * ID of the cashier order which was used to pay for joining the program.\n * @format GUID\n * @immutable\n */\n paymentOrderId?: string;\n /**\n * ID of the offline transaction if the participant used an offline payment method (e.g., cash, check). Null if online payment was used.\n * @format GUID\n * @immutable\n */\n offlineTransactionId?: string | null;\n}\n\nexport interface PaidPlanDetails {\n /**\n * ID of the Paid Plan for which member has paid to join the program.\n * @format GUID\n * @immutable\n */\n paidPlanId?: string;\n}\n\nexport interface FreeCouponDetails {\n /**\n * ID of the coupon which was applied and gave 100% discount to join the program for free.\n * @format GUID\n * @immutable\n */\n freeCouponId?: string;\n}\n\nexport interface Progress {\n /** Number of program steps completed by member. */\n totalStepsCompleted?: number;\n /** Total number of program steps available to resolve. */\n totalStepsAvailable?: number;\n /**\n * Participant's completion percentage. For completed participants, this is 100.0. Otherwise, it is calculated as\n * (total_steps_completed / total_steps_available) * 100, capped at 100, and rounded to 1 decimal place.\n * @max 100\n */\n completionPercentage?: number;\n}\n\nexport interface CertificateInfo {\n /**\n * Date when the certificate was issued (UTC).\n * @readonly\n */\n issueDate?: Date | null;\n}\n\nexport interface Member {\n /**\n * First name of the site member. Null if the member has not provided this information in their profile.\n * @readonly\n * @maxLength 1000\n */\n firstName?: string | null;\n /**\n * Last name of the site member. Null if the member has not provided this information in their profile.\n * @readonly\n * @maxLength 1000\n */\n lastName?: string | null;\n /**\n * Email of the site member. Null if the member has not provided this information in their profile.\n * @readonly\n * @format EMAIL\n */\n email?: string | null;\n /**\n * Contact ID for accessing additional member information via the Contacts API. Use this to retrieve extended contact details like phone numbers, addresses, and custom fields. Null if the member has not provided this information in their profile.\n * @format GUID\n * @readonly\n */\n contactId?: string | null;\n /**\n * Member nickname. Null if the member has not provided this information in their profile.\n * @readonly\n * @maxLength 1000\n */\n nickname?: string | null;\n /**\n * Profile image URL of the site member.\n * @readonly\n * @format WEB_URL\n */\n profileImageUrl?: string | null;\n}\n\nexport enum EnrollmentStatus {\n /** Participant is actively enrolled in the program. */\n JOINED = 'JOINED',\n /** Enrollment temporarily suspended due to payment issues. */\n SUSPENDED = 'SUSPENDED',\n /** Automatically removed via a Wix Automations workflow. */\n AUTO_REMOVED = 'AUTO_REMOVED',\n /** Removed from the program by the site owner. */\n REMOVED = 'REMOVED',\n /** Participant voluntarily left the program. */\n LEFT = 'LEFT',\n}\n\n/** @enumType */\nexport type EnrollmentStatusWithLiterals =\n | EnrollmentStatus\n | 'JOINED'\n | 'SUSPENDED'\n | 'AUTO_REMOVED'\n | 'REMOVED'\n | 'LEFT';\n\nexport enum ProgressStatus {\n /** Enrolled but no steps completed yet. */\n NOT_STARTED = 'NOT_STARTED',\n /** At least one step completed but program not yet finished. */\n IN_PROGRESS = 'IN_PROGRESS',\n /** Participant successfully completed the program. */\n COMPLETED = 'COMPLETED',\n /** Participant failed to complete the program within the deadline. */\n FAILED = 'FAILED',\n /** Progress tracking is not applicable — participant left, was removed, or was auto-removed. */\n NOT_APPLICABLE = 'NOT_APPLICABLE',\n}\n\n/** @enumType */\nexport type ProgressStatusWithLiterals =\n | ProgressStatus\n | 'NOT_STARTED'\n | 'IN_PROGRESS'\n | 'COMPLETED'\n | 'FAILED'\n | 'NOT_APPLICABLE';\n\nexport interface EnrollmentInfo extends EnrollmentInfoPricingTypeDetailsOneOf {\n /** Details about a Single Payment enrollment. */\n singlePaymentDetails?: SinglePaymentDetails;\n /** Details about a Paid Plan enrollment. */\n paidPlanDetails?: PaidPlanDetails;\n /** Details about a Free Coupon enrollment. */\n freeCouponDetails?: FreeCouponDetails;\n /**\n * Time zone of the site when the participant was enrolled in the program, in IANA timezone format (e.g., \"America/New_York\").\n * @maxLength 50\n * @readonly\n */\n timeZone?: string;\n /**\n * Date when the participant starts the program. Equals the participant's `created_date` if the program has no configured start date; otherwise, equals the program's start date if the participant enrolled before it began.\n * @format LOCAL_DATE\n * @readonly\n */\n startDate?: string;\n /** Pricing type used for the participant's enrollment in the program. */\n pricingType?: PricingTypeWithLiterals;\n /**\n * Date by which the participant must complete the program. Null if the program has no deadline. Set if the program has a fixed end date or a duration-based deadline calculated from the participant's start date.\n * @format LOCAL_DATE\n * @readonly\n */\n deadline?: string | null;\n}\n\n/** @oneof */\nexport interface EnrollmentInfoPricingTypeDetailsOneOf {\n /** Details about a Single Payment enrollment. */\n singlePaymentDetails?: SinglePaymentDetails;\n /** Details about a Paid Plan enrollment. */\n paidPlanDetails?: PaidPlanDetails;\n /** Details about a Free Coupon enrollment. */\n freeCouponDetails?: FreeCouponDetails;\n}\n\nexport interface ExtendedFields {\n /**\n * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\n * The value of each key is structured according to the schema defined when the extended fields were configured.\n *\n * You can only access fields for which you have the appropriate permissions.\n *\n * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).\n */\n namespaces?: Record<string, Record<string, any>>;\n}\n\n/**\n * Common object for tags.\n * Should be use as in this example:\n * message Foo {\n * option (.wix.api.decomposite_of) = \"wix.commons.v2.tags.Foo\";\n * string id = 1;\n * ...\n * Tags tags = 5\n * }\n *\n * example of taggable entity\n * {\n * id: \"123\"\n * tags: {\n * public_tags: {\n * tag_ids:[\"11\",\"22\"]\n * },\n * private_tags: {\n * tag_ids: [\"33\", \"44\"]\n * }\n * }\n * }\n */\nexport interface Tags {\n /** Tags that require an additional permission in order to access them, typically restricted from site members and visitors. */\n privateTags?: TagList;\n /** Tags that are exposed to anyone with access to the entity, including site members and visitors. */\n publicTags?: TagList;\n}\n\nexport interface TagList {\n /**\n * List of tag IDs.\n * @maxSize 100\n * @maxLength 5\n */\n tagIds?: string[];\n}\n\n/**\n * Message for reindexing search data to a given search schema. Support both upsert and delete flows as well as\n * performs context manipulation with adding tenant, provided in message to callscope.\n */\nexport interface ReindexMessage extends ReindexMessageActionOneOf {\n upsert?: Upsert;\n delete?: Delete;\n entityFqdn?: string;\n tenantId?: string;\n eventTime?: Date | null;\n entityEventSequence?: string | null;\n schema?: Schema;\n}\n\n/** @oneof */\nexport interface ReindexMessageActionOneOf {\n upsert?: Upsert;\n delete?: Delete;\n}\n\nexport interface Upsert {\n entityId?: string;\n entityAsJson?: string;\n}\n\nexport interface Delete {\n entityId?: string;\n}\n\nexport interface Schema {\n label?: string;\n clusterName?: string;\n}\n\n/**\n * Domain event emitted when a participant's tags are modified.\n * Pre-publication rename from TagsModified; no consumers of the legacy FQN are known.\n */\nexport interface ParticipantTagsModified {\n /** The Participant with updated tags */\n participant?: Participant;\n /** Tags that were assigned */\n assignedTags?: Tags;\n /** Tags that were unassigned */\n unassignedTags?: Tags;\n}\n\n/** Domain event emitted when a participant completes a program. */\nexport interface ParticipantCompletedProgram {\n /**\n * ID of the participant who completed the program.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program which was completed.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who completed the program.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after completing the program. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant misses a program deadline. */\nexport interface ParticipantMissedProgramDeadline {\n /**\n * ID of the participant who missed the deadline.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program for which the deadline was missed.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who missed the deadline.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after missing the deadline. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant's program duration ends. */\nexport interface ParticipantProgramDurationEnded {\n /**\n * ID of the participant whose program duration ended.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program whose duration ended for the participant.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant whose program duration ended.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant when the program duration ended. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant is removed from a program by an administrator. */\nexport interface ParticipantRemoved {\n /**\n * ID of the participant who was removed.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program from which the participant was removed.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who was removed.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after being removed from the program. */\n participant?: Participant;\n}\n\n/** Domain event emitted when a participant voluntarily leaves a program. */\nexport interface ParticipantLeft {\n /**\n * ID of the participant who left the program.\n * @format GUID\n */\n participantId?: string;\n /**\n * ID of the program the participant left.\n * @format GUID\n */\n programId?: string;\n /**\n * Member ID of the participant who left.\n * @format GUID\n */\n memberId?: string;\n /** Snapshot of the participant after leaving the program. */\n participant?: Participant;\n}\n\nexport interface CreateParticipantRequest {\n /** Participant to create */\n participant: Participant;\n /**\n * Array of conditional fields to include in the response.\n * Use `RequestedFields.PROGRESS` to include the progress field, which requires calculating completion statistics across all program steps. Only request this field when you need current progress data, as it impacts performance.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Enum for specifying which conditional fields to include in responses.\n * Use these values in the `fields` parameter to request expensive or conditional fields.\n */\nexport enum RequestedFields {\n /** Request the progress field to be calculated and included in the response. */\n PROGRESS = 'PROGRESS',\n}\n\n/** @enumType */\nexport type RequestedFieldsWithLiterals = RequestedFields | 'PROGRESS';\n\nexport interface CreateParticipantResponse {\n /** Created participant */\n participant?: Participant;\n}\n\nexport interface UpdateParticipantRequest {\n /** Participant to update. Must include the participant ID. */\n participant: Participant;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n /**\n * Optional explicit field mask. If omitted, the API infers it from writable fields in `participant`.\n * @internal\n */\n fieldMask?: string[];\n}\n\nexport interface UpdateParticipantResponse {\n /** Updated participant */\n participant?: Participant;\n}\n\nexport interface BulkCreateParticipantsRequest {\n /**\n * List of participants to create.\n * @minSize 1\n * @maxSize 100\n */\n participants: Participant[];\n /** Whether to return entities in response or not. */\n returnEntity?: boolean;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkCreateParticipantsResponse {\n /**\n * Results of the bulk create operation.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkParticipantResult[];\n /** Metadata about the bulk action. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkParticipantResult {\n /** Metadata for the item. */\n itemMetadata?: ItemMetadata;\n /** The participant entity. Empty if `return_entity` is `false`. */\n item?: Participant;\n}\n\nexport interface ItemMetadata {\n /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface ApplicationError {\n /** Error code. */\n code?: string;\n /** Description of the error. */\n description?: string;\n /** Data related to the error. */\n data?: Record<string, any> | null;\n}\n\nexport interface BulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface BulkUpsertParticipantsMigrationRequest {\n /**\n * List of participants to create or update.\n * @minSize 1\n * @maxSize 100\n */\n participants?: ParticipantMigration[];\n}\n\nexport interface ParticipantMigration {\n /** Participant to create or update. */\n participant?: Participant;\n /**\n * Resolved step IDs to restore on participant.\n * @maxSize 5000\n * @format GUID\n */\n resolvedStepIds?: string[];\n}\n\nexport interface BulkUpsertParticipantsMigrationResponse {\n /**\n * Results of the bulk migration operation.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkParticipantMigrationResult[];\n /** Metadata about the bulk action. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkParticipantMigrationResult {\n /** Metadata for the item. */\n itemMetadata?: ItemMetadata;\n /** Action type of bulk action (INSERT OR UPDATE) for that endpoint. */\n action?: BulkActionTypeWithLiterals;\n}\n\nexport enum BulkActionType {\n /** default action type, should never be used */\n UNKNOWN_ACTION_TYPE = 'UNKNOWN_ACTION_TYPE',\n /** Action type for inserting new items. */\n INSERT = 'INSERT',\n /** Action type for updating existing items. */\n UPDATE = 'UPDATE',\n}\n\n/** @enumType */\nexport type BulkActionTypeWithLiterals =\n | BulkActionType\n | 'UNKNOWN_ACTION_TYPE'\n | 'INSERT'\n | 'UPDATE';\n\nexport interface DeleteAllParticipantsMigrationRequest {}\n\nexport interface DeleteAllParticipantsMigrationResponse {}\n\nexport interface ReindexParticipantsSearchRequest {\n /**\n * @minSize 1\n * @maxSize 1000\n * @format GUID\n */\n participantIds?: string[];\n}\n\nexport interface ReindexParticipantsSearchResponse {}\n\nexport interface SynchronizeTimeCapsuleTasksRequest {\n /**\n * Metasite whose participant finish tasks should be synchronized.\n * @format GUID\n */\n metaSiteId?: string;\n}\n\nexport interface SynchronizeTimeCapsuleTasksResponse {\n /**\n * ID of the asynchronous job that will process the request. Pass this ID to Get Async Job to track the operation status.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkCreateParticipantsForAllMembersRequest {\n /**\n * ID of the program for which to create participants for all site members in bulk.\n * @format GUID\n */\n programId: string;\n /**\n * Site member IDs to exclude from bulk participant creation. Maximum 100 member IDs can be excluded.\n * @format GUID\n * @maxSize 100\n */\n excludeMemberIds?: string[];\n}\n\nexport interface BulkCreateParticipantsForAllMembersResponse {\n /**\n * ID of the asynchronous job that will process the request. Pass this ID to Get Async Job to track the operation status.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface DeleteParticipantRequest {\n /**\n * ID of the participant to delete.\n * @format GUID\n */\n participantId: string;\n}\n\nexport interface DeleteParticipantResponse {}\n\nexport interface IssueCertificateRequest {\n /**\n * ID of the participant to issue the certificate to.\n * @format GUID\n */\n participantId: string;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface IssueCertificateResponse {\n /** Updated participant */\n participant?: Participant;\n}\n\nexport interface GetCertificateDownloadUrlRequest {\n /**\n * ID of the participant whose certificate download URL to retrieve.\n * @format GUID\n */\n participantId: string;\n}\n\nexport interface GetCertificateDownloadUrlResponse {\n /**\n * URL for downloading the participant's certificate.\n * @format WEB_URL\n */\n downloadUrl?: string;\n /** Time when the download URL token expires. The underlying certificate document may expire earlier. */\n expirationDate?: Date | null;\n}\n\nexport interface GetCompletionStatsRequest {\n /**\n * ID of the program to retrieve completion statistics for.\n * @format GUID\n */\n programId?: string;\n}\n\nexport interface GetCompletionStatsResponse {\n /** Number of participants that completed the program */\n completedParticipantsCount?: number;\n /** Percentage of participants that completed the program */\n completionRate?: number;\n}\n\nexport interface GetPremiumStatsRequest {}\n\nexport interface GetPremiumStatsResponse {\n /** True if site has Online Programs premium feature */\n premiumEnabled?: boolean;\n /** Count of active participants on the site */\n activeParticipantsCount?: number;\n /** Limit of active participants on a site without premium */\n activeParticipantsLimit?: number;\n}\n\nexport interface GetParticipationStatsRequest {\n /**\n * IDs of the programs to retrieve participant statistics for.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n programIds: string[];\n}\n\nexport interface GetParticipationStatsResponse {\n /**\n * Participant statistics for each distinct requested program ID.\n * @maxSize 100\n */\n participationStats?: ProgramParticipationStats[];\n}\n\nexport interface ProgramParticipationStats {\n /**\n * Program ID.\n * @format GUID\n */\n programId?: string;\n /** Number of participants with a joined or suspended enrollment, including participants who completed or failed the program. */\n participantsCount?: number;\n /** Number of participants automatically removed when the program duration ended. */\n autoRemovedCount?: number;\n}\n\nexport interface GetParticipantRequest {\n /**\n * ID of the participant to fetch.\n * @format GUID\n */\n participantId: string;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface GetParticipantResponse {\n /** The retrieved participant. */\n participant?: Participant;\n}\n\nexport interface QueryParticipantsRequest {\n /** Platformized query */\n query?: QueryV2;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface QueryV2 extends QueryV2PagingMethodOneOf {\n /** Paging options to limit and offset the number of items. */\n paging?: Paging;\n /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 100\n */\n sort?: Sorting[];\n /**\n * Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned.\n * @maxSize 100\n * @maxLength 1000\n */\n fields?: string[];\n /**\n * Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned.\n * @maxSize 100\n * @maxLength 1000\n */\n fieldsets?: string[];\n}\n\n/** @oneof */\nexport interface QueryV2PagingMethodOneOf {\n /** Paging options to limit and offset the number of items. */\n paging?: Paging;\n /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface Paging {\n /** Number of items to load. */\n limit?: number | null;\n /** Number of items to skip in the current sort order. */\n offset?: number | null;\n}\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryParticipantsResponse {\n /** List of participants matching the query. */\n participants?: Participant[];\n /** Paging metadata. */\n pagingMetadata?: PagingMetadataV2;\n}\n\nexport interface PagingMetadataV2 {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Offset that was requested. */\n offset?: number | null;\n /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */\n total?: number | null;\n /** Flag that indicates the server failed to calculate the `total` field. */\n tooManyToCount?: boolean | null;\n /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */\n cursors?: Cursors;\n /**\n * Indicates if there are more results after the current page.\n * If `true`, another page of results can be retrieved.\n * If `false`, this is the last page.\n * @internal\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface GetAccessStatusRequest {}\n\nexport interface GetAccessStatusResponse {\n /** True if participants cannot access online programs due to some limitations */\n accessBlocked?: boolean;\n}\n\nexport interface BulkUpdateParticipantTagsRequest {\n /**\n * Participant IDs to update tags for (1-100 items)\n * @minSize 1\n * @maxSize 100\n * @format GUID\n */\n participantIds: string[];\n /** Tags to assign to the Participants */\n assignTags?: Tags;\n /** Tags to unassign from the Participants */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateParticipantTagsResponse {\n /**\n * Results for each Participant\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkUpdateParticipantTagsResult[];\n /** Metadata about the bulk operation */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpdateParticipantTagsResult {\n /** Metadata for this specific item */\n itemMetadata?: ItemMetadata;\n}\n\nexport interface BulkUpdateParticipantTagsByFilterRequest {\n /** WQL filter to select Participants */\n filter: Record<string, any> | null;\n /** Tags to assign to matching Participants */\n assignTags?: Tags;\n /** Tags to unassign from matching Participants */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateParticipantTagsByFilterResponse {\n /**\n * Job ID for tracking the async operation. Pass this ID to Get Async Job to track the operation status.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface SearchParticipantsRequest {\n /** Query to search participants. */\n search?: CursorSearch;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CursorSearch extends CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * List of sort objects.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 10\n */\n sort?: Sorting[];\n /**\n * Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories.\n * @maxSize 10\n */\n aggregations?: Aggregation[];\n /** Free text to match in searchable fields. */\n search?: SearchDetails;\n /**\n * Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\n * Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\".\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Aggregation extends AggregationKindOneOf {\n /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n dateHistogram?: DateHistogramAggregation;\n /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n nested?: NestedAggregation;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n /**\n * Deprecated. Use `nested` instead.\n * @deprecated Deprecated. Use `nested` instead.\n * @replacedBy kind.nested\n * @targetRemovalDate 2024-03-30\n */\n groupBy?: GroupByAggregation;\n}\n\n/** @oneof */\nexport interface AggregationKindOneOf {\n /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n dateHistogram?: DateHistogramAggregation;\n /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n nested?: NestedAggregation;\n}\n\nexport interface RangeBucket {\n /** Inclusive lower bound of the range. Required if `to` is not provided. */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if `from` is not provided. */\n to?: number | null;\n}\n\nexport enum SortType {\n /** Number of matches in the results. */\n COUNT = 'COUNT',\n /** Alphabetically by the field value. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';\n\nexport enum SortDirection {\n /** Descending order. */\n DESC = 'DESC',\n /** Ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';\n\nexport enum MissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values in the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';\n\nexport interface IncludeMissingValuesOptions {\n /**\n * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum ScalarType {\n /** Total number of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n /**\n * Sum of values.\n * @internal\n */\n SUM = 'SUM',\n /**\n * Average of values.\n * @internal\n */\n AVG = 'AVG',\n}\n\n/** @enumType */\nexport type ScalarTypeWithLiterals =\n | ScalarType\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface ValueAggregation extends ValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: IncludeMissingValuesOptions;\n /** Sort type. */\n sortType?: SortTypeWithLiterals;\n /** Sort direction. */\n sortDirection?: SortDirectionWithLiterals;\n /**\n * Number of aggregation results to return.\n * Min: `1`\n * Max: `250`\n * Default: `10`\n */\n limit?: number | null;\n /**\n * Whether to include or exclude missing values in the aggregation results.\n * Default: `EXCLUDE`.\n */\n missingValues?: MissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface ValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: IncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationType {\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationTypeWithLiterals =\n | NestedAggregationType\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface RangeAggregation {\n /**\n * List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.\n * @maxSize 50\n */\n buckets?: RangeBucket[];\n}\n\nexport interface ScalarAggregation {\n /** Operator type for the scalar aggregation. */\n type?: ScalarTypeWithLiterals;\n}\n\nexport interface DateHistogramAggregation {\n /** Interval for date histogram aggregation. */\n interval?: IntervalWithLiterals;\n}\n\nexport enum Interval {\n YEAR = 'YEAR',\n MONTH = 'MONTH',\n WEEK = 'WEEK',\n DAY = 'DAY',\n HOUR = 'HOUR',\n MINUTE = 'MINUTE',\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type IntervalWithLiterals =\n | Interval\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface NestedAggregationItem extends NestedAggregationItemKindOneOf {\n /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n dateHistogram?: DateHistogramAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. The matching aggregation field must be passed. */\n type?: NestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationItemKindOneOf {\n /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n value?: ValueAggregation;\n /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n range?: RangeAggregation;\n /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n scalar?: ScalarAggregation;\n /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n dateHistogram?: DateHistogramAggregation;\n}\n\nexport enum AggregationType {\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type AggregationTypeWithLiterals =\n | AggregationType\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */\nexport interface NestedAggregation {\n /**\n * Flattened list of aggregations, where each aggregation is nested within previous one.\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: NestedAggregationItem[];\n}\n\nexport interface GroupByAggregation extends GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: ValueAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /**\n * Field to aggregate by.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: ValueAggregation;\n}\n\nexport interface SearchDetails {\n /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */\n mode?: ModeWithLiterals;\n /**\n * Search term or expression.\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. */\n fuzzy?: boolean;\n}\n\nexport enum Mode {\n /** At least one of the search terms must be present. */\n OR = 'OR',\n /** All search terms must be present. */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type ModeWithLiterals = Mode | 'OR' | 'AND';\n\nexport interface SearchParticipantsResponse {\n /** Participants matching the search criteria. */\n participants?: Participant[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n /** Aggregation data in case aggregations were requested. */\n aggregationData?: AggregationData;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in current page. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n /**\n * Total number of items matching the filter.\n * Available only on the first page of *Search* results, not included in *Query* or *List* results.\n * If the Search results span multiple pages, the value of `total` will exceed the number of items returned on the first page.\n * @internal\n */\n total?: number | null;\n}\n\nexport interface AggregationData {\n /**\n * key = aggregation name (as derived from search request).\n * @maxSize 10000\n */\n results?: AggregationResults[];\n}\n\nexport interface ValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 100\n */\n value?: string;\n /** Count of entities with this value. */\n count?: number;\n}\n\nexport interface RangeAggregationResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Count of entities in this range. */\n count?: number;\n}\n\nexport interface NestedAggregationResults\n extends NestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n /**\n * User-defined name of aggregation, matches the one provided in request.\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that matches result. */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by, matches the one provided in request.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n}\n\nexport interface ValueResults {\n /**\n * List of value aggregations.\n * @maxSize 250\n */\n results?: ValueAggregationResult[];\n}\n\nexport interface RangeResults {\n /**\n * List of ranges returned in same order as requested.\n * @maxSize 50\n */\n results?: RangeAggregationResult[];\n}\n\nexport interface AggregationResultsScalarResult {\n /** Type of scalar aggregation. */\n type?: ScalarTypeWithLiterals;\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface NestedValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 1000\n */\n value?: string;\n /** Nested aggregations. */\n nestedResults?: NestedAggregationResults;\n}\n\nexport interface ValueResult {\n /**\n * Value of the field.\n * @maxLength 1000\n */\n value?: string;\n /** Count of entities with this value. */\n count?: number | null;\n}\n\nexport interface RangeResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Count of entities in this range. */\n count?: number | null;\n}\n\nexport interface ScalarResult {\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface NestedResultValue extends NestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: ValueResult;\n /** Range aggregation result. */\n range?: RangeResult;\n /** Scalar aggregation result. */\n scalar?: ScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: ValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: ValueResult;\n /** Range aggregation result. */\n range?: RangeResult;\n /** Scalar aggregation result. */\n scalar?: ScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: ValueResult;\n}\n\nexport interface Results {\n /** List of nested aggregations. */\n results?: Record<string, NestedResultValue>;\n}\n\nexport interface DateHistogramResult {\n /**\n * Date in ISO 8601 format.\n * @maxLength 100\n */\n value?: string;\n /** Count of documents in the bucket. */\n count?: number;\n}\n\nexport interface GroupByValueResults {\n /**\n * List of value aggregations.\n * @maxSize 1000\n */\n results?: NestedValueAggregationResult[];\n}\n\nexport interface DateHistogramResults {\n /**\n * List of date histogram aggregations.\n * @maxSize 200\n */\n results?: DateHistogramResult[];\n}\n\n/**\n * Results of `NESTED` aggregation type in a flattened form.\n * Aggregations in resulting array are keyed by requested aggregation `name`.\n */\nexport interface NestedResults {\n /**\n * List of nested aggregations.\n * @maxSize 1000\n */\n results?: Results[];\n}\n\nexport interface AggregationResults extends AggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results. */\n nested?: NestedResults;\n /**\n * User-defined name of aggregation as derived from search request.\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that must match provided kind as derived from search request. */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by as derived from search request.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: ValueResults;\n /** Range aggregation results. */\n ranges?: RangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results. */\n nested?: NestedResults;\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface Empty {}\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface AccountInfo {\n /**\n * ID of the Wix account associated with the event.\n * @format GUID\n */\n accountId?: string | null;\n /**\n * ID of the parent Wix account. Only included when accountId belongs to a child account.\n * @format GUID\n */\n parentAccountId?: string | null;\n /**\n * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n * @format GUID\n */\n siteId?: string | null;\n}\n\nexport interface ExportParticipantsStatsRequest {\n /**\n * program id to export data from\n * @format GUID\n */\n programId: string;\n}\n\nexport interface ExportParticipantsStatsResponse {}\n\n/** @docsIgnore */\nexport type CreateParticipantApplicationErrors =\n | {\n code?: 'PREMIUM_PLAN_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PARTICIPANTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkCreateParticipantsApplicationErrors =\n | {\n code?: 'MULTIPLE_PROGRAM_IDS_IN_BULK_CREATE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREMIUM_PLAN_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PARTICIPANTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type IssueCertificateApplicationErrors =\n | {\n code?: 'PARTICIPANT_NOT_ACTIVE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_CERTIFICATE_REWARD';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PARTICIPANT_NOT_COMPLETED_PROGRAM';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type GetCertificateDownloadUrlApplicationErrors =\n | {\n code?: 'CERTIFICATE_NOT_ISSUED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CERTIFICATE_DOCUMENT_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CERTIFICATE_NOT_READY';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CERTIFICATE_RENDER_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CERTIFICATE_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateParticipantTagsApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type BulkUpdateParticipantTagsByFilterApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\n description?: string;\n data?: Record<string, any>;\n};\n\nexport interface BaseEventMetadata {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface EventMetadata extends BaseEventMetadata {\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n accountInfo?: AccountInfoMetadata;\n}\n\nexport interface AccountInfoMetadata {\n /** ID of the Wix account associated with the event */\n accountId: string;\n /** ID of the Wix site associated with the event. Only included when the event is tied to a specific site. */\n siteId?: string;\n /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */\n parentAccountId?: string;\n}\n\nexport interface ParticipantCompletedProgramEnvelope {\n data: ParticipantCompletedProgram;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant completes a program.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_completed_program\n * @slug completed_program\n * @documentationMaturity preview\n */\nexport declare function onParticipantCompletedProgram(\n handler: (event: ParticipantCompletedProgramEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantCreatedEnvelope {\n entity: Participant;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant is created.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_created\n * @slug created\n * @documentationMaturity preview\n */\nexport declare function onParticipantCreated(\n handler: (event: ParticipantCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantDeletedEnvelope {\n entity: Participant;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant is deleted.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_deleted\n * @slug deleted\n * @documentationMaturity preview\n */\nexport declare function onParticipantDeleted(\n handler: (event: ParticipantDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantLeftEnvelope {\n data: ParticipantLeft;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant voluntarily leaves a program.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_left\n * @slug left\n * @documentationMaturity preview\n */\nexport declare function onParticipantLeft(\n handler: (event: ParticipantLeftEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantMissedProgramDeadlineEnvelope {\n data: ParticipantMissedProgramDeadline;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant misses a program deadline.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_missed_program_deadline\n * @slug missed_program_deadline\n * @documentationMaturity preview\n */\nexport declare function onParticipantMissedProgramDeadline(\n handler: (\n event: ParticipantMissedProgramDeadlineEnvelope\n ) => void | Promise<void>\n): void;\n\nexport interface ParticipantProgramDurationEndedEnvelope {\n data: ParticipantProgramDurationEnded;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant's program duration ends.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_program_duration_ended\n * @slug program_duration_ended\n * @documentationMaturity preview\n */\nexport declare function onParticipantProgramDurationEnded(\n handler: (\n event: ParticipantProgramDurationEndedEnvelope\n ) => void | Promise<void>\n): void;\n\nexport interface ParticipantRemovedEnvelope {\n data: ParticipantRemoved;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an administrator removes a participant from a program.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_removed\n * @slug removed\n * @documentationMaturity preview\n */\nexport declare function onParticipantRemoved(\n handler: (event: ParticipantRemovedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantTagsModifiedEnvelope {\n data: ParticipantTagsModified;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a participant's tags are modified.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_tags_modified\n * @slug tags_modified\n * @documentationMaturity preview\n */\nexport declare function onParticipantTagsModified(\n handler: (event: ParticipantTagsModifiedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ParticipantUpdatedEnvelope {\n entity: Participant;\n metadata: EventMetadata;\n /** @hidden */\n modifiedFields: Record<string, any>;\n}\n\n/**\n * Triggered when a participant is updated.\n * @permissionScope Manage Online Programs\n * @permissionScopeId SCOPE.CHALLENGES.MANAGE\n * @permissionId online_programs:participants:v3:participant:read_events\n * @webhook\n * @eventType wix.online_programs.participants.v3.participant_updated\n * @slug updated\n * @documentationMaturity preview\n */\nexport declare function onParticipantUpdated(\n handler: (event: ParticipantUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a participant.\n *\n * Returns an error if the member is already a participant in the specified program.\n * Use UpdateParticipant to modify existing participants.\n * @param participant - Participant to create\n * @public\n * @documentationMaturity preview\n * @requiredField participant\n * @requiredField participant.enrollmentInfo\n * @requiredField participant.enrollmentInfo.pricingType\n * @requiredField participant.memberId\n * @requiredField participant.programId\n * @permissionId online_programs:participants:v3:participant:create_participant\n * @applicableIdentity APP\n * @returns Created participant\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.CreateParticipant\n */\nexport async function createParticipant(\n participant: NonNullablePaths<\n Participant,\n `enrollmentInfo` | `enrollmentInfo.pricingType` | `memberId` | `programId`,\n 3\n >,\n options?: CreateParticipantOptions\n): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n > & {\n __applicationErrorsType?: CreateParticipantApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participant: participant,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.createParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.participant!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participant: '$[0]',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participant', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateParticipantOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use `RequestedFields.PROGRESS` to include the progress field, which requires calculating completion statistics across all program steps. Only request this field when you need current progress data, as it impacts performance.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates a participant's enrollment status or enrollment pricing details.\n *\n * Use this method to suspend or resume a participant by setting `enrollment_status` to\n * `SUSPENDED` or `JOINED`. To remove a participant, use `DeleteParticipant`.\n * Progress status is calculated from the participant's resolved steps and can't be updated.\n * @param _id - Participant ID.\n * @public\n * @documentationMaturity preview\n * @requiredField _id\n * @requiredField participant\n * @requiredField participant.revision\n * @permissionId online_programs:participants:v3:participant:update_participant\n * @applicableIdentity APP\n * @returns Updated participant\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.UpdateParticipant\n */\nexport async function updateParticipant(\n _id: string,\n participant: NonNullablePaths<UpdateParticipant, `revision`, 2>,\n options?: UpdateParticipantOptions\n): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participant: { ...participant, id: _id },\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.updateParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.participant!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { participant: '$[1]' },\n explicitPathsToArguments: {\n 'participant.id': '$[0]',\n fields: '$[2].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'participant', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateParticipant {\n /**\n * Participant ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Participant revision (for optimistic concurrency control).\n * @readonly\n */\n revision?: string | null;\n /**\n * Participant creation date.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date the participant was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Member ID of the participant on the site.\n * @format GUID\n * @readonly\n */\n memberId?: string;\n /**\n * ID of the program the participant is enrolled in.\n * @format GUID\n * @readonly\n */\n programId?: string;\n /**\n * Program completion progress. This field is conditional and must be explicitly requested via `fields` parameter.\n * @readonly\n */\n progress?: Progress;\n /**\n * Certificate info for participant\n * @readonly\n */\n certificateInfo?: CertificateInfo;\n /**\n * Site member info snapshot for the participant\n * @readonly\n */\n member?: Member;\n /**\n * Last activity date of the participant in the program (can either be status change or step resolution).\n * @readonly\n */\n lastActivityDate?: Date | null;\n /**\n * Participant's enrollment status in the program.\n * @readonly\n */\n enrollmentStatus?: EnrollmentStatusWithLiterals;\n /**\n * Participant's progress status in the program.\n * @readonly\n */\n progressStatus?: ProgressStatusWithLiterals;\n /** Additional information about the participant's enrollment and completion timeframe in the program. */\n enrollmentInfo?: EnrollmentInfo;\n /** Extended fields for participant (can be used for storing custom data). */\n extendedFields?: ExtendedFields;\n /** Tags for categorizing and organizing participants. */\n tags?: Tags;\n}\n\nexport interface UpdateParticipantOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates participants in bulk.\n *\n * All participants in a single bulk create request must belong to the same program.\n * Returns an error if the member is already a participant in the specified program.\n *\n * When `pricing_type` is `SINGLE_PAYMENT`, provide `single_payment_details`.\n * When `pricing_type` is `PAID_PLAN`, provide `paid_plan_details`.\n * When `pricing_type` is `FREE_COUPON`, provide `free_coupon_details`.\n * Other pricing types (`FREE`, `ADDED_MANUALLY`) do not require details.\n * @param participants - List of participants to create.\n * @public\n * @documentationMaturity preview\n * @requiredField participants\n * @requiredField participants.enrollmentInfo\n * @requiredField participants.enrollmentInfo.pricingType\n * @requiredField participants.memberId\n * @requiredField participants.programId\n * @permissionId online_programs:participants:v3:participant:bulk_create_participants\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipants\n */\nexport async function bulkCreateParticipants(\n participants: NonNullablePaths<\n Participant,\n `enrollmentInfo` | `enrollmentInfo.pricingType` | `memberId` | `programId`,\n 3\n >[],\n options?: BulkCreateParticipantsOptions\n): Promise<\n NonNullablePaths<\n BulkCreateParticipantsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.memberId`\n | `results.${number}.item.programId`\n | `results.${number}.item.progress.totalStepsCompleted`\n | `results.${number}.item.progress.totalStepsAvailable`\n | `results.${number}.item.progress.completionPercentage`\n | `results.${number}.item.enrollmentStatus`\n | `results.${number}.item.progressStatus`\n | `results.${number}.item.enrollmentInfo.timeZone`\n | `results.${number}.item.enrollmentInfo.startDate`\n | `results.${number}.item.enrollmentInfo.pricingType`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateParticipantsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participants: participants,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkCreateParticipants(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participants: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participants', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateParticipantsOptions {\n /** Whether to return entities in response or not. */\n returnEntity?: boolean;\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates participants in bulk for all site members in a program, with an optional exclusion filter.\n *\n * Participants are created in the `JOINED` state with the join path set to `ADDED`.\n * Members who are already participants in the program will be skipped.\n * Only members who are not yet participants will be added.\n * @param programId - ID of the program for which to create participants for all site members in bulk.\n * @public\n * @documentationMaturity preview\n * @requiredField programId\n * @permissionId online_programs:participants:v3:participant:bulk_create_participants_for_all_members\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipantsForAllMembers\n */\nexport async function bulkCreateParticipantsForAllMembers(\n programId: string,\n options?: BulkCreateParticipantsForAllMembersOptions\n): Promise<\n NonNullablePaths<BulkCreateParticipantsForAllMembersResponse, `jobId`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n programId: programId,\n excludeMemberIds: options?.excludeMemberIds,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkCreateParticipantsForAllMembers(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n programId: '$[0]',\n excludeMemberIds: '$[1].excludeMemberIds',\n },\n singleArgumentUnchanged: false,\n },\n ['programId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateParticipantsForAllMembersOptions {\n /**\n * Site member IDs to exclude from bulk participant creation. Maximum 100 member IDs can be excluded.\n * @format GUID\n * @maxSize 100\n */\n excludeMemberIds?: string[];\n}\n\n/**\n * Removes a participant from the program.\n *\n * The member will lose access to program content but will remain in any associated social groups.\n * @param participantId - ID of the participant to delete.\n * @public\n * @documentationMaturity preview\n * @requiredField participantId\n * @permissionId online_programs:participants:v3:participant:delete_participant\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.DeleteParticipant\n */\nexport async function deleteParticipant(participantId: string): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantId: participantId,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.deleteParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { participantId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['participantId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Manually issues a certificate to an active or finished participant.\n *\n * A finished participant has completed or failed the program, or was automatically removed.\n * The program must have a connected certificate reward. When authenticated as a site member,\n * the participant must have completed the program.\n * @param participantId - ID of the participant to issue the certificate to.\n * @public\n * @documentationMaturity preview\n * @requiredField participantId\n * @permissionId online_programs:participants:v3:participant:issue_certificate\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.IssueCertificate\n */\nexport async function issueCertificate(\n participantId: string,\n options?: IssueCertificateOptions\n): Promise<\n NonNullablePaths<\n IssueCertificateResponse,\n | `participant.memberId`\n | `participant.programId`\n | `participant.progress.totalStepsCompleted`\n | `participant.progress.totalStepsAvailable`\n | `participant.progress.completionPercentage`\n | `participant.enrollmentStatus`\n | `participant.progressStatus`\n | `participant.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participant.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participant.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participant.enrollmentInfo.timeZone`\n | `participant.enrollmentInfo.startDate`\n | `participant.enrollmentInfo.pricingType`\n | `participant.tags.privateTags.tagIds`,\n 5\n > & {\n __applicationErrorsType?: IssueCertificateApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantId: participantId,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.issueCertificate(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participantId: '$[0]',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participantId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface IssueCertificateOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Retrieves a download URL for the participant's latest issued certificate.\n *\n * The URL is returned only after the certificate document finishes rendering.\n * @param participantId - ID of the participant whose certificate download URL to retrieve.\n * @public\n * @documentationMaturity preview\n * @requiredField participantId\n * @permissionId online_programs:participants:v3:participant:get_certificate_download_url\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetCertificateDownloadUrl\n */\nexport async function getCertificateDownloadUrl(participantId: string): Promise<\n NonNullablePaths<GetCertificateDownloadUrlResponse, `downloadUrl`, 2> & {\n __applicationErrorsType?: GetCertificateDownloadUrlApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantId: participantId,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getCertificateDownloadUrl(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { participantId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['participantId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves premium plan statistics for the site.\n * @public\n * @documentationMaturity preview\n * @permissionId online_programs:participants:v3:participant:get_premium_stats\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetPremiumStats\n */\nexport async function getPremiumStats(): Promise<\n NonNullablePaths<\n GetPremiumStatsResponse,\n `premiumEnabled` | `activeParticipantsCount` | `activeParticipantsLimit`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getPremiumStats(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves site-wide participant statistics for the requested programs.\n *\n * The statistics aren't limited to the caller's own participation records.\n * @param programIds - IDs of the programs to retrieve participant statistics for.\n * @public\n * @documentationMaturity preview\n * @requiredField programIds\n * @permissionId online_programs:participants:v3:participant:get_participation_stats\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetParticipationStats\n */\nexport async function getParticipationStats(\n programIds: string[]\n): Promise<\n NonNullablePaths<\n GetParticipationStatsResponse,\n | `participationStats`\n | `participationStats.${number}.programId`\n | `participationStats.${number}.participantsCount`\n | `participationStats.${number}.autoRemovedCount`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n programIds: programIds,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getParticipationStats(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { programIds: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['programIds']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Returns a participant by ID.\n * @param participantId - ID of the participant to fetch.\n * @public\n * @documentationMaturity preview\n * @requiredField participantId\n * @permissionId online_programs:participants:v3:participant:get_participant\n * @applicableIdentity APP\n * @returns The retrieved participant.\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetParticipant\n */\nexport async function getParticipant(\n participantId: string,\n options?: GetParticipantOptions\n): Promise<\n NonNullablePaths<\n Participant,\n | `memberId`\n | `programId`\n | `progress.totalStepsCompleted`\n | `progress.totalStepsAvailable`\n | `progress.completionPercentage`\n | `enrollmentStatus`\n | `progressStatus`\n | `enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `enrollmentInfo.paidPlanDetails.paidPlanId`\n | `enrollmentInfo.freeCouponDetails.freeCouponId`\n | `enrollmentInfo.timeZone`\n | `enrollmentInfo.startDate`\n | `enrollmentInfo.pricingType`\n | `tags.privateTags.tagIds`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantId: participantId,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getParticipant(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.participant!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participantId: '$[0]',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['participantId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetParticipantOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Queries existing participants.\n * @public\n * @documentationMaturity preview\n * @permissionId online_programs:participants:v3:participant:query_participants\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.QueryParticipants\n */\nexport function queryParticipants(\n options?: QueryParticipantsOptions\n): ParticipantsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Participant,\n 'CURSOR',\n QueryParticipantsRequest,\n QueryParticipantsResponse\n >({\n func: async (payload: QueryParticipantsRequest) => {\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.queryParticipants({\n ...payload,\n ...(options ?? {}),\n });\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n return result;\n } catch (err) {\n sideEffects?.onError?.(err);\n throw err;\n }\n },\n requestTransformer: (query: QueryParticipantsRequest['query']) => {\n const args = [query, options] as [\n QueryParticipantsRequest['query'],\n QueryParticipantsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest({\n ...args?.[1],\n query: args?.[0],\n });\n },\n responseTransformer: ({\n data,\n }: HttpResponse<QueryParticipantsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [])\n );\n\n return {\n items: transformedData?.participants,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryParticipantsOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[] | undefined;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface ParticipantsQueryResult extends QueryCursorResult {\n items: Participant[];\n query: ParticipantsQueryBuilder;\n next: () => Promise<ParticipantsQueryResult>;\n prev: () => Promise<ParticipantsQueryResult>;\n}\n\nexport interface ParticipantsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n eq: (\n propertyName:\n | '_id'\n | '_createdDate'\n | 'memberId'\n | 'programId'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ne: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ge: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n gt: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n le: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n lt: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentInfo.startDate',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @documentationMaturity preview */\n in: (\n propertyName:\n | '_id'\n | '_createdDate'\n | 'memberId'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus',\n value: any\n ) => ParticipantsQueryBuilder;\n /** @documentationMaturity preview */\n exists: (\n propertyName:\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate',\n value: boolean\n ) => ParticipantsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n ascending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus'\n | 'enrollmentInfo.startDate'\n >\n ) => ParticipantsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n descending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | 'progress.totalStepsCompleted'\n | 'lastActivityDate'\n | 'enrollmentStatus'\n | 'progressStatus'\n | 'enrollmentInfo.startDate'\n >\n ) => ParticipantsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object.\n * @documentationMaturity preview\n */\n limit: (limit: number) => ParticipantsQueryBuilder;\n /** @param cursor - A pointer to specific record\n * @documentationMaturity preview\n */\n skipTo: (cursor: string) => ParticipantsQueryBuilder;\n /** @documentationMaturity preview */\n find: () => Promise<ParticipantsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.QueryParticipants\n * @requiredField query\n */\nexport async function typedQueryParticipants(\n query: ParticipantQuery,\n options?: QueryParticipantsOptions\n): Promise<\n NonNullablePaths<\n QueryParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n query: query,\n ...options,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.queryParticipants(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['query', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ParticipantQuerySpec extends QuerySpec {\n paging: 'cursor';\n wql: [\n {\n fields: ['_id'];\n operators: ['$eq', '$in'];\n sort: 'BOTH';\n },\n {\n fields: ['enrollmentStatus', 'progressStatus'];\n operators: ['$eq', '$in'];\n sort: 'BOTH';\n },\n {\n fields: ['memberId'];\n operators: ['$eq', '$in'];\n sort: 'NONE';\n },\n {\n fields: ['programId'];\n operators: ['$eq'];\n sort: 'NONE';\n },\n {\n fields: [\n '_createdDate',\n 'lastActivityDate',\n 'progress.totalStepsCompleted'\n ];\n operators: '*';\n sort: 'BOTH';\n },\n {\n fields: ['enrollmentInfo.startDate'];\n operators: ['$gt', '$gte', '$lt', '$lte'];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n Participant,\n ParticipantQuerySpec\n>;\nexport type ParticipantQuery = {\n /** \n Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonQueryWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 100 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonQueryWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n }[];\n};\n\nexport const utils = {\n query: /*#__PURE__*/ createQueryUtils<\n Participant,\n ParticipantQuerySpec,\n ParticipantQuery\n >(),\n search: /*#__PURE__*/ createSearchUtils<\n Participant,\n ParticipantSearchSpec,\n ParticipantSearch\n >(),\n};\n\n/**\n * Retrieves the access status for the current site, indicating whether participants can access\n * online programs or if access is blocked due to plan limitations or other restrictions.\n * @public\n * @documentationMaturity preview\n * @permissionId online_programs:participants:v3:participant:get_access_status\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.GetAccessStatus\n */\nexport async function getAccessStatus(): Promise<\n NonNullablePaths<GetAccessStatusResponse, `accessBlocked`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.getAccessStatus(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Updates tags for multiple Participants by IDs.\n *\n * Allows assigning and/or unassigning tags in a single operation.\n * At least one of assign_tags or unassign_tags must be provided.\n * @param participantIds - Participant IDs to update tags for (1-100 items)\n * @public\n * @documentationMaturity preview\n * @requiredField participantIds\n * @permissionId online_programs:participants:v3:participant:bulk_update_participant_tags\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTags\n */\nexport async function bulkUpdateParticipantTags(\n participantIds: string[],\n options?: BulkUpdateParticipantTagsOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateParticipantTagsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateParticipantTagsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n participantIds: participantIds,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkUpdateParticipantTags(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n participantIds: '$[0]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['participantIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateParticipantTagsOptions {\n /** Tags to assign to the Participants */\n assignTags?: Tags;\n /** Tags to unassign from the Participants */\n unassignTags?: Tags;\n}\n\n/**\n * Updates tags for Participants matching a filter.\n *\n * Allows assigning and/or unassigning tags for all Participants matching the filter.\n * Returns a job ID for tracking the async operation.\n * @param filter - WQL filter to select Participants\n * @public\n * @documentationMaturity preview\n * @requiredField filter\n * @permissionId online_programs:participants:v3:participant:bulk_update_participant_tags_by_filter\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTagsByFilter\n */\nexport async function bulkUpdateParticipantTagsByFilter(\n filter: Record<string, any>,\n options?: BulkUpdateParticipantTagsByFilterOptions\n): Promise<\n NonNullablePaths<BulkUpdateParticipantTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateParticipantTagsByFilterApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n filter: filter,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.bulkUpdateParticipantTagsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateParticipantTagsByFilterOptions {\n /** Tags to assign to matching Participants */\n assignTags?: Tags;\n /** Tags to unassign from matching Participants */\n unassignTags?: Tags;\n}\n\n/**\n * Retrieves a list of participants matching the search criteria.\n *\n * Results and aggregations include only the participant records that the caller is authorized to access.\n * @param search - Query to search participants.\n * @public\n * @documentationMaturity preview\n * @requiredField search\n * @permissionId online_programs:participants:v3:participant:search_participants\n * @applicableIdentity APP\n * @fqn wix.onlineprograms.participants.v3.ParticipantsService.SearchParticipants\n */\nexport async function searchParticipants(\n search: ParticipantSearch,\n options?: SearchParticipantsOptions\n): Promise<\n NonNullablePaths<\n SearchParticipantsResponse,\n | `participants`\n | `participants.${number}.memberId`\n | `participants.${number}.programId`\n | `participants.${number}.progress.totalStepsCompleted`\n | `participants.${number}.progress.totalStepsAvailable`\n | `participants.${number}.progress.completionPercentage`\n | `participants.${number}.enrollmentStatus`\n | `participants.${number}.progressStatus`\n | `participants.${number}.enrollmentInfo.singlePaymentDetails.paymentOrderId`\n | `participants.${number}.enrollmentInfo.paidPlanDetails.paidPlanId`\n | `participants.${number}.enrollmentInfo.freeCouponDetails.freeCouponId`\n | `participants.${number}.enrollmentInfo.timeZone`\n | `participants.${number}.enrollmentInfo.startDate`\n | `participants.${number}.enrollmentInfo.pricingType`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n search: search,\n fields: options?.fields,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.searchParticipants(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { search: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['search', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface SearchParticipantsOptions {\n /**\n * Array of conditional fields to include in the response.\n * Use RequestedFields.PROGRESS to include the progress field which is conditionally returned.\n * @maxSize 1\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface ParticipantSearchSpec extends SearchSpec {\n searchable: [\n 'member.email',\n 'member.firstName',\n 'member.lastName',\n 'member.nickname'\n ];\n aggregatable: [\n '_createdDate',\n '_id',\n '_updatedDate',\n 'enrollmentInfo.startDate',\n 'enrollmentStatus',\n 'lastActivityDate',\n 'member.contactId',\n 'memberId',\n 'programId',\n 'progress.completionPercentage',\n 'progress.totalStepsCompleted',\n 'progressStatus'\n ];\n paging: 'cursor';\n wql: [\n {\n operators: '*';\n fields: [\n '_id',\n 'enrollmentInfo.startDate',\n 'member.contactId',\n 'member.email',\n 'member.firstName',\n 'member.lastName',\n 'member.nickname',\n 'memberId',\n 'programId',\n 'progress.completionPercentage',\n 'progress.totalStepsCompleted'\n ];\n sort: 'BOTH';\n },\n {\n operators: ['$eq', '$in', '$nin'];\n fields: ['enrollmentStatus', 'progressStatus'];\n sort: 'BOTH';\n },\n {\n operators: '*';\n fields: ['_createdDate', '_updatedDate', 'lastActivityDate'];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonSearchWithEntityContext = SearchSdkType<\n Participant,\n ParticipantSearchSpec\n>;\nexport type ParticipantSearch = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonSearchWithEntityContext['filter'] | null;\n /** \n List of sort objects.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 10 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonSearchWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonSearchWithEntityContext['sort']>[number]['order'];\n }[];\n /** \n Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories. \n @maxSize: 10 \n */\n aggregations?: {\n /** \n A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. \n */\n value?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['value'];\n /** \n A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. \n */\n range?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['range'];\n /** \n A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. \n */\n scalar?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['scalar'];\n /** \n A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. \n */\n dateHistogram?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['dateHistogram'];\n /** \n A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. \n */\n nested?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['nested'];\n /** \n Aggregation name, returned in `aggregations.results.name`. \n @maxLength: 100 \n */\n name?:\n | NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['name']\n | null;\n /** \n Type of aggregation to perform. Must align with the corresponding aggregation field. \n */\n type?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['type'];\n /** \n Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n @maxLength: 200 \n */\n fieldPath?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['fieldPath'];\n /** \n Deprecated. Use `nested` instead. \n @deprecated: Deprecated. Use `nested` instead.,\n @replacedBy: kind.nested,\n @targetRemovalDate: 2024-03-30 \n */\n groupBy?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['groupBy'];\n }[];\n /** \n Free text to match in searchable fields. \n */\n search?: {\n /** \n Search mode. Defines the search logic for combining multiple terms in the `expression`. \n */\n mode?: NonNullable<CommonSearchWithEntityContext['search']>['mode'];\n /** \n Search term or expression. \n @maxLength: 100 \n */\n expression?:\n | NonNullable<CommonSearchWithEntityContext['search']>['expression']\n | null;\n /** \n Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n @maxLength: 200,\n @maxSize: 20 \n */\n fields?: NonNullable<CommonSearchWithEntityContext['search']>['fields'];\n /** \n Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. \n */\n fuzzy?: NonNullable<CommonSearchWithEntityContext['search']>['fuzzy'];\n };\n /** \n Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\n Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\". \n @maxLength: 50 \n */\n timeZone?: CommonSearchWithEntityContext['timeZone'] | null;\n};\n\n/**\n * Exports participant data and step completion statistics for a program as a CSV file.\n * The export includes participant details, progress, status, and completion dates for each step.\n *\n * This method initiates an asynchronous export. Subscribe to the `ParticipantExportsFinished`\n * event to receive the download URL when the export completes.\n * @param programId - program id to export data from\n * @internal\n * @documentationMaturity preview\n * @requiredField programId\n * @permissionId online_programs:participants:v3:participant:export_participants_stats\n * @fqn wix.onlineprograms.participants.v3.ParticipantExportsService.ExportParticipantsStats\n */\nexport async function exportParticipantsStats(\n programId: string\n): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n programId: programId,\n });\n\n const reqOpts =\n ambassadorWixOnlineProgramsParticipantsV3Participant.exportParticipantsStats(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { programId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['programId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixOnlineprogramsParticipantsV3ParticipantExportsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'bo._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wixbo.ai': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wix-bo.com': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n _: [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/online-programs/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/stats/premium',\n destPath: '/v3/stats/premium',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nfunction resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'bo._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wixbo.ai': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'wix-bo.com': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n _: [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/participants-service',\n destPath: '',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/online-programs/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/participants',\n destPath: '/v3/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/bulk/participants',\n destPath: '/v3/bulk/participants',\n },\n {\n srcPath: '/online-programs/participants/v3/stats/premium',\n destPath: '/v3/stats/premium',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/participants-service',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_online-programs_participants';\n\n/**\n * Creates a participant.\n *\n * Returns an error if the member is already a participant in the specified program.\n * Use UpdateParticipant to modify existing participants.\n */\nexport function createParticipant(payload: object): RequestOptionsFactory<any> {\n function __createParticipant({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.CreateParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createParticipant;\n}\n\n/**\n * Updates a participant's enrollment status or enrollment pricing details.\n *\n * Use this method to suspend or resume a participant by setting `enrollment_status` to\n * `SUSPENDED` or `JOINED`. To remove a participant, use `DeleteParticipant`.\n * Progress status is calculated from the participant's resolved steps and can't be updated.\n */\nexport function updateParticipant(payload: object): RequestOptionsFactory<any> {\n function __updateParticipant({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'PATCH' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.UpdateParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participant.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateParticipant;\n}\n\n/**\n * Creates participants in bulk.\n *\n * All participants in a single bulk create request must belong to the same program.\n * Returns an error if the member is already a participant in the specified program.\n *\n * When `pricing_type` is `SINGLE_PAYMENT`, provide `single_payment_details`.\n * When `pricing_type` is `PAID_PLAN`, provide `paid_plan_details`.\n * When `pricing_type` is `FREE_COUPON`, provide `free_coupon_details`.\n * Other pricing types (`FREE`, `ADDED_MANUALLY`) do not require details.\n */\nexport function bulkCreateParticipants(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateParticipants({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'participants.createdDate' },\n { path: 'participants.updatedDate' },\n { path: 'participants.lastActivityDate' },\n { path: 'participants.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [{ path: 'participants.progress.completionPercentage' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipants',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/create',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.lastActivityDate' },\n { path: 'results.item.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'results.item.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkCreateParticipants;\n}\n\n/**\n * Creates participants in bulk for all site members in a program, with an optional exclusion filter.\n *\n * Participants are created in the `JOINED` state with the join path set to `ADDED`.\n * Members who are already participants in the program will be skipped.\n * Only members who are not yet participants will be added.\n */\nexport function bulkCreateParticipantsForAllMembers(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateParticipantsForAllMembers({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkCreateParticipantsForAllMembers',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/create-for-all-members',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkCreateParticipantsForAllMembers;\n}\n\n/**\n * Removes a participant from the program.\n *\n * The member will lose access to program content but will remain in any associated social groups.\n */\nexport function deleteParticipant(payload: object): RequestOptionsFactory<any> {\n function __deleteParticipant({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'DELETE' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.DeleteParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participantId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteParticipant;\n}\n\n/**\n * Manually issues a certificate to an active or finished participant.\n *\n * A finished participant has completed or failed the program, or was automatically removed.\n * The program must have a connected certificate reward. When authenticated as a site member,\n * the participant must have completed the program.\n */\nexport function issueCertificate(payload: object): RequestOptionsFactory<any> {\n function __issueCertificate({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.IssueCertificate',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participantId}/issue-certificate',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __issueCertificate;\n}\n\n/**\n * Retrieves a download URL for the participant's latest issued certificate.\n *\n * The URL is returned only after the certificate document finishes rendering.\n */\nexport function getCertificateDownloadUrl(\n payload: object\n): RequestOptionsFactory<any> {\n function __getCertificateDownloadUrl({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetCertificateDownloadUrl',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participantId}/certificate-download-url',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [{ path: 'expirationDate' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getCertificateDownloadUrl;\n}\n\n/** Retrieves premium plan statistics for the site. */\nexport function getPremiumStats(payload: object): RequestOptionsFactory<any> {\n function __getPremiumStats({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetPremiumStats',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/stats/premium',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getPremiumStats;\n}\n\n/**\n * Retrieves site-wide participant statistics for the requested programs.\n *\n * The statistics aren't limited to the caller's own participation records.\n */\nexport function getParticipationStats(\n payload: object\n): RequestOptionsFactory<any> {\n function __getParticipationStats({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetParticipationStats',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/stats',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __getParticipationStats;\n}\n\n/** Returns a participant by ID. */\nexport function getParticipant(payload: object): RequestOptionsFactory<any> {\n function __getParticipant({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetParticipant',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/{participantId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participant.createdDate' },\n { path: 'participant.updatedDate' },\n { path: 'participant.lastActivityDate' },\n { path: 'participant.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participant.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getParticipant;\n}\n\n/** Queries existing participants. */\nexport function queryParticipants(payload: object): RequestOptionsFactory<any> {\n function __queryParticipants({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.QueryParticipants',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/query',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participants.createdDate' },\n { path: 'participants.updatedDate' },\n { path: 'participants.lastActivityDate' },\n { path: 'participants.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [{ path: 'participants.progress.completionPercentage' }],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __queryParticipants;\n}\n\n/**\n * Retrieves the access status for the current site, indicating whether participants can access\n * online programs or if access is blocked due to plan limitations or other restrictions.\n */\nexport function getAccessStatus(payload: object): RequestOptionsFactory<any> {\n function __getAccessStatus({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.GetAccessStatus',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/access',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getAccessStatus;\n}\n\n/**\n * Updates tags for multiple Participants by IDs.\n *\n * Allows assigning and/or unassigning tags in a single operation.\n * At least one of assign_tags or unassign_tags must be provided.\n */\nexport function bulkUpdateParticipantTags(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateParticipantTags({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTags',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/update-tags',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateParticipantTags;\n}\n\n/**\n * Updates tags for Participants matching a filter.\n *\n * Allows assigning and/or unassigning tags for all Participants matching the filter.\n * Returns a job ID for tracking the async operation.\n */\nexport function bulkUpdateParticipantTagsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateParticipantTagsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.BulkUpdateParticipantTagsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/bulk/participants/update-tags-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateParticipantTagsByFilter;\n}\n\n/**\n * Retrieves a list of participants matching the search criteria.\n *\n * Results and aggregations include only the participant records that the caller is authorized to access.\n */\nexport function searchParticipants(\n payload: object\n): RequestOptionsFactory<any> {\n function __searchParticipants({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'search.aggregations.range.buckets.from' },\n { path: 'search.aggregations.range.buckets.to' },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.from',\n },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.to',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'POST' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantsService.SearchParticipants',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantsServiceUrl({\n protoPath: '/v3/participants/search',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'participants.createdDate' },\n { path: 'participants.updatedDate' },\n { path: 'participants.lastActivityDate' },\n { path: 'participants.certificateInfo.issueDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'participants.progress.completionPercentage' },\n { path: 'aggregationData.results.scalar.value' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.scalar.value',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.scalar.value',\n },\n { path: 'aggregationData.results.ranges.results.from' },\n { path: 'aggregationData.results.ranges.results.to' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.from',\n },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.to',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.from',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.to',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __searchParticipants;\n}\n\n/**\n * Exports participant data and step completion statistics for a program as a CSV file.\n * The export includes participant details, progress, status, and completion dates for each step.\n *\n * This method initiates an asynchronous export. Subscribe to the `ParticipantExportsFinished`\n * event to receive the download URL when the export completes.\n */\nexport function exportParticipantsStats(\n payload: object\n): RequestOptionsFactory<any> {\n function __exportParticipantsStats({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.online_programs.participants.v3.participant',\n method: 'GET' as any,\n methodFqn:\n 'wix.onlineprograms.participants.v3.ParticipantExportsService.ExportParticipantsStats',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixOnlineprogramsParticipantsV3ParticipantExportsServiceUrl({\n protoPath: '/v3/participants/export/{programId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __exportParticipantsStats;\n}\n","import {\n createParticipant as publicCreateParticipant,\n updateParticipant as publicUpdateParticipant,\n bulkCreateParticipants as publicBulkCreateParticipants,\n bulkCreateParticipantsForAllMembers as publicBulkCreateParticipantsForAllMembers,\n deleteParticipant as publicDeleteParticipant,\n issueCertificate as publicIssueCertificate,\n getCertificateDownloadUrl as publicGetCertificateDownloadUrl,\n getPremiumStats as publicGetPremiumStats,\n getParticipationStats as publicGetParticipationStats,\n getParticipant as publicGetParticipant,\n queryParticipants as publicQueryParticipants,\n typedQueryParticipants as publicTypedQueryParticipants,\n getAccessStatus as publicGetAccessStatus,\n bulkUpdateParticipantTags as publicBulkUpdateParticipantTags,\n bulkUpdateParticipantTagsByFilter as publicBulkUpdateParticipantTagsByFilter,\n searchParticipants as publicSearchParticipants,\n exportParticipantsStats as publicExportParticipantsStats,\n} from './online-programs-participants-v3-participant-participants.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { createEventModule } from '@wix/sdk-runtime/event-definition-modules';\nimport {\n BuildRESTFunction,\n MaybeContext,\n BuildEventDefinition,\n} from '@wix/sdk-types';\nimport { HttpClient } from '@wix/sdk-types';\nimport { createQueryOverloadRouter } from '@wix/sdk-runtime/query-method-router';\nimport {\n ParticipantQuery,\n ParticipantsQueryBuilder,\n QueryParticipantsOptions,\n typedQueryParticipants as universalTypedQueryParticipants,\n} from './online-programs-participants-v3-participant-participants.universal.js';\nimport { onParticipantCompletedProgram as publicOnParticipantCompletedProgram } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantCreated as publicOnParticipantCreated } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantDeleted as publicOnParticipantDeleted } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantLeft as publicOnParticipantLeft } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantMissedProgramDeadline as publicOnParticipantMissedProgramDeadline } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantProgramDurationEnded as publicOnParticipantProgramDurationEnded } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantRemoved as publicOnParticipantRemoved } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantTagsModified as publicOnParticipantTagsModified } from './online-programs-participants-v3-participant-participants.public.js';\nimport { onParticipantUpdated as publicOnParticipantUpdated } from './online-programs-participants-v3-participant-participants.public.js';\n\nfunction customQueryParticipants(httpClient: HttpClient) {\n const router = /*#__PURE__*/ createQueryOverloadRouter({\n builderQueryFunction: (options?: QueryParticipantsOptions) =>\n publicQueryParticipants(httpClient)(options),\n typedQueryFunction: (\n query: ParticipantQuery,\n options?: QueryParticipantsOptions\n ) => publicTypedQueryParticipants(httpClient)(query, options),\n hasOptionsParameter: true,\n });\n\n function overloadedQuery(\n query: ParticipantQuery,\n options?: QueryParticipantsOptions\n ): ReturnType<typeof universalTypedQueryParticipants>;\n function overloadedQuery(\n options?: QueryParticipantsOptions\n ): ParticipantsQueryBuilder;\n function overloadedQuery(\n queryOrOptions?: ParticipantQuery | QueryParticipantsOptions,\n options?: QueryParticipantsOptions\n ): any {\n return router(...arguments);\n }\n\n return overloadedQuery;\n}\n\nexport const createParticipant: MaybeContext<\n BuildRESTFunction<typeof publicCreateParticipant> &\n typeof publicCreateParticipant\n> = /*#__PURE__*/ createRESTModule(publicCreateParticipant);\nexport const updateParticipant: MaybeContext<\n BuildRESTFunction<typeof publicUpdateParticipant> &\n typeof publicUpdateParticipant\n> = /*#__PURE__*/ createRESTModule(publicUpdateParticipant);\nexport const bulkCreateParticipants: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateParticipants> &\n typeof publicBulkCreateParticipants\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateParticipants);\nexport const bulkCreateParticipantsForAllMembers: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateParticipantsForAllMembers> &\n typeof publicBulkCreateParticipantsForAllMembers\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateParticipantsForAllMembers);\nexport const deleteParticipant: MaybeContext<\n BuildRESTFunction<typeof publicDeleteParticipant> &\n typeof publicDeleteParticipant\n> = /*#__PURE__*/ createRESTModule(publicDeleteParticipant);\nexport const issueCertificate: MaybeContext<\n BuildRESTFunction<typeof publicIssueCertificate> &\n typeof publicIssueCertificate\n> = /*#__PURE__*/ createRESTModule(publicIssueCertificate);\nexport const getCertificateDownloadUrl: MaybeContext<\n BuildRESTFunction<typeof publicGetCertificateDownloadUrl> &\n typeof publicGetCertificateDownloadUrl\n> = /*#__PURE__*/ createRESTModule(publicGetCertificateDownloadUrl);\nexport const getPremiumStats: MaybeContext<\n BuildRESTFunction<typeof publicGetPremiumStats> & typeof publicGetPremiumStats\n> = /*#__PURE__*/ createRESTModule(publicGetPremiumStats);\nexport const getParticipationStats: MaybeContext<\n BuildRESTFunction<typeof publicGetParticipationStats> &\n typeof publicGetParticipationStats\n> = /*#__PURE__*/ createRESTModule(publicGetParticipationStats);\nexport const getParticipant: MaybeContext<\n BuildRESTFunction<typeof publicGetParticipant> & typeof publicGetParticipant\n> = /*#__PURE__*/ createRESTModule(publicGetParticipant);\nexport const getAccessStatus: MaybeContext<\n BuildRESTFunction<typeof publicGetAccessStatus> & typeof publicGetAccessStatus\n> = /*#__PURE__*/ createRESTModule(publicGetAccessStatus);\nexport const bulkUpdateParticipantTags: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateParticipantTags> &\n typeof publicBulkUpdateParticipantTags\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateParticipantTags);\nexport const bulkUpdateParticipantTagsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateParticipantTagsByFilter> &\n typeof publicBulkUpdateParticipantTagsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateParticipantTagsByFilter);\nexport const searchParticipants: MaybeContext<\n BuildRESTFunction<typeof publicSearchParticipants> &\n typeof publicSearchParticipants\n> = /*#__PURE__*/ createRESTModule(publicSearchParticipants);\n/** @internal */\nexport const exportParticipantsStats: MaybeContext<\n BuildRESTFunction<typeof publicExportParticipantsStats> &\n typeof publicExportParticipantsStats\n> = /*#__PURE__*/ createRESTModule(publicExportParticipantsStats);\nexport const queryParticipants: MaybeContext<\n BuildRESTFunction<typeof customQueryParticipants> &\n typeof customQueryParticipants\n> = /*#__PURE__*/ createRESTModule(customQueryParticipants);\n/**\n * Triggered when a participant completes a program.\n */\nexport const onParticipantCompletedProgram: BuildEventDefinition<\n typeof publicOnParticipantCompletedProgram\n> &\n typeof publicOnParticipantCompletedProgram = /*#__PURE__*/ createEventModule(\n publicOnParticipantCompletedProgram\n);\n/**\n * Triggered when a participant is created.\n */\nexport const onParticipantCreated: BuildEventDefinition<\n typeof publicOnParticipantCreated\n> &\n typeof publicOnParticipantCreated = /*#__PURE__*/ createEventModule(\n publicOnParticipantCreated\n);\n/**\n * Triggered when a participant is deleted.\n */\nexport const onParticipantDeleted: BuildEventDefinition<\n typeof publicOnParticipantDeleted\n> &\n typeof publicOnParticipantDeleted = /*#__PURE__*/ createEventModule(\n publicOnParticipantDeleted\n);\n/**\n * Triggered when a participant voluntarily leaves a program.\n */\nexport const onParticipantLeft: BuildEventDefinition<\n typeof publicOnParticipantLeft\n> &\n typeof publicOnParticipantLeft = /*#__PURE__*/ createEventModule(\n publicOnParticipantLeft\n);\n/**\n * Triggered when a participant misses a program deadline.\n */\nexport const onParticipantMissedProgramDeadline: BuildEventDefinition<\n typeof publicOnParticipantMissedProgramDeadline\n> &\n typeof publicOnParticipantMissedProgramDeadline =\n /*#__PURE__*/ createEventModule(publicOnParticipantMissedProgramDeadline);\n/**\n * Triggered when a participant's program duration ends.\n */\nexport const onParticipantProgramDurationEnded: BuildEventDefinition<\n typeof publicOnParticipantProgramDurationEnded\n> &\n typeof publicOnParticipantProgramDurationEnded =\n /*#__PURE__*/ createEventModule(publicOnParticipantProgramDurationEnded);\n/**\n * Triggered when an administrator removes a participant from a program.\n */\nexport const onParticipantRemoved: BuildEventDefinition<\n typeof publicOnParticipantRemoved\n> &\n typeof publicOnParticipantRemoved = /*#__PURE__*/ createEventModule(\n publicOnParticipantRemoved\n);\n/**\n * Triggered when a participant's tags are modified.\n */\nexport const onParticipantTagsModified: BuildEventDefinition<\n typeof publicOnParticipantTagsModified\n> &\n typeof publicOnParticipantTagsModified = /*#__PURE__*/ createEventModule(\n publicOnParticipantTagsModified\n);\n/**\n * Triggered when a participant is updated.\n */\nexport const onParticipantUpdated: BuildEventDefinition<\n typeof publicOnParticipantUpdated\n> &\n typeof publicOnParticipantUpdated = /*#__PURE__*/ createEventModule(\n publicOnParticipantUpdated\n);\n\nexport {\n PricingType,\n EnrollmentStatus,\n ProgressStatus,\n RequestedFields,\n BulkActionType,\n SortOrder,\n SortType,\n SortDirection,\n MissingValues,\n ScalarType,\n NestedAggregationType,\n Interval,\n AggregationType,\n Mode,\n WebhookIdentityType,\n} from './online-programs-participants-v3-participant-participants.universal.js';\nexport {\n Participant,\n SinglePaymentDetails,\n PaidPlanDetails,\n FreeCouponDetails,\n Progress,\n CertificateInfo,\n Member,\n EnrollmentInfo,\n EnrollmentInfoPricingTypeDetailsOneOf,\n ExtendedFields,\n Tags,\n TagList,\n ReindexMessage,\n ReindexMessageActionOneOf,\n Upsert,\n Delete,\n Schema,\n ParticipantTagsModified,\n ParticipantCompletedProgram,\n ParticipantMissedProgramDeadline,\n ParticipantProgramDurationEnded,\n ParticipantRemoved,\n ParticipantLeft,\n CreateParticipantRequest,\n CreateParticipantResponse,\n UpdateParticipantRequest,\n UpdateParticipantResponse,\n BulkCreateParticipantsRequest,\n BulkCreateParticipantsResponse,\n BulkParticipantResult,\n ItemMetadata,\n ApplicationError,\n BulkActionMetadata,\n BulkUpsertParticipantsMigrationRequest,\n ParticipantMigration,\n BulkUpsertParticipantsMigrationResponse,\n BulkParticipantMigrationResult,\n DeleteAllParticipantsMigrationRequest,\n DeleteAllParticipantsMigrationResponse,\n ReindexParticipantsSearchRequest,\n ReindexParticipantsSearchResponse,\n SynchronizeTimeCapsuleTasksRequest,\n SynchronizeTimeCapsuleTasksResponse,\n BulkCreateParticipantsForAllMembersRequest,\n BulkCreateParticipantsForAllMembersResponse,\n DeleteParticipantRequest,\n DeleteParticipantResponse,\n IssueCertificateRequest,\n IssueCertificateResponse,\n GetCertificateDownloadUrlRequest,\n GetCertificateDownloadUrlResponse,\n GetCompletionStatsRequest,\n GetCompletionStatsResponse,\n GetPremiumStatsRequest,\n GetPremiumStatsResponse,\n GetParticipationStatsRequest,\n GetParticipationStatsResponse,\n ProgramParticipationStats,\n GetParticipantRequest,\n GetParticipantResponse,\n QueryParticipantsRequest,\n QueryV2,\n QueryV2PagingMethodOneOf,\n Sorting,\n Paging,\n CursorPaging,\n QueryParticipantsResponse,\n PagingMetadataV2,\n Cursors,\n GetAccessStatusRequest,\n GetAccessStatusResponse,\n BulkUpdateParticipantTagsRequest,\n BulkUpdateParticipantTagsResponse,\n BulkUpdateParticipantTagsResult,\n BulkUpdateParticipantTagsByFilterRequest,\n BulkUpdateParticipantTagsByFilterResponse,\n SearchParticipantsRequest,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Aggregation,\n AggregationKindOneOf,\n RangeBucket,\n IncludeMissingValuesOptions,\n ValueAggregation,\n ValueAggregationOptionsOneOf,\n RangeAggregation,\n ScalarAggregation,\n DateHistogramAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregation,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n SearchDetails,\n SearchParticipantsResponse,\n CursorPagingMetadata,\n AggregationData,\n ValueAggregationResult,\n RangeAggregationResult,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n ValueResults,\n RangeResults,\n AggregationResultsScalarResult,\n NestedValueAggregationResult,\n ValueResult,\n RangeResult,\n ScalarResult,\n NestedResultValue,\n NestedResultValueResultOneOf,\n Results,\n DateHistogramResult,\n GroupByValueResults,\n DateHistogramResults,\n NestedResults,\n AggregationResults,\n AggregationResultsResultOneOf,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n Empty,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n AccountInfo,\n ExportParticipantsStatsRequest,\n ExportParticipantsStatsResponse,\n BaseEventMetadata,\n EventMetadata,\n AccountInfoMetadata,\n ParticipantCompletedProgramEnvelope,\n ParticipantCreatedEnvelope,\n ParticipantDeletedEnvelope,\n ParticipantLeftEnvelope,\n ParticipantMissedProgramDeadlineEnvelope,\n ParticipantProgramDurationEndedEnvelope,\n ParticipantRemovedEnvelope,\n ParticipantTagsModifiedEnvelope,\n ParticipantUpdatedEnvelope,\n CreateParticipantOptions,\n UpdateParticipant,\n UpdateParticipantOptions,\n BulkCreateParticipantsOptions,\n BulkCreateParticipantsForAllMembersOptions,\n IssueCertificateOptions,\n GetParticipantOptions,\n QueryParticipantsOptions,\n ParticipantsQueryResult,\n ParticipantsQueryBuilder,\n ParticipantQuerySpec,\n BulkUpdateParticipantTagsOptions,\n BulkUpdateParticipantTagsByFilterOptions,\n SearchParticipantsOptions,\n ParticipantSearchSpec,\n} from './online-programs-participants-v3-participant-participants.universal.js';\nexport { utils } from './online-programs-participants-v3-participant-participants.universal.js';\nexport {\n PricingTypeWithLiterals,\n EnrollmentStatusWithLiterals,\n ProgressStatusWithLiterals,\n RequestedFieldsWithLiterals,\n BulkActionTypeWithLiterals,\n SortOrderWithLiterals,\n SortTypeWithLiterals,\n SortDirectionWithLiterals,\n MissingValuesWithLiterals,\n ScalarTypeWithLiterals,\n NestedAggregationTypeWithLiterals,\n IntervalWithLiterals,\n AggregationTypeWithLiterals,\n ModeWithLiterals,\n WebhookIdentityTypeWithLiterals,\n CreateParticipantApplicationErrors,\n BulkCreateParticipantsApplicationErrors,\n IssueCertificateApplicationErrors,\n GetCertificateDownloadUrlApplicationErrors,\n BulkUpdateParticipantTagsApplicationErrors,\n BulkUpdateParticipantTagsByFilterApplicationErrors,\n CommonQueryWithEntityContext,\n ParticipantQuery,\n CommonSearchWithEntityContext,\n ParticipantSearch,\n} from './online-programs-participants-v3-participant-participants.universal.js';\n"],"mappings":"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","names":["bulkCreateParticipants","bulkCreateParticipantsForAllMembers","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","createParticipant","deleteParticipant","exportParticipantsStats","getAccessStatus","getCertificateDownloadUrl","getParticipant","getParticipationStats","getPremiumStats","issueCertificate","onParticipantCompletedProgram","onParticipantCreated","onParticipantDeleted","onParticipantLeft","onParticipantMissedProgramDeadline","onParticipantProgramDurationEnded","onParticipantRemoved","onParticipantTagsModified","onParticipantUpdated","queryParticipants","searchParticipants","updateParticipant","import_rename_all_nested_keys","import_float","import_timestamp","import_transform_paths","import_float","import_timestamp","import_rest_modules","payload","import_transform_paths","PricingType","EnrollmentStatus","ProgressStatus","RequestedFields","BulkActionType","SortOrder","SortType","SortDirection","MissingValues","ScalarType","NestedAggregationType","Interval","AggregationType","Mode","WebhookIdentityType","createParticipant","sdkTransformError","updateParticipant","bulkCreateParticipants","bulkCreateParticipantsForAllMembers","deleteParticipant","issueCertificate","getCertificateDownloadUrl","getPremiumStats","getParticipationStats","getParticipant","queryParticipants","getAccessStatus","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","searchParticipants","exportParticipantsStats","createParticipant","updateParticipant","bulkCreateParticipants","bulkCreateParticipantsForAllMembers","deleteParticipant","issueCertificate","getCertificateDownloadUrl","getPremiumStats","getParticipationStats","getParticipant","queryParticipants","typedQueryParticipants","getAccessStatus","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","searchParticipants","exportParticipantsStats","import_rest_modules","queryParticipants","typedQueryParticipants","createParticipant","updateParticipant","bulkCreateParticipants","bulkCreateParticipantsForAllMembers","deleteParticipant","issueCertificate","getCertificateDownloadUrl","getPremiumStats","getParticipationStats","getParticipant","getAccessStatus","bulkUpdateParticipantTags","bulkUpdateParticipantTagsByFilter","searchParticipants","exportParticipantsStats","onParticipantCompletedProgram","onParticipantCreated","onParticipantDeleted","onParticipantLeft","onParticipantMissedProgramDeadline","onParticipantProgramDurationEnded","onParticipantRemoved","onParticipantTagsModified","onParticipantUpdated"]}
|