import DisputeReason from "../constants/dispute-reason.js";
import DisputeStatus from "../constants/dispute-status.js";
import EvidenceDetails from "./evidence-details.js";
import TCurrency from "../interfaces/currency.js";
interface IMetadata {
    [key: string]: any;
}
interface IParams {
    /**
     * If true, it’s still possible to refund the disputed payment. After the payment has been fully refunded,
     * no further funds are withdrawn from your Stripe accounts as a result of this dispute
     */
    isChargeRefundable: boolean;
    currency: TCurrency;
    issuedAt: Date;
    currentDisputeFee: number;
    balanceTransactionId?: string | null;
    networkReasonCode?: string | null;
    paymentMethodType?: string | null;
    paymentMethodBrand?: string | null;
    [key: string]: any;
}
/**
 * Dispute entity
 * @description Dispute doesn't have pure relation to the transaction for preventing duplication
 * Transaction id is not unique (presented as debit and credit transactions)
 */
declare class Dispute {
    id: string;
    transactionId: string | null;
    disputeId: string;
    amount: number;
    chargedAmount: number;
    chargedFees: number;
    netWorth: number;
    reason: DisputeReason;
    status: DisputeStatus;
    params: IParams;
    metadata: IMetadata;
    createdAt: Date;
    updatedAt: Date;
    evidenceDetails: EvidenceDetails;
}
export { Dispute as default, IMetadata, IParams };
