import { type APIPromise, APIResource, type FetchParams } from "../../core";
import type { EntryModeFilter, ErrorBody, Link, PaymentType, TransactionFull, TransactionHistory } from "../../types";
export type RefundTransactionParams = {
    /**
     * Amount to be refunded. Eligible amount can't exceed the amount of the transaction and varies based on country and currency. If you do not specify a value, the system performs a full refund of the transaction.
     */
    amount?: number;
};
export type GetTransactionV2_1QueryParams = {
    id?: string;
    internal_id?: string;
    transaction_code?: string;
    foreign_transaction_id?: string;
    client_transaction_id?: string;
};
export type GetTransactionQueryParams = {
    id?: string;
    internal_id?: string;
    transaction_code?: string;
};
export type ListTransactionsV2_1QueryParams = {
    transaction_code?: string;
    order?: "ascending" | "descending";
    limit?: number;
    users?: string[];
    statuses?: ("SUCCESSFUL" | "CANCELLED" | "FAILED" | "REFUNDED" | "CHARGE_BACK")[];
    payment_types?: PaymentType[];
    "entry_modes[]"?: EntryModeFilter[];
    types?: ("PAYMENT" | "REFUND" | "CHARGE_BACK")[];
    changes_since?: string;
    newest_time?: string;
    newest_ref?: string;
    oldest_time?: string;
    oldest_ref?: string;
};
export type ListTransactionsV2_1Response = {
    items?: TransactionHistory[];
    links?: Link[];
};
export type ListTransactionsQueryParams = {
    transaction_code?: string;
    order?: "ascending" | "descending";
    limit?: number;
    users?: string[];
    statuses?: ("SUCCESSFUL" | "CANCELLED" | "FAILED" | "REFUNDED" | "CHARGE_BACK")[];
    payment_types?: PaymentType[];
    types?: ("PAYMENT" | "REFUND" | "CHARGE_BACK")[];
    changes_since?: string;
    newest_time?: string;
    newest_ref?: string;
    oldest_time?: string;
    oldest_ref?: string;
};
export type ListTransactionsResponse = {
    items?: TransactionHistory[];
    links?: Link[];
};
export declare class Transactions extends APIResource {
    /**
     * Refunds an identified transaction either in full or partially.
     */
    refund(txnId: string, body?: RefundTransactionParams, params?: FetchParams): APIPromise<void, ErrorBody>;
    /**
     * Retrieves the full details of an identified transaction. The transaction resource is identified by a query parameter and *one* of following parameters is required:
     *
     *  *  `id`
     *  *  `internal_id`
     *  *  `transaction_code`
     *  *  `foreign_transaction_id`
     *  *  `client_transaction_id`
     *
     */
    get(merchantCode: string, query?: GetTransactionV2_1QueryParams, params?: FetchParams): APIPromise<TransactionFull, ErrorBody>;
    /**
     * Retrieves the full details of an identified transaction. The transaction resource is identified by a query parameter and *one* of following parameters is required:
     *
     *  *  `id`
     *  *  `internal_id`
     *  *  `transaction_code`
     *  *  `foreign_transaction_id`
     *  *  `client_transaction_id`
     *
     */
    getDeprecated(query?: GetTransactionQueryParams, params?: FetchParams): APIPromise<TransactionFull, ErrorBody>;
    /**
     * Lists detailed history of all transactions associated with the merchant profile.
     */
    list(merchantCode: string, query?: ListTransactionsV2_1QueryParams, params?: FetchParams): APIPromise<ListTransactionsV2_1Response, ErrorBody>;
    /**
     * Lists detailed history of all transactions associated with the merchant profile.
     */
    listDeprecated(query?: ListTransactionsQueryParams, params?: FetchParams): APIPromise<ListTransactionsResponse, ErrorBody>;
}
//# sourceMappingURL=index.d.ts.map