import { Environment } from "./Environment";
import { FailureReason } from "./FailureReason";
import { Label } from "./Label";
import { LineItem } from "./LineItem";
import { LineItemReduction } from "./LineItemReduction";
import { RefundState } from "./RefundState";
import { RefundType } from "./RefundType";
import { Tax } from "./Tax";
import { Transaction } from "./Transaction";
declare class Refund {
    /**
    *
    */
    'amount'?: number;
    /**
    *
    */
    'baseLineItems'?: Array<LineItem>;
    /**
    *
    */
    'completion'?: number;
    /**
    *
    */
    'createdBy'?: number;
    /**
    * The date and time when the object was created.
    */
    'createdOn'?: Date;
    /**
    *
    */
    'environment'?: Environment;
    /**
    * The external id helps to identify duplicate calls to the refund service. As such the external ID has to be unique per transaction.
    */
    'externalId'?: string;
    /**
    *
    */
    'failedOn'?: Date;
    /**
    *
    */
    'failureReason'?: FailureReason;
    /**
    * A unique identifier for the object.
    */
    'id'?: number;
    /**
    * The labels providing additional information about the object.
    */
    'labels'?: Array<Label>;
    /**
    * The language that is linked to the object.
    */
    'language'?: string;
    /**
    *
    */
    'lineItems'?: Array<LineItem>;
    /**
    * The ID of the space this object belongs to.
    */
    'linkedSpaceId'?: number;
    /**
    *
    */
    'merchantReference'?: string;
    /**
    *
    */
    'nextUpdateOn'?: Date;
    /**
    * The date and time when the object is planned to be permanently removed. If the value is empty, the object will not be removed.
    */
    'plannedPurgeDate'?: Date;
    /**
    *
    */
    'processingOn'?: Date;
    /**
    *
    */
    'processorReference'?: string;
    /**
    *
    */
    'reducedLineItems'?: Array<LineItem>;
    /**
    *
    */
    'reductions'?: Array<LineItemReduction>;
    /**
    * The object's current state.
    */
    'state'?: RefundState;
    /**
    *
    */
    'succeededOn'?: Date;
    /**
    *
    */
    'taxes'?: Array<Tax>;
    /**
    *
    */
    'timeZone'?: string;
    /**
    *
    */
    'timeoutOn'?: Date;
    /**
    * The total applied fees is the sum of all fees that have been applied so far.
    */
    'totalAppliedFees'?: number;
    /**
    * The total settled amount is the total amount which has been settled so far.
    */
    'totalSettledAmount'?: number;
    /**
    *
    */
    'transaction'?: Transaction;
    /**
    *
    */
    'type'?: RefundType;
    /**
    *
    */
    'updatedInvoice'?: number;
    /**
    * The version is used for optimistic locking and incremented whenever the object is updated.
    */
    'version'?: number;
    static discriminator: string | undefined;
    static attributeTypeMap: Array<{
        name: string;
        baseName: string;
        type: string;
    }>;
    static getAttributeTypeMap(): {
        name: string;
        baseName: string;
        type: string;
    }[];
}
export { Refund };
