import { EventDefinition, HttpClient } from '@wix/sdk-types'; import { BulkCreateCouponsOptions, BulkCreateCouponsResponse, BulkCreateCouponsResponseNonNullableFields, BulkDeleteCouponsResponse, BulkDeleteCouponsResponseNonNullableFields, Coupon, CouponAppliedEnvelope, CouponCreatedEnvelope, CouponDeletedEnvelope, CouponNonNullableFields, CouponUpdatedEnvelope, CreateCouponResponse, CreateCouponResponseNonNullableFields, Query, QueryCouponsResponse, QueryCouponsResponseNonNullableFields, Specification } from './ecommerce-coupons-v2-coupon-coupons.universal.js'; export declare const __metadata: { PACKAGE_NAME: string; }; export declare function createCoupon(httpClient: HttpClient): CreateCouponSignature; interface CreateCouponSignature { /** * Creates a new coupon. * * The `createCoupon()` function returns a Promise that resolves to the new coupon when it is created. * * When creating a coupon, the `specification` object must contain values for `name`, `code`, `startTime`, and either `scope` or `minimumSubtotal`. The exception is for a `freeShipping` coupon type, for which you cannot apply a `scope` and `minimumSubtotal` is optional. * * The coupon `scope` defines the items a coupon applies to. A coupon can apply to all items in a specific Wix application, a group within the application, or a single item within a group. See the [introduction](#introduction) for a table of currently supported coupon scopes. * * The `specification` object must also contain a value for exactly 1 of the following coupon properties. This defines the coupon type. * * + `"moneyOffAmount"` * + `"percentOffRate"` * + `"freeShipping"` * + `"fixedPriceAmount"` * + `"buyXGetY"` * @param - Coupon to create. */ (specification: Specification): Promise; } export declare function updateCoupon(httpClient: HttpClient): UpdateCouponSignature; interface UpdateCouponSignature { /** * Updates a coupon. * * The `updateCoupon()` function returns a Promise that resolves when the coupon is updated. * * Only the properties passed in the `specification` object will be updated. All other properties will remain the same. * * To remove a value from the coupon, pass its corresponding property with a value of `null`. * * When updating a coupon, you cannot change the coupon's `type`. For example, if the coupon's `type` is `moneyOffAmount`, you cannot change it to `fixedPriceAmount`. You can update the coupon type's value. For example, you can change the value of `moneyOffAmount` from `5` to `10`. * * The coupon `scope` defines the items a coupon applies to. A coupon can apply to all items in a specific Wix application, a group within the application, or a single item within a group. * See the [introduction](#introduction) for a table of currently supported coupon scopes. * @param - ID of the coupon to update. * @param - Coupon information to update. * @param - Field mask of fields to update (required - passing an empty `fieldMask` will return an error). Valid field masks are any of those in the `specification` field. */ (_id: string, specification: Specification, fieldMask: string[]): Promise; } export declare function getCoupon(httpClient: HttpClient): GetCouponSignature; interface GetCouponSignature { /** * Retrieves a coupon by ID. * * The `getCoupon()` function returns a Promise that resolves when the specified coupon is retrieved. * @param - ID of the coupon to retrieve. * @returns Retrieved coupon. */ (_id: string): Promise; } export declare function deleteCoupon(httpClient: HttpClient): DeleteCouponSignature; interface DeleteCouponSignature { /** * Deletes a coupon. * * The `deleteCoupon()` function returns a Promise that resolves when the specified coupon is deleted. * @param - ID of the coupon to delete. */ (_id: string): Promise; } export declare function queryCoupons(httpClient: HttpClient): QueryCouponsSignature; interface QueryCouponsSignature { /** * Retrieves a list of up to 100 coupons with pagination and filters. * * The `queryCoupons()` function returns a Promise that resolves when the coupons are retrieved. */ (query: Query): Promise; } export declare function bulkDeleteCoupons(httpClient: HttpClient): BulkDeleteCouponsSignature; interface BulkDeleteCouponsSignature { /** * Deletes the specified coupons. * * The `bulkDeleteCoupons()` function returns a Promise that resolves when the coupons are deleted. * @param - IDs of coupons to delete. */ (ids: string[]): Promise; } export declare function bulkCreateCoupons(httpClient: HttpClient): BulkCreateCouponsSignature; interface BulkCreateCouponsSignature { /** * Creates multiple coupons. * * The `bulkCreateCoupons()` function returns a Promise that resolves when the coupons are created. * @param - List of coupon specifications to be created. */ (specifications: Specification[], options?: BulkCreateCouponsOptions | undefined): Promise; } export declare const onCouponCreated: EventDefinition; export declare const onCouponUpdated: EventDefinition; export declare const onCouponDeleted: EventDefinition; export declare const onCouponApplied: EventDefinition; export { ActionEvent, ApplicationError, AppliedCoupon, AppliedDiscount, BaseEventMetadata, BulkActionMetadata, BulkCreateCouponResult, BulkCreateCouponsOptions, BulkCreateCouponsRequest, BulkCreateCouponsResponse, BulkCreateCouponsResponseNonNullableFields, BulkDeleteCouponsRequest, BulkDeleteCouponsResponse, BulkDeleteCouponsResponseNonNullableFields, BuyXGetY, CalculateRequest, CalculateRequestCalculateByOneOf, CalculateResponse, Cart, Coupon, CouponApplied, CouponAppliedEnvelope, CouponCreatedEnvelope, CouponDeletedEnvelope, CouponNonNullableFields, CouponUpdatedEnvelope, CreateCouponRequest, CreateCouponResponse, CreateCouponResponseNonNullableFields, DeleteCouponRequest, DeleteCouponResponse, DisplayData, DomainEvent, DomainEventBodyOneOf, EntityCreatedEvent, EntityDeletedEvent, EntityUpdatedEvent, Error, EventMetadata, GetCouponRequest, GetCouponResponse, GetCouponResponseNonNullableFields, Group, HasCouponsRequest, HasCouponsResponse, IdentificationData, IdentificationDataIdOneOf, IncreaseUsageRequest, IncreaseUsageResponse, ItemMetadata, LineItem, MediaItem, MessageEnvelope, Paging, Query, QueryCouponsRequest, QueryCouponsResponse, QueryCouponsResponseNonNullableFields, RestoreInfo, Scope, Shipping, Specification, SpecificationBehaviorOneOf, SpecificationScopeOrMinSubtotalOneOf, Totals, UpdateCouponRequest, UpdateCouponResponse, WebhookIdentityType, } from './ecommerce-coupons-v2-coupon-coupons.universal.js';