import type { RefundType } from './RefundType';
import type { LineItemReductionCreate } from './LineItemReductionCreate';
/**
 * A refund is a credit issued to the customer, which can be initiated either by the merchant or by the customer as a reversal.
 * @export
 * @interface RefundCreate
 */
export interface RefundCreate {
    /**
     * The transaction completion that the refund belongs to.
     * @type {number}
     * @memberof RefundCreate
     */
    completion?: number;
    /**
     * Allow to store additional information about the object.
     * @type {{ [key: string]: string; }}
     * @memberof RefundCreate
     */
    metaData?: {
        [key: string]: string;
    };
    /**
     * The total monetary amount of the refund, representing the exact credit issued to the customer.
     * @type {number}
     * @memberof RefundCreate
     */
    amount?: number;
    /**
     * The reductions applied on the original transaction items, detailing specific adjustments associated with the refund.
     * @type {Array<LineItemReductionCreate>}
     * @memberof RefundCreate
     */
    reductions?: Array<LineItemReductionCreate>;
    /**
     * A client-generated nonce which uniquely identifies some action to be executed. Subsequent requests with the same external ID do not execute the action again, but return the original result.
     * @type {string}
     * @memberof RefundCreate
     */
    externalId: string;
    /**
     *
     * @type {RefundType}
     * @memberof RefundCreate
     */
    type: RefundType;
    /**
     * The merchant's reference used to identify the refund.
     * @type {string}
     * @memberof RefundCreate
     */
    merchantReference?: string;
    /**
     * The transaction that the refund belongs to.
     * @type {number}
     * @memberof RefundCreate
     */
    transaction?: number;
}
/**
 * Check if a given object implements the RefundCreate interface.
 */
export declare function instanceOfRefundCreate(value: object): value is RefundCreate;
export declare function RefundCreateFromJSON(json: any): RefundCreate;
export declare function RefundCreateFromJSONTyped(json: any, ignoreDiscriminator: boolean): RefundCreate;
export declare function RefundCreateToJSON(json: any): RefundCreate;
export declare function RefundCreateToJSONTyped(value?: RefundCreate | null, ignoreDiscriminator?: boolean): any;
