import { OnModuleInit } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { PrismaService } from '../../prisma/prisma.service';
import { PaymentFactory } from '../payments/payment.factory';
import { BusinessService } from '../business/business.service';
export interface PollingJob {
    paymentReference: string;
    orderId: string;
    businessId: string;
    whatsappNumber: string;
    retries?: number;
}
export declare class PaymentPollingService implements OnModuleInit {
    private readonly prisma;
    private readonly paymentFactory;
    private readonly businessService;
    private readonly moduleRef;
    private readonly logger;
    private readonly MAX_RETRIES;
    private readonly POLL_INTERVAL_MS;
    private whatsappServiceRef;
    private ordersService;
    constructor(prisma: PrismaService, paymentFactory: PaymentFactory, businessService: BusinessService, moduleRef: ModuleRef);
    onModuleInit(): void;
    registerWhatsAppService(svc: {
        sendTextNotification(businessId: string, toPhone: string, message: string): Promise<void>;
    }): void;
    startPolling(job: PollingJob): void;
    private poll;
    private resolveGateway;
    private updateOrderStatus;
    private updatePaymentRecord;
    notify(businessId: string, whatsappNumber: string, message: string): Promise<void>;
    notifyOwner(businessId: string, orderNumber: string, customerName: string, customerPhone: string, totalAmount: number, currency: string, status: 'DONE' | 'UNPAID'): Promise<void>;
    private clearCustomerSessionIfAwaitingPayment;
}
