import { RequestContext, Order, OrderService, PaymentService, TransactionalConnection, CustomerService } from '@vendure/core';
import { PluginInitOptions, NOWPaymentsIPNData } from './types';
export declare class NOWPaymentsService {
    private orderService;
    private paymentService;
    private customerService;
    private connection;
    private options;
    constructor(orderService: OrderService, paymentService: PaymentService, customerService: CustomerService, connection: TransactionalConnection, options: PluginInitOptions);
    get useInvoices(): boolean;
    get apiKey(): string;
    get ipnSecret(): string;
    get invoicePrefix(): string;
    get simpleTotal(): boolean;
    get host(): string;
    get sandbox(): boolean;
    get isFixedRate(): boolean;
    get isFeePaidByUser(): boolean;
    /**
     * Creates a payment intent (payment URL or invoice URL) for the given order.
     * This is similar to Stripe's createPaymentIntent but returns a URL instead of a client secret.
     */
    createPaymentIntent(ctx: RequestContext, order: Order): Promise<string>;
    generatePaymentUrl(ctx: RequestContext, order: Order): Promise<string>;
    generateInvoiceUrl(ctx: RequestContext, order: Order): Promise<string>;
    private getOrderWithLines;
    private getOrderCustomer;
    private getPaymentData;
    private getInvoiceData;
    private getIpnUrl;
    private getSuccessUrl;
    private getCancelUrl;
    processIpn(ctx: RequestContext, ipnData: NOWPaymentsIPNData, signature: string): Promise<boolean>;
    verifySignature(data: any, receivedSignature: string): boolean;
    private processPaymentStatus;
}
//# sourceMappingURL=nowpayments.service.d.ts.map