import { CommonService } from 'src/common/common.service';
import { ModelsService } from 'src/models/models.service';
import { ConfigService } from '@nestjs/config';
import { AddBankAccountDto } from 'src/bank/dto/bank.dto';
export declare class RazorpayService {
    private readonly Model;
    private readonly CommonService;
    private readonly ConfigService;
    private razorpay;
    private keyId;
    private keySecret;
    private auth;
    private bank_account;
    constructor(Model: ModelsService, CommonService: CommonService, ConfigService: ConfigService);
    createPaymentIntent(paymentIntentObj?: any): Promise<any>;
    createOrder(orderData: {
        amount: number;
        currency?: string;
        receipt?: string;
        notes?: any;
    }): Promise<any>;
    createPayment(paymentIntentObj?: any): Promise<{
        amount: number;
        currency: any;
        id: any;
    }>;
    webhook(req: any, payload: any, signature: string): Promise<{
        valid: boolean;
    }>;
    handlePaymentFailed(data: any, invoice: any): Promise<void>;
    handlePaymentCaptured(data: any, invoice: any): Promise<void>;
    handleSubscriptionCompleted(data: any, invoice: any): Promise<void>;
    refundPayment(paymentId: string): Promise<any>;
    createAccountOnRazorPay(dto: AddBankAccountDto): Promise<any>;
    createPayout(fund_account_id: string, amount: number, currency: string): Promise<any>;
    createDynamicPlan(planName: string, amount: number, cycle: 'MONTHLY' | 'ANNUAL'): Promise<any>;
    createSubscription(plan: any, customer_id: string, quantity?: number, vehicle_count?: number): Promise<any>;
    invoicePayment(invoice_id: string): Promise<any>;
    cancelSubscription(razorpay_subscription_id: string): Promise<any>;
    reactivateSubscription(razorpay_subscription_id: string): Promise<any>;
    handleSubscriptionCancelled(payload: any, invoice: any): Promise<void>;
    crateRazorpayCustomer(userId: string): Promise<any>;
    upgradeSubscription(razorpay_subscription_id: string, new_plan_id: string, user_id: string): Promise<any>;
    downgradeSubscription(razorpay_subscription_id: string, new_plan_id: string): Promise<{
        subscription: any;
        current_period_end: any;
    }>;
    updateSubscriptionPlanAndQuantity(razorpay_subscription_id: string, quantity: number, plan_id?: string, local_plan_id?: string, schedule_change_at?: 'now' | 'cycle_end'): Promise<any>;
    getSubscriptionInvoices(razorpay_subscription_id: string): Promise<any>;
    isSubscriptionActive(razorpay_subscription_id: string): Promise<boolean>;
    handleSubscriptionUpdated(payload: any, invoice: any): Promise<void>;
    handleInvoicePaid(payload: any, invoice: any): Promise<void>;
}
