import * as _wix_sdk_types from '@wix/sdk-types'; import { QuerySpec, Query, NonNullablePaths } from '@wix/sdk-types'; /** * A donation campaign represents a fundraising initiative that allows collecting donations * for a specific cause or goal. Campaigns can be configured with various donation options, * including one-time and recurring payments, predefined amounts, and campaign goals. * * Use the Donation Campaigns API to create and manage donation campaigns on your site. */ interface DonationCampaign { /** * Donation campaign ID. * @format GUID * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the donation campaign is updated. * To prevent conflicting changes, the current `revision` must be specified when updating the donation campaign. * * Ignored when creating a donation campaign. * @readonly */ revision?: string | null; /** * Date and time the donation campaign was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the donation campaign was last updated. * @readonly */ _updatedDate?: Date | null; /** * Name of the donation campaign. * @minLength 1 * @maxLength 65 */ name?: string; /** * Whether the donation campaign is archived and hidden from site visitors. * Archived campaigns can't accept donations. * * Default: `false` */ archived?: boolean; /** * Current status of the donation campaign. * * The status is automatically calculated based on campaign settings and current progress: * - `COLLECTING`: Campaign is active and accepting donations * - `EXPIRED`: Campaign has passed its end date and `acceptDonationsAfterEndDate` is `false` * - `GOAL_REACHED`: Campaign has reached its target amount and `acceptDonationsAfterGoal` is `false` * @readonly */ status?: StatusWithLiterals; /** Cover image for the donation campaign. */ coverImage?: string; /** * Whether donors can specify their own donation amount. * If custom amounts are disabled, at least one predefined amount must be provided. * * Default: `false` */ customAmountEnabled?: boolean | null; /** Optional settings for custom donation amounts. */ customAmountOptions?: CustomAmountOptions; /** * Predefined donation amounts. * * Each amount can include an optional description explaining its impact. For example, "Feed 5 families for a week". * @maxSize 20 */ predefinedDonationAmounts?: PredefinedAmount[]; /** Campaign fundraising goal. */ campaignGoal?: CampaignGoal; /** * Whether donors can add comments to their donations. * * Default: `false` */ commentsEnabled?: boolean; /** * Donation frequencies available for this campaign. * * At least one frequency must be specified. * @minSize 1 * @maxSize 4 */ donationFrequencies?: FrequencyWithLiterals[]; /** * Whether to ask donors during checkout if they want to add 2.9% to their donation to cover fees. * * When `false`, fees are deducted from the donation amount, * meaning the campaign receives less than the donor's original contribution. * * When `true`, donors are presented with an option in the checkout UI to * add a 2.9% fee on top of their donation. This fee helps offset * processing costs, ensuring more of the original donation reaches the campaign. * The donor always has the choice — they are never automatically charged the fee. * * For recurring donations, if the donor opts to cover fees, the 2.9% fee * is applied to each recurring payment (not just the first one). * * > **Notes:** * > + The 2.9% rate is fixed and cannot be customized by campaign owners. * > + This feature works with all payment methods and currencies. * * Default: `false` */ askDonorCoverFee?: boolean; /** * Custom field data for the program definition object. * * [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions) must be configured in the app dashboard before they can be accessed with API calls. */ extendedFields?: ExtendedFields; /** Tags assigned to this donation campaign. */ tags?: Tags; } declare enum Status { /** Campaign is actively accepting donations. */ COLLECTING = "COLLECTING", /** Campaign has passed its `endDate` and `acceptDonationsAfterEndDate` is `false`. */ EXPIRED = "EXPIRED", /** Campaign has reached its `targetAmount` and `acceptDonationsAfterGoal` is `false`. */ GOAL_REACHED = "GOAL_REACHED" } /** @enumType */ type StatusWithLiterals = Status | 'COLLECTING' | 'EXPIRED' | 'GOAL_REACHED'; interface FocalPoint { /** X-coordinate of the focal point. */ x?: number; /** Y-coordinate of the focal point. */ y?: number; /** crop by height */ height?: number | null; /** crop by width */ width?: number | null; } /** Configures custom donation amount settings, allowing donors to specify their own contribution amount within optional limits. */ interface CustomAmountOptions { /** Minimum donation amount. */ minimum?: MultiCurrencyPrice; /** Maximum donation amount. */ maximum?: MultiCurrencyPrice; } interface MultiCurrencyPrice { /** * Amount. * @decimalValue options { gte:0, lte:1000000000000000 } */ amount?: string; /** * Converted amount. * @readonly * @decimalValue options { gte:0, lte:1000000000000000 } */ convertedAmount?: string; /** * Amount formatted with currency symbol. * @readonly */ formattedAmount?: string; /** * Converted amount formatted with currency symbol. * @readonly */ formattedConvertedAmount?: string; } interface PredefinedAmount { /** * Predefined amount ID. * You must provide this ID when creating or updating campaigns. * @format GUID */ _id?: string; /** * Donation amount. * * Currently supports the site's default currency only. */ price?: MultiCurrencyPrice; /** * Description explaining the impact of this donation amount. For example, "Feed 5 families for a week" or "Plant 10 trees". * @maxLength 200 */ description?: string | null; } interface CampaignGoal { /** * Target fundraising amount. * * Currently supports the site's default currency only. */ targetAmount?: MultiCurrencyPrice; /** * Campaign end date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. * * The behavior after this date is controlled by `acceptDonationsAfterEndDate`. */ endDate?: Date | null; /** * Whether donations are accepted after `endDate`. This field is ignored if `endDate` is not set. * * Default: `false` */ acceptDonationsAfterEndDate?: boolean | null; /** * Whether donations are accepted after reaching `targetAmount`. * * Default: `true` */ acceptDonationsAfterGoal?: boolean | null; } declare enum Frequency { /** One-time donation. */ ONE_TIME = "ONE_TIME", /** Weekly recurring donation. */ WEEK = "WEEK", /** Monthly recurring donation. */ MONTH = "MONTH", /** Yearly recurring donation. */ YEAR = "YEAR" } /** @enumType */ type FrequencyWithLiterals = Frequency | 'ONE_TIME' | 'WEEK' | 'MONTH' | 'YEAR'; interface ExtendedFields { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } /** * Common object for tags. * Should be use as in this example: * message Foo { * option (.wix.api.decomposite_of) = "wix.commons.v2.tags.Foo"; * string id = 1; * ... * Tags tags = 5 * } * * example of taggable entity * { * id: "123" * tags: { * public_tags: { * tag_ids:["11","22"] * }, * private_tags: { * tag_ids: ["33", "44"] * } * } * } */ interface Tags { /** Tags that require an additional permission in order to access them, typically restricted from site members and visitors. */ privateTags?: TagList; /** Tags that are exposed to anyone with access to the entity, including site members and visitors. */ publicTags?: TagList; } interface TagList { /** * List of tag IDs. * @maxSize 100 * @maxLength 5 */ tagIds?: string[]; } interface TagsModified { /** Updated donation campaign. */ donationCampaign?: DonationCampaign; /** Tags that are assigned. */ assignedTags?: Tags; /** Tags that are unassigned. */ unassignedTags?: Tags; } interface StatusChanged { /** Donation campaign with updated status. */ donationCampaign?: DonationCampaign; /** Previous status of the donation campaign. */ previousStatus?: StatusWithLiterals; /** New status of the donation campaign. */ newStatus?: StatusWithLiterals; } interface CreateDonationCampaignRequest { /** Donation campaign to create. */ donationCampaign: DonationCampaign; } interface CreateDonationCampaignResponse { /** Created donation campaign. */ donationCampaign?: DonationCampaign; } interface GetDonationCampaignRequest { /** * ID of the donation campaign to retrieve. * @format GUID */ donationCampaignId: string; } interface GetDonationCampaignResponse { /** Retrieved donation campaign. */ donationCampaign?: DonationCampaign; } interface UpdateDonationCampaignRequest { /** Donation campaign to update. May be partial. */ donationCampaign: DonationCampaign; } interface UpdateDonationCampaignResponse { /** Updated donation campaign. */ donationCampaign?: DonationCampaign; } interface QueryDonationCampaignsRequest { /** Query options. */ query?: CursorQuery; } interface CursorQuery extends CursorQueryPagingMethodOneOf { /** * Cursor paging options. * * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). */ cursorPaging?: CursorPaging; /** * Filter object. * * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section). */ filter?: Record | null; /** * Sort object. * * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section). * @maxSize 5 */ sort?: Sorting[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf { /** * Cursor paging options. * * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). */ cursorPaging?: CursorPaging; } interface Sorting { /** * Name of the field to sort by. * @maxLength 512 */ fieldName?: string; /** Sort order. */ order?: SortOrderWithLiterals; } declare enum SortOrder { ASC = "ASC", DESC = "DESC" } /** @enumType */ type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC'; interface CursorPaging { /** * Maximum number of items to return in the results. * @max 100 */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. * @maxLength 16000 */ cursor?: string | null; } interface QueryDonationCampaignsResponse { /** List of donation campaigns matching the query. */ donationCampaigns?: DonationCampaign[]; /** Paging metadata for handling large result sets. */ pagingMetadata?: CursorPagingMetadata; } interface CursorPagingMetadata { /** Number of items returned in current page. */ count?: number | null; /** Cursor strings that point to the next page, previous page, or both. */ cursors?: Cursors; /** * Whether there are more pages to retrieve following the current page. * * + `true`: Another page of results can be retrieved. * + `false`: This is the last page. */ hasNext?: boolean | null; } interface Cursors { /** * Cursor string pointing to the next page in the list of results. * @maxLength 16000 */ next?: string | null; /** * Cursor pointing to the previous page in the list of results. * @maxLength 16000 */ prev?: string | null; } interface BulkCreateDonationCampaignsRequest { /** * Donation campaigns to create. * @minSize 1 * @maxSize 100 */ donationCampaigns: DonationCampaign[]; /** * Whether to return the created donation campaigns in the response. * * Default: `false` */ returnEntity?: boolean; } interface BulkCreateDonationCampaignsResponse { /** * Results of the bulk create operation including campaigns and metadata. * @minSize 1 * @maxSize 100 */ results?: BulkDonationCampaignResult[]; /** Metadata about the bulk operation. */ bulkActionMetadata?: BulkActionMetadata; } interface ItemMetadata { /** * Item ID. Provided only whenever possible. For example, `itemId` can't be provided when item creation has failed. * @format GUID */ _id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action for this item was successful. When `false`, the `error` field is returned. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError; } interface ApplicationError { /** Error code. */ code?: string; /** Description of the error. */ description?: string; /** Data related to the error. */ data?: Record | null; } interface BulkDonationCampaignResult { /** Metadata about a single create operation. */ itemMetadata?: ItemMetadata; /** * Created campaign. * * Only present if `returnEntity` was `true`. */ item?: DonationCampaign; } interface BulkActionMetadata { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } interface BulkUpdateDonationCampaignsRequest { /** * Donation campaigns to update. * @minSize 1 * @maxSize 100 */ donationCampaigns: MaskedDonationCampaign[]; /** * Whether to return the updated donation campaigns in the response. * * Default: `false` */ returnEntity?: boolean; } interface MaskedDonationCampaign { /** Donation campaign to update. */ donationCampaign?: DonationCampaign; } interface BulkUpdateDonationCampaignsResponse { /** * Results of the bulk update operation. * @minSize 1 * @maxSize 100 */ results?: BulkUpdateDonationCampaignsResponseBulkDonationCampaignResult[]; /** Metadata about the bulk operation. */ bulkActionMetadata?: BulkActionMetadata; } interface BulkUpdateDonationCampaignsResponseBulkDonationCampaignResult { /** Metadata about a single update operation. */ itemMetadata?: ItemMetadata; /** * Updated campaign. * * Only present if `returnEntity` was `true`. */ item?: DonationCampaign; } interface GetDonationCampaignMetricsRequest { /** * ID of the donation campaign to retrieve metrics for. * @format GUID */ donationCampaignId: string; } interface GetDonationCampaignMetricsResponse { /** * List of metrics per currency. * * Currently returns only the site's default currency. * @maxSize 1 */ currencyMetricsList?: CurrencyMetrics[]; } interface CurrencyMetrics { /** * Three-letter currency code in ISO-4217 alphabetic format. * @maxLength 8 */ currencyCode?: string; /** Total number of successful donations. */ donationCount?: number; /** Total amount collected from all donations. */ totalAmount?: MultiCurrencyPrice; } interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ _id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * 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. * 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. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } interface EntityCreatedEvent { entity?: string; } interface RestoreInfo { deletedDate?: Date | null; } interface EntityUpdatedEvent { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntity?: string; } interface EntityDeletedEvent { /** Entity that was deleted. */ deletedEntity?: string | null; } interface ActionEvent { body?: string; } interface Empty { } interface BulkUpdateDonationCampaignTagsRequest { /** * Donation campaign IDs. * @minSize 1 * @maxSize 100 * @format GUID */ ids: string[]; /** * Tags to assign. * If a tag already exists on a campaign, it remains assigned. */ assignTags?: Tags; /** * Tags to unassign. * If a tag doesn't exist on a campaign, it's ignored. */ unassignTags?: Tags; } interface BulkUpdateDonationCampaignTagsResponse { /** * Results of the tag update operation. * @minSize 1 * @maxSize 100 */ results?: BulkUpdateDonationCampaignTagsResult[]; /** Metadata about the bulk operation. */ bulkActionMetadata?: BulkActionMetadata; } interface BulkUpdateDonationCampaignTagsResult { /** Metadata about this specific tag update operation. */ itemMetadata?: ItemMetadata; } interface BulkUpdateDonationCampaignTagsByFilterRequest { /** * Filter object. An empty filter updates all campaigns. * * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). */ filter: Record | null; /** * Tags to assign. * If a tag already exists on a campaign, it remains assigned. */ assignTags?: Tags; /** * Tags to unassign. * If a tag doesn't exist on a campaign, it's ignored. */ unassignTags?: Tags; } interface BulkUpdateDonationCampaignTagsByFilterResponse { /** * Job ID for tracking the operation. * * Learn more about working with [async jobs](https://dev.wix.com/docs/rest/business-management/async-job/introduction). * @format GUID */ jobId?: string; } interface MessageEnvelope { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; /** Details related to the account */ accountInfo?: AccountInfo; } interface IdentificationData extends IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; /** @readonly */ identityType?: WebhookIdentityTypeWithLiterals; } /** @oneof */ interface IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; } declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** @enumType */ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP'; interface AccountInfo { /** * ID of the Wix account associated with the event. * @format GUID */ accountId?: string | null; /** * ID of the parent Wix account. Only included when accountId belongs to a child account. * @format GUID */ parentAccountId?: string | null; /** * ID of the Wix site associated with the event. Only included when the event is tied to a specific site. * @format GUID */ siteId?: string | null; } /** @docsIgnore */ type CreateDonationCampaignApplicationErrors = { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type CreateDonationCampaignValidationErrors = { ruleName?: 'NO_PAYMENT_DEFINITION'; } | { ruleName?: 'NON_POSITIVE_CAMPAIGN_GOAL_AMOUNT'; } | { ruleName?: 'INVALID_CUSTOM_AMOUNT_RANGE'; } | { ruleName?: 'DUPLICATE_PREDEFINED_AMOUNTS'; } | { ruleName?: 'NON_POSITIVE_PREDEFINED_AMOUNT'; } | { ruleName?: 'EMPTY_CAMPAIGN_NAME'; }; /** @docsIgnore */ type GetDonationCampaignApplicationErrors = { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type UpdateDonationCampaignApplicationErrors = { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type UpdateDonationCampaignValidationErrors = { ruleName?: 'NO_PAYMENT_DEFINITION'; } | { ruleName?: 'NON_POSITIVE_CAMPAIGN_GOAL_AMOUNT'; } | { ruleName?: 'INVALID_CUSTOM_AMOUNT_RANGE'; } | { ruleName?: 'DUPLICATE_PREDEFINED_AMOUNTS'; } | { ruleName?: 'NON_POSITIVE_PREDEFINED_AMOUNT'; } | { ruleName?: 'EMPTY_CAMPAIGN_NAME'; }; /** @docsIgnore */ type QueryDonationCampaignsApplicationErrors = { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type BulkCreateDonationCampaignsApplicationErrors = { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type BulkCreateDonationCampaignsValidationErrors = { ruleName?: 'NO_PAYMENT_DEFINITION'; } | { ruleName?: 'NON_POSITIVE_CAMPAIGN_GOAL_AMOUNT'; } | { ruleName?: 'INVALID_CUSTOM_AMOUNT_RANGE'; } | { ruleName?: 'DUPLICATE_PREDEFINED_AMOUNTS'; } | { ruleName?: 'NON_POSITIVE_PREDEFINED_AMOUNT'; } | { ruleName?: 'EMPTY_CAMPAIGN_NAME'; }; /** @docsIgnore */ type BulkUpdateDonationCampaignsApplicationErrors = { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type BulkUpdateDonationCampaignsValidationErrors = { ruleName?: 'NO_PAYMENT_DEFINITION'; } | { ruleName?: 'NON_POSITIVE_CAMPAIGN_GOAL_AMOUNT'; } | { ruleName?: 'INVALID_CUSTOM_AMOUNT_RANGE'; } | { ruleName?: 'DUPLICATE_PREDEFINED_AMOUNTS'; } | { ruleName?: 'NON_POSITIVE_PREDEFINED_AMOUNT'; } | { ruleName?: 'EMPTY_CAMPAIGN_NAME'; }; /** @docsIgnore */ type GetDonationCampaignMetricsApplicationErrors = { code?: 'CAMPAIGN_GOAL_NOT_SET'; description?: string; data?: Record; } | { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; } | { code?: 'METRICS_TEMPORARILY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type BulkUpdateDonationCampaignTagsApplicationErrors = { code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS'; description?: string; data?: Record; } | { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; /** @docsIgnore */ type BulkUpdateDonationCampaignTagsByFilterApplicationErrors = { code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS'; description?: string; data?: Record; } | { code?: 'SITE_CURRENCY_UNAVAILABLE'; description?: string; data?: Record; }; interface BaseEventMetadata { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Details related to the account */ accountInfo?: AccountInfo; } interface EventMetadata extends BaseEventMetadata { /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ _id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * 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. * 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. */ entityEventSequence?: string | null; accountInfo?: AccountInfoMetadata; } interface AccountInfoMetadata { /** ID of the Wix account associated with the event */ accountId: string; /** ID of the Wix site associated with the event. Only included when the event is tied to a specific site. */ siteId?: string; /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */ parentAccountId?: string; } interface DonationCampaignCreatedEnvelope { entity: DonationCampaign; metadata: EventMetadata; } /** * Triggered when a donation campaign is created. * @permissionScope Manage Donation Campaigns * @permissionScopeId SCOPE.DONATIONS.MANAGE-CAMPAIGNS * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ_EVENTS * @webhook * @eventType wix.donations.v2.donation_campaign_created * @slug created */ declare function onDonationCampaignCreated(handler: (event: DonationCampaignCreatedEnvelope) => void | Promise): void; interface DonationCampaignDeletedEnvelope { entity: DonationCampaign; metadata: EventMetadata; } /** * Triggered when a donation campaign is deleted. * @permissionScope Manage Donation Campaigns * @permissionScopeId SCOPE.DONATIONS.MANAGE-CAMPAIGNS * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ_EVENTS * @webhook * @eventType wix.donations.v2.donation_campaign_deleted * @slug deleted */ declare function onDonationCampaignDeleted(handler: (event: DonationCampaignDeletedEnvelope) => void | Promise): void; interface DonationCampaignStatusChangedEnvelope { data: StatusChanged; metadata: EventMetadata; } /** * Triggered when a donation campaign's status changes. * @permissionScope Manage Donation Campaigns * @permissionScopeId SCOPE.DONATIONS.MANAGE-CAMPAIGNS * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ_EVENTS * @webhook * @eventType wix.donations.v2.donation_campaign_status_changed * @slug status_changed */ declare function onDonationCampaignStatusChanged(handler: (event: DonationCampaignStatusChangedEnvelope) => void | Promise): void; interface DonationCampaignTagsModifiedEnvelope { data: TagsModified; metadata: EventMetadata; } /** * Triggered when donation campaign tags are modified. * @permissionScope Manage Donation Campaigns * @permissionScopeId SCOPE.DONATIONS.MANAGE-CAMPAIGNS * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ_EVENTS * @webhook * @eventType wix.donations.v2.donation_campaign_tags_modified * @slug tags_modified */ declare function onDonationCampaignTagsModified(handler: (event: DonationCampaignTagsModifiedEnvelope) => void | Promise): void; interface DonationCampaignUpdatedEnvelope { entity: DonationCampaign; metadata: EventMetadata; /** @hidden */ modifiedFields: Record; } /** * Triggered when a donation campaign is updated. * @permissionScope Manage Donation Campaigns * @permissionScopeId SCOPE.DONATIONS.MANAGE-CAMPAIGNS * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ_EVENTS * @webhook * @eventType wix.donations.v2.donation_campaign_updated * @slug updated */ declare function onDonationCampaignUpdated(handler: (event: DonationCampaignUpdatedEnvelope) => void | Promise): void; /** * Creates a new donation campaign. * * The campaign is created in an active state and can immediately accept donations. * * > **Note:** Other than the fields marked as required, **one or both** of the following fields must be passed on create: * > + `customAmountEnabled` * > + `predefinedDonationAmounts` * * To create multiple donation campaigns in a single call, use [Bulk Create Donation Campaigns](https://dev.wix.com/docs/api-reference/business-solutions/donations/donation-campaigns/bulk-create-donation-campaigns). * @param donationCampaign - Donation campaign to create. * @public * @requiredField donationCampaign * @requiredField donationCampaign.campaignGoal.targetAmount * @requiredField donationCampaign.donationFrequencies * @requiredField donationCampaign.name * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_CREATE * @applicableIdentity APP * @returns Created donation campaign. * @fqn wix.donations.v2.DonationCampaignService.CreateDonationCampaign */ declare function createDonationCampaign(donationCampaign: NonNullablePaths): Promise & { __applicationErrorsType?: CreateDonationCampaignApplicationErrors; __validationErrorsType?: CreateDonationCampaignValidationErrors; }>; /** * Retrieves a donation campaign by ID. * @param donationCampaignId - ID of the donation campaign to retrieve. * @public * @requiredField donationCampaignId * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ * @applicableIdentity APP * @returns Retrieved donation campaign. * @fqn wix.donations.v2.DonationCampaignService.GetDonationCampaign */ declare function getDonationCampaign(donationCampaignId: string): Promise & { __applicationErrorsType?: GetDonationCampaignApplicationErrors; }>; /** * Updates a donation campaign. Supports partial updates. * * Each update increments the campaign's `revision` by 1. To prevent conflicts, you must provide the current `revision` in the request. * * You can update campaign settings like payment options, goals, and frequencies while maintaining the existing donation history. * * To update multiple donation campaigns in a single call, use [Bulk Update Donation Campaigns](https://dev.wix.com/docs/rest/business-solutions/donations/donation-campaigns/bulk-update-donation-campaigns). * @param _id - Donation campaign ID. * @public * @requiredField _id * @requiredField donationCampaign * @requiredField donationCampaign.revision * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_UPDATE * @applicableIdentity APP * @returns Updated donation campaign. * @fqn wix.donations.v2.DonationCampaignService.UpdateDonationCampaign */ declare function updateDonationCampaign(_id: string, donationCampaign: NonNullablePaths): Promise & { __applicationErrorsType?: UpdateDonationCampaignApplicationErrors; __validationErrorsType?: UpdateDonationCampaignValidationErrors; }>; interface UpdateDonationCampaign { /** * Donation campaign ID. * @format GUID * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the donation campaign is updated. * To prevent conflicting changes, the current `revision` must be specified when updating the donation campaign. * * Ignored when creating a donation campaign. * @readonly */ revision?: string | null; /** * Date and time the donation campaign was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the donation campaign was last updated. * @readonly */ _updatedDate?: Date | null; /** * Name of the donation campaign. * @minLength 1 * @maxLength 65 */ name?: string; /** * Whether the donation campaign is archived and hidden from site visitors. * Archived campaigns can't accept donations. * * Default: `false` */ archived?: boolean; /** * Current status of the donation campaign. * * The status is automatically calculated based on campaign settings and current progress: * - `COLLECTING`: Campaign is active and accepting donations * - `EXPIRED`: Campaign has passed its end date and `acceptDonationsAfterEndDate` is `false` * - `GOAL_REACHED`: Campaign has reached its target amount and `acceptDonationsAfterGoal` is `false` * @readonly */ status?: StatusWithLiterals; /** Cover image for the donation campaign. */ coverImage?: string; /** * Whether donors can specify their own donation amount. * If custom amounts are disabled, at least one predefined amount must be provided. * * Default: `false` */ customAmountEnabled?: boolean | null; /** Optional settings for custom donation amounts. */ customAmountOptions?: CustomAmountOptions; /** * Predefined donation amounts. * * Each amount can include an optional description explaining its impact. For example, "Feed 5 families for a week". * @maxSize 20 */ predefinedDonationAmounts?: PredefinedAmount[]; /** Campaign fundraising goal. */ campaignGoal?: CampaignGoal; /** * Whether donors can add comments to their donations. * * Default: `false` */ commentsEnabled?: boolean; /** * Donation frequencies available for this campaign. * * At least one frequency must be specified. * @minSize 1 * @maxSize 4 */ donationFrequencies?: FrequencyWithLiterals[]; /** * Whether to ask donors during checkout if they want to add 2.9% to their donation to cover fees. * * When `false`, fees are deducted from the donation amount, * meaning the campaign receives less than the donor's original contribution. * * When `true`, donors are presented with an option in the checkout UI to * add a 2.9% fee on top of their donation. This fee helps offset * processing costs, ensuring more of the original donation reaches the campaign. * The donor always has the choice — they are never automatically charged the fee. * * For recurring donations, if the donor opts to cover fees, the 2.9% fee * is applied to each recurring payment (not just the first one). * * > **Notes:** * > + The 2.9% rate is fixed and cannot be customized by campaign owners. * > + This feature works with all payment methods and currencies. * * Default: `false` */ askDonorCoverFee?: boolean; /** * Custom field data for the program definition object. * * [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions) must be configured in the app dashboard before they can be accessed with API calls. */ extendedFields?: ExtendedFields; /** Tags assigned to this donation campaign. */ tags?: Tags; } /** * Retrieves a list of donation campaigns, given the provided paging, filtering, and sorting. * * Query Donation Campaigns runs with these defaults, which you can override: * - `createdDate` is sorted in `ASC` order * - `cursorPaging.limit` is `100` * * To learn how to query donation campaigns, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language). * @public * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ * @applicableIdentity APP * @fqn wix.donations.v2.DonationCampaignService.QueryDonationCampaigns */ declare function queryDonationCampaigns(): DonationCampaignsQueryBuilder; interface QueryCursorResult { cursors: Cursors; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } interface DonationCampaignsQueryResult extends QueryCursorResult { items: DonationCampaign[]; query: DonationCampaignsQueryBuilder; next: () => Promise; prev: () => Promise; } interface DonationCampaignsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ eq: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'archived', value: any) => DonationCampaignsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ ne: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'archived', value: any) => DonationCampaignsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ ge: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name', value: any) => DonationCampaignsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ gt: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name', value: any) => DonationCampaignsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ le: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name', value: any) => DonationCampaignsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ lt: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name', value: any) => DonationCampaignsQueryBuilder; /** @param propertyName - Property whose value is compared with `string`. * @param string - String to compare against. Case-insensitive. */ startsWith: (propertyName: '_id' | 'name', value: string) => DonationCampaignsQueryBuilder; in: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'archived', value: any) => DonationCampaignsQueryBuilder; exists: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'archived' | 'tags', value: boolean) => DonationCampaignsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */ ascending: (...propertyNames: Array<'_id' | '_createdDate' | '_updatedDate' | 'name' | 'archived' | 'tags'>) => DonationCampaignsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */ descending: (...propertyNames: Array<'_id' | '_createdDate' | '_updatedDate' | 'name' | 'archived' | 'tags'>) => DonationCampaignsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */ limit: (limit: number) => DonationCampaignsQueryBuilder; /** @param cursor - A pointer to specific record */ skipTo: (cursor: string) => DonationCampaignsQueryBuilder; find: () => Promise; } /** * @hidden * @fqn wix.donations.v2.DonationCampaignService.QueryDonationCampaigns * @requiredField query */ declare function typedQueryDonationCampaigns(query: DonationCampaignQuery): Promise & { __applicationErrorsType?: QueryDonationCampaignsApplicationErrors; }>; interface DonationCampaignQuerySpec extends QuerySpec { paging: 'cursor'; wql: [ { fields: [ '_createdDate', '_id', '_updatedDate', 'archived', 'name', 'tags' ]; operators: '*'; sort: 'BOTH'; } ]; } type CommonQueryWithEntityContext = Query; type DonationCampaignQuery = { /** Cursor paging options. Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). */ cursorPaging?: { /** Maximum number of items to return in the results. @max: 100 */ limit?: NonNullable['limit'] | null; /** Pointer to the next or previous page in the list of results. Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request. @maxLength: 16000 */ cursor?: NonNullable['cursor'] | null; }; /** Filter object. Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section). */ filter?: CommonQueryWithEntityContext['filter'] | null; /** Sort object. Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section). @maxSize: 5 */ sort?: { /** Name of the field to sort by. @maxLength: 512 */ fieldName?: NonNullable[number]['fieldName']; /** Sort order. */ order?: NonNullable[number]['order']; }[]; }; declare const utils: { query: _wix_sdk_types.QueryHelpers; }; /** * Creates multiple donation campaigns in a single request. * * The campaigns are created in an active state and can immediately accept donations. * * > **Note:** Other than the fields marked as required, **one or both** of the following fields must be passed on create: * > + `customAmountEnabled` * > + `predefinedDonationAmounts` * * To create a single donation campaign, use [Create Donation Campaign](https://dev.wix.com/docs/rest/business-solutions/donations/donation-campaigns/create-donation-campaign). * @param donationCampaigns - Donation campaigns to create. * @public * @requiredField donationCampaigns * @requiredField donationCampaigns.campaignGoal.targetAmount * @requiredField donationCampaigns.donationFrequencies * @requiredField donationCampaigns.name * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_CREATE * @applicableIdentity APP * @fqn wix.donations.v2.DonationCampaignService.BulkCreateDonationCampaigns */ declare function bulkCreateDonationCampaigns(donationCampaigns: NonNullablePaths[], options?: BulkCreateDonationCampaignsOptions): Promise & { __applicationErrorsType?: BulkCreateDonationCampaignsApplicationErrors; __validationErrorsType?: BulkCreateDonationCampaignsValidationErrors; }>; interface BulkCreateDonationCampaignsOptions { /** * Whether to return the created donation campaigns in the response. * * Default: `false` */ returnEntity?: boolean; } /** * Updates multiple donation campaigns in a single request. * * Each update increments the campaign's `revision` by 1. To prevent conflicts, you must provide the current `revision` for each campaign in the request. * * You can update campaign settings like payment options, goals, and frequencies while maintaining existing donation history. * * To update a single donation campaign, use [Update Donation Campaign](https://dev.wix.com/docs/rest/business-solutions/donations/donation-campaigns/update-donation-campaign). * @param donationCampaigns - Donation campaigns to update. * @public * @requiredField donationCampaigns * @requiredField donationCampaigns.donationCampaign._id * @requiredField donationCampaigns.donationCampaign.revision * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_UPDATE * @applicableIdentity APP * @fqn wix.donations.v2.DonationCampaignService.BulkUpdateDonationCampaigns */ declare function bulkUpdateDonationCampaigns(donationCampaigns: NonNullablePaths[], options?: BulkUpdateDonationCampaignsOptions): Promise & { __applicationErrorsType?: BulkUpdateDonationCampaignsApplicationErrors; __validationErrorsType?: BulkUpdateDonationCampaignsValidationErrors; }>; interface BulkUpdateDonationCampaignsOptions { /** * Whether to return the updated donation campaigns in the response. * * Default: `false` */ returnEntity?: boolean; } /** * Retrieves metrics for a donation campaign. * * Returns the total number of successful donations and amount collected for the campaign. * The `campaignGoal` must be configured before using this method. * * Currently supports metrics in the site's default currency only. * * > **Note:** This method provides aggregated metrics only. To retrieve individual donation details, use [Search Orders](https://dev.wix.com/docs/rest/business-solutions/e-commerce/orders/orders/search-orders) and filter by `lineItems.catalogReference.catalogItemId` equal to the donation campaign ID. * @param donationCampaignId - ID of the donation campaign to retrieve metrics for. * @public * @requiredField donationCampaignId * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_READ * @applicableIdentity APP * @fqn wix.donations.v2.DonationCampaignService.GetDonationCampaignMetrics */ declare function getDonationCampaignMetrics(donationCampaignId: string): Promise & { __applicationErrorsType?: GetDonationCampaignMetricsApplicationErrors; }>; /** * Updates tags on multiple donation campaigns by ID. * * Use this method to assign or remove tags from specific campaigns. * A tag that appears in both assign and unassign lists will be assigned. * @param ids - Donation campaign IDs. * @public * @requiredField ids * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_UPDATE_TAGS * @applicableIdentity APP * @fqn wix.donations.v2.DonationCampaignService.BulkUpdateDonationCampaignTags */ declare function bulkUpdateDonationCampaignTags(ids: string[], options?: BulkUpdateDonationCampaignTagsOptions): Promise & { __applicationErrorsType?: BulkUpdateDonationCampaignTagsApplicationErrors; }>; interface BulkUpdateDonationCampaignTagsOptions { /** * Tags to assign. * If a tag already exists on a campaign, it remains assigned. */ assignTags?: Tags; /** * Tags to unassign. * If a tag doesn't exist on a campaign, it's ignored. */ unassignTags?: Tags; } /** * Updates tags on multiple donation campaigns using filter criteria. * * An empty filter updates all campaigns. The operation is asynchronous and returns a job ID for monitoring progress. * * Learn more about working with [async jobs](https://dev.wix.com/docs/rest/business-management/async-job/introduction). * @param filter - Filter object. An empty filter updates all campaigns. * * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). * @public * @requiredField filter * @permissionId WIX_DONATIONS.DONATION_CAMPAIGN_UPDATE_TAGS * @applicableIdentity APP * @fqn wix.donations.v2.DonationCampaignService.BulkUpdateDonationCampaignTagsByFilter */ declare function bulkUpdateDonationCampaignTagsByFilter(filter: Record, options?: BulkUpdateDonationCampaignTagsByFilterOptions): Promise & { __applicationErrorsType?: BulkUpdateDonationCampaignTagsByFilterApplicationErrors; }>; interface BulkUpdateDonationCampaignTagsByFilterOptions { /** * Tags to assign. * If a tag already exists on a campaign, it remains assigned. */ assignTags?: Tags; /** * Tags to unassign. * If a tag doesn't exist on a campaign, it's ignored. */ unassignTags?: Tags; } export { type AccountInfo, type AccountInfoMetadata, type ActionEvent, type ApplicationError, type BaseEventMetadata, type BulkActionMetadata, type BulkCreateDonationCampaignsApplicationErrors, type BulkCreateDonationCampaignsOptions, type BulkCreateDonationCampaignsRequest, type BulkCreateDonationCampaignsResponse, type BulkCreateDonationCampaignsValidationErrors, type BulkDonationCampaignResult, type BulkUpdateDonationCampaignTagsApplicationErrors, type BulkUpdateDonationCampaignTagsByFilterApplicationErrors, type BulkUpdateDonationCampaignTagsByFilterOptions, type BulkUpdateDonationCampaignTagsByFilterRequest, type BulkUpdateDonationCampaignTagsByFilterResponse, type BulkUpdateDonationCampaignTagsOptions, type BulkUpdateDonationCampaignTagsRequest, type BulkUpdateDonationCampaignTagsResponse, type BulkUpdateDonationCampaignTagsResult, type BulkUpdateDonationCampaignsApplicationErrors, type BulkUpdateDonationCampaignsOptions, type BulkUpdateDonationCampaignsRequest, type BulkUpdateDonationCampaignsResponse, type BulkUpdateDonationCampaignsResponseBulkDonationCampaignResult, type BulkUpdateDonationCampaignsValidationErrors, type CampaignGoal, type CommonQueryWithEntityContext, type CreateDonationCampaignApplicationErrors, type CreateDonationCampaignRequest, type CreateDonationCampaignResponse, type CreateDonationCampaignValidationErrors, type CurrencyMetrics, type CursorPaging, type CursorPagingMetadata, type CursorQuery, type CursorQueryPagingMethodOneOf, type Cursors, type CustomAmountOptions, type DomainEvent, type DomainEventBodyOneOf, type DonationCampaign, type DonationCampaignCreatedEnvelope, type DonationCampaignDeletedEnvelope, type DonationCampaignQuery, type DonationCampaignQuerySpec, type DonationCampaignStatusChangedEnvelope, type DonationCampaignTagsModifiedEnvelope, type DonationCampaignUpdatedEnvelope, type DonationCampaignsQueryBuilder, type DonationCampaignsQueryResult, type Empty, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type EventMetadata, type ExtendedFields, type FocalPoint, Frequency, type FrequencyWithLiterals, type GetDonationCampaignApplicationErrors, type GetDonationCampaignMetricsApplicationErrors, type GetDonationCampaignMetricsRequest, type GetDonationCampaignMetricsResponse, type GetDonationCampaignRequest, type GetDonationCampaignResponse, type IdentificationData, type IdentificationDataIdOneOf, type ItemMetadata, type MaskedDonationCampaign, type MessageEnvelope, type MultiCurrencyPrice, type PredefinedAmount, type QueryDonationCampaignsApplicationErrors, type QueryDonationCampaignsRequest, type QueryDonationCampaignsResponse, type RestoreInfo, SortOrder, type SortOrderWithLiterals, type Sorting, Status, type StatusChanged, type StatusWithLiterals, type TagList, type Tags, type TagsModified, type UpdateDonationCampaign, type UpdateDonationCampaignApplicationErrors, type UpdateDonationCampaignRequest, type UpdateDonationCampaignResponse, type UpdateDonationCampaignValidationErrors, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, bulkCreateDonationCampaigns, bulkUpdateDonationCampaignTags, bulkUpdateDonationCampaignTagsByFilter, bulkUpdateDonationCampaigns, createDonationCampaign, getDonationCampaign, getDonationCampaignMetrics, onDonationCampaignCreated, onDonationCampaignDeleted, onDonationCampaignStatusChanged, onDonationCampaignTagsModified, onDonationCampaignUpdated, queryDonationCampaigns, typedQueryDonationCampaigns, updateDonationCampaign, utils };