/**
 * @example
 *     {
 *         pid: "pid",
 *         name: "name",
 *         unit: "POINTS"
 *     }
 */
export interface PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest {
    /** Loyalty Program Id */
    pid: string;
    /** Defines when the balance expires within the selected duration. */
    balanceAvailabilityDurationModifier?: PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest.BalanceAvailabilityDurationModifier;
    /** Unit of time for balance validity. */
    balanceAvailabilityDurationUnit?: PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest.BalanceAvailabilityDurationUnit;
    /** Number of time units before the balance expires. */
    balanceAvailabilityDurationValue?: number;
    /** Fixed expiration date (`dd/mm` format) as an alternative to duration-based expiry. */
    balanceExpirationDate?: string;
    /** Defines whether partial credit is allowed when reaching max balance. */
    balanceOptionAmountOvertakingStrategy?: PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest.BalanceOptionAmountOvertakingStrategy;
    /** Defines rounding strategy for credit transactions. */
    balanceOptionCreditRounding?: PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest.BalanceOptionCreditRounding;
    /** Defines rounding strategy for debit transactions. */
    balanceOptionDebitRounding?: PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest.BalanceOptionDebitRounding;
    /** Short description of the balance definition. */
    description?: string;
    /** URL of an optional image reference. */
    imageRef?: string;
    /** Maximum allowable balance amount. */
    maxAmount?: number;
    /** Maximum credit allowed per operation. */
    maxCreditAmountLimit?: number;
    /** Maximum debit allowed per operation. */
    maxDebitAmountLimit?: number;
    /** Additional metadata for the balance definition. */
    meta?: PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest.Meta;
    /** Minimum allowable balance amount. */
    minAmount?: number;
    /** Name of the balance definition. */
    name: string;
    /** Unit of balance measurement. */
    unit: PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest.Unit;
}
export declare namespace PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest {
    /** Defines when the balance expires within the selected duration. */
    const BalanceAvailabilityDurationModifier: {
        readonly NoModification: "noModification";
        readonly StartOfPeriod: "startOfPeriod";
        readonly EndOfPeriod: "endOfPeriod";
    };
    type BalanceAvailabilityDurationModifier = (typeof BalanceAvailabilityDurationModifier)[keyof typeof BalanceAvailabilityDurationModifier];
    /** Unit of time for balance validity. */
    const BalanceAvailabilityDurationUnit: {
        readonly Day: "day";
        readonly Week: "week";
        readonly Month: "month";
        readonly Year: "year";
    };
    type BalanceAvailabilityDurationUnit = (typeof BalanceAvailabilityDurationUnit)[keyof typeof BalanceAvailabilityDurationUnit];
    /** Defines whether partial credit is allowed when reaching max balance. */
    const BalanceOptionAmountOvertakingStrategy: {
        readonly Strict: "strict";
        readonly Partial: "partial";
    };
    type BalanceOptionAmountOvertakingStrategy = (typeof BalanceOptionAmountOvertakingStrategy)[keyof typeof BalanceOptionAmountOvertakingStrategy];
    /** Defines rounding strategy for credit transactions. */
    const BalanceOptionCreditRounding: {
        readonly Lower: "lower";
        readonly Upper: "upper";
        readonly Natural: "natural";
    };
    type BalanceOptionCreditRounding = (typeof BalanceOptionCreditRounding)[keyof typeof BalanceOptionCreditRounding];
    /** Defines rounding strategy for debit transactions. */
    const BalanceOptionDebitRounding: {
        readonly Lower: "lower";
        readonly Upper: "upper";
        readonly Natural: "natural";
    };
    type BalanceOptionDebitRounding = (typeof BalanceOptionDebitRounding)[keyof typeof BalanceOptionDebitRounding];
    /**
     * Additional metadata for the balance definition.
     */
    interface Meta {
        /** Indicates whether the balance definition is internal. */
        isInternal?: boolean | undefined;
        /** Accepts any additional properties */
        [key: string]: any;
    }
    /** Unit of balance measurement. */
    const Unit: {
        readonly Points: "POINTS";
        readonly Eur: "EUR";
        readonly Usd: "USD";
        readonly Mxn: "MXN";
        readonly Gbp: "GBP";
        readonly Inr: "INR";
        readonly Cad: "CAD";
        readonly Sgd: "SGD";
        readonly Ron: "RON";
        readonly Jpy: "JPY";
        readonly Myr: "MYR";
        readonly Clp: "CLP";
        readonly Pen: "PEN";
        readonly Mad: "MAD";
        readonly Aud: "AUD";
        readonly Chf: "CHF";
        readonly Brl: "BRL";
    };
    type Unit = (typeof Unit)[keyof typeof Unit];
}
