import type { PaymentAppRefundTargetState } from './PaymentAppRefundTargetState';
/**
 * A request to update the state of a refund. The refund must be associated with a processor created by the invoking payment web app.
 * @export
 * @interface PaymentAppRefundUpdate
 */
export interface PaymentAppRefundUpdate {
    /**
     * A unique identifier for the refund within the systems of the external service provider. This field is mandatory when the target state is set to 'SUCCESSFUL'.
     * @type {string}
     * @memberof PaymentAppRefundUpdate
     */
    reference?: string;
    /**
     *
     * @type {PaymentAppRefundTargetState}
     * @memberof PaymentAppRefundUpdate
     */
    targetState?: PaymentAppRefundTargetState;
    /**
     * The reason for the refund's failure. This field is mandatory when the target state is set to 'FAILED'.
     * @type {number}
     * @memberof PaymentAppRefundUpdate
     */
    failureReason?: number;
}
/**
 * Check if a given object implements the PaymentAppRefundUpdate interface.
 */
export declare function instanceOfPaymentAppRefundUpdate(value: object): value is PaymentAppRefundUpdate;
export declare function PaymentAppRefundUpdateFromJSON(json: any): PaymentAppRefundUpdate;
export declare function PaymentAppRefundUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaymentAppRefundUpdate;
export declare function PaymentAppRefundUpdateToJSON(json: any): PaymentAppRefundUpdate;
export declare function PaymentAppRefundUpdateToJSONTyped(value?: PaymentAppRefundUpdate | null, ignoreDiscriminator?: boolean): any;
