import ComgateClient from "comgate-node";
import { AbstractPaymentProcessor, CartService, PaymentProcessorContext, PaymentProcessorError, PaymentSessionStatus } from "@medusajs/medusa";
import { ComgatePaymentOptions, ComgatePaymentProcessorSessionResponse, ComgateSessionData } from "../types";
declare abstract class ComgateBase extends AbstractPaymentProcessor {
    static identifier: string;
    protected readonly options_: ComgatePaymentOptions;
    comgateClient: ComgateClient;
    protected readonly cartService: CartService;
    protected constructor(_: any, options: any);
    protected init(): void;
    getPaymentStatus(paymentSessionData: ComgateSessionData): Promise<PaymentSessionStatus>;
    initiatePayment(context: PaymentProcessorContext): Promise<PaymentProcessorError | ComgatePaymentProcessorSessionResponse>;
    authorizePayment(paymentSessionData: ComgateSessionData, context?: Record<string, unknown>): Promise<PaymentProcessorError | {
        status: PaymentSessionStatus;
        data: ComgatePaymentProcessorSessionResponse["session_data"];
    }>;
    cancelPayment(paymentSessionData: ComgateSessionData): Promise<PaymentProcessorError | ComgatePaymentProcessorSessionResponse["session_data"]>;
    capturePayment(paymentSessionData: ComgateSessionData): Promise<PaymentProcessorError | ComgatePaymentProcessorSessionResponse["session_data"]>;
    deletePayment(paymentSessionData: ComgateSessionData): Promise<PaymentProcessorError | ComgatePaymentProcessorSessionResponse["session_data"]>;
    refundPayment(paymentSessionData: ComgateSessionData, refundAmount: number): Promise<PaymentProcessorError | ComgatePaymentProcessorSessionResponse["session_data"]>;
    retrievePayment(paymentSessionData: ComgateSessionData): Promise<PaymentProcessorError | ComgatePaymentProcessorSessionResponse["session_data"]>;
    updatePayment(context: PaymentProcessorContext): Promise<PaymentProcessorError | ComgatePaymentProcessorSessionResponse | void>;
    updatePaymentData(sessionId: string, data: ComgateSessionData): Promise<ComgatePaymentProcessorSessionResponse["session_data"] | PaymentProcessorError>;
    protected buildError(message: string, e: PaymentProcessorError | Error): PaymentProcessorError;
    private getComgateTransactionStatus;
}
export default ComgateBase;
