/**
 * @example
 *     {
 *         pid: "pid",
 *         amount: 1.1,
 *         balanceDefinitionId: "balanceDefinitionId"
 *     }
 */
export interface BeginTransactionRequest {
    /** Loyalty Program Id */
    pid: string;
    /** Unique identifier for the loyalty subscription (required unless `contactId` is provided). */
    LoyaltySubscriptionId?: string;
    /** Transaction amount (must be provided). */
    amount: number;
    /** Whether the transaction should be automatically completed. */
    autoComplete?: boolean;
    /** Unique identifier (UUID) of the associated balance definition. */
    balanceDefinitionId: string;
    /** Optional expiry time for the balance in minutes (must be greater than 0 if provided). */
    balanceExpiryInMinutes?: number;
    /** Unique identifier of the contact involved in the transaction (required unless `LoyaltySubscriptionId` is provided). */
    contactId?: number;
    /** Optional timestamp specifying when the transaction occurred. */
    eventTime?: string;
    /** Optional metadata associated with the transaction. */
    meta?: Record<string, unknown>;
    /** Optional time-to-live for the transaction (must be greater than 0 if provided). */
    ttl?: number;
}
