import { HttpClient } from '../core/httpClient';
import { type CaptureResponse } from '../models/captureTypes';
import type { PixRefundResponse } from '../models/pixTypes';
import { type VoidResponse } from '../models/voidTypes';
/**
 * Parâmetros opcionais para operações de captura e cancelamento.
 */
interface TransactionModificationParams {
    /** Valor em centavos a ser capturado/cancelado. Se omitido, captura/cancela o valor total pendente. */
    amount?: number;
    /** Apenas para captura em empresas aéreas. */
    serviceTaxAmount?: number;
}
/**
 * Serviço para gerenciar transações existentes (Captura, Cancelamento, Consulta).
 */
export declare class TransactionService {
    private readonly httpClient;
    private readonly salesBasePath;
    constructor(httpClient: HttpClient);
    /**
     * Captura uma transação previamente autorizada usando o PaymentId.
     * Corresponde à operação 'capturar-apos-autorizacao' (PUT /1/sales/{PaymentId}/capture).
     *
     * @param paymentId O ID do pagamento retornado na criação da transação.
     * @param params Parâmetros opcionais como 'amount' e 'serviceTaxAmount'.
     * @returns Uma Promise que resolve com a resposta da operação de captura.
     * @throws {CieloApiError | CieloNetworkError} Em caso de falha.
     */
    captureByPaymentId(paymentId: string, params?: Pick<TransactionModificationParams, 'amount' | 'serviceTaxAmount'>): Promise<CaptureResponse>;
    /**
     * Cancela (Void) uma transação usando o PaymentId.
     * Pode ser usado para cancelar uma autorização não capturada ou estornar uma transação capturada.
     * Corresponde à operação 'cancelamento-paymentid' (PUT /1/sales/{PaymentId}/void).
     *
     * @param paymentId O ID do pagamento retornado na criação da transação.
     * @param params Parâmetros opcionais como 'amount' para cancelamento parcial.
     * @returns Uma Promise que resolve com a resposta da operação de cancelamento.
     * @throws {CieloApiError | CieloNetworkError} Em caso de falha.
     */
    voidByPaymentId(paymentId: string, params?: Pick<TransactionModificationParams, 'amount'>): Promise<VoidResponse>;
    /**
     * Cancela (Void) uma transação usando o MerchantOrderId.
     * Útil se você não armazenou o PaymentId mas tem o ID do seu pedido.
     * Corresponde à operação 'cancelamento-merchantorderid' (PUT /1/sales/OrderId/{MerchantOrderId}/void).
     *
     * @param merchantOrderId O ID do pedido usado na criação da transação.
     * @param params Parâmetros opcionais como 'amount' para cancelamento parcial.
     * @returns Uma Promise que resolve com a resposta da operação de cancelamento.
     * @throws {CieloApiError | CieloNetworkError} Em caso de falha.
     */
    voidByMerchantOrderId(merchantOrderId: string, params?: Pick<TransactionModificationParams, 'amount'>): Promise<VoidResponse>;
    /**
     * Solicita a devolução (reembolso) de uma transação **Pix** usando o PaymentId.
     * Nota: Usa o mesmo endpoint do void de cartão, mas a resposta é diferente.
     *
     * @param paymentId O ID do pagamento Pix original (obtido na criação do Pix).
     * @param params Parâmetros opcionais como 'amount' para devolução parcial.
     * @returns Uma Promise que resolve com a resposta da operação de devolução Pix (PixRefundResponse).
     * @throws {CieloApiError | CieloNetworkError} Em caso de falha.
     */
    refundPixByPaymentId(paymentId: string, params?: Pick<TransactionModificationParams, 'amount'>): Promise<PixRefundResponse>;
}
export {};
