/**
 * AdvancedBilling
 *
 * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { Schema } from '../schema.js';
import { CompoundingStrategy } from './compoundingStrategy.js';
import { CouponCurrency } from './couponCurrency.js';
import { CouponRestriction } from './couponRestriction.js';
import { DiscountType } from './discountType.js';
import { RecurringScheme } from './recurringScheme.js';
export interface Coupon {
    id?: number;
    name?: string;
    code?: string;
    description?: string;
    amount?: number | null;
    amountInCents?: bigint | null;
    productFamilyId?: number;
    productFamilyName?: string | null;
    startDate?: string;
    /** After the given time, this coupon code will be invalid for new signups. Recurring discounts started before this date will continue to recur even after this date. */
    endDate?: string | null;
    percentage?: string | null;
    recurring?: boolean;
    recurringScheme?: RecurringScheme;
    durationPeriodCount?: number | null;
    durationInterval?: number | null;
    durationIntervalUnit?: string | null;
    durationIntervalSpan?: string | null;
    /** If set to true, discount is not limited (credits will carry forward to next billing). */
    allowNegativeBalance?: boolean;
    archivedAt?: string | null;
    conversionLimit?: string | null;
    /** A stackable coupon can be combined with other coupons on a Subscription. */
    stackable?: boolean;
    /** Applicable only to stackable coupons. For `compound`, Percentage-based discounts will be calculated against the remaining price, after prior discounts have been calculated. For `full-price`, Percentage-based discounts will always be calculated against the original item price, before other discounts are applied. */
    compoundingStrategy?: CompoundingStrategy | null;
    useSiteExchangeRate?: boolean;
    createdAt?: string;
    updatedAt?: string;
    discountType?: DiscountType;
    excludeMidPeriodAllocations?: boolean;
    applyOnCancelAtEndOfPeriod?: boolean;
    applyOnSubscriptionExpiration?: boolean;
    couponRestrictions?: CouponRestriction[];
    /** Returned in read, find, and list endpoints if the query parameter is provided. */
    currencyPrices?: CouponCurrency[];
    [key: string]: unknown;
}
export declare const couponSchema: Schema<Coupon>;
//# sourceMappingURL=coupon.d.ts.map