import { ErrorService } from '../../error/error.service';
import { PaymentEntity, PaymentGateway, PaymentType } from './entities/payment.entity';
import { Repository } from 'typeorm';
import { ZarinpalService } from '../../gateway/zarinpal/zarinpal.service';
import { BankMeliService } from '../../gateway/bankMeli/bankMeli.service';
import { UserEntity } from '../user/entities/user.entity';
import { FreewayTollService } from '../freeway-toll/freeway-toll.service';
import { DrivingOffenseService } from '../drivinig-offense/driving-offense.service';
import { NegativeScoreService } from '../negative-score/negative-score.service';
import { UserService } from '../user/user.service';
import { OrderService } from '../order/order.service';
import { SnappPayService } from '../../gateway/snappPay/snappPay.service';
export declare class PaymentService {
    private paymentRepository;
    private userService;
    private zarinpalService;
    private bankMeliService;
    private snappPayService;
    private error;
    private readonly drivingOffenseService;
    private readonly negativeScoreService;
    private readonly freewayTollService;
    private readonly orderService;
    private apiPaymentUrl;
    private sitePaymentResult;
    constructor(paymentRepository: Repository<PaymentEntity>, userService: UserService, zarinpalService: ZarinpalService, bankMeliService: BankMeliService, snappPayService: SnappPayService, error: ErrorService, drivingOffenseService: DrivingOffenseService, negativeScoreService: NegativeScoreService, freewayTollService: FreewayTollService, orderService: OrderService);
    getRecordById(paymentId: number): Promise<PaymentEntity>;
    getAll(page?: number, limit?: number, filters?: any, sorts?: any): Promise<{
        items: PaymentEntity[];
        pagination: {
            itemsPerPage: number;
            totalItems: number;
            currentPage: number;
            totalPages: number;
        };
    }>;
    createPayLink(amount: number, usedWalletAmount: number, type: PaymentType, gateway: PaymentGateway, orderId: number, user: UserEntity): Promise<{
        paymentId: any;
        bankUrl: any;
    }>;
    verifyZarinpal(authority: string, status: string): Promise<string>;
    verifyMeli(authority: string, code: string): Promise<string>;
    verifySnappPay(businessPartnerCode: string, state: string): Promise<string>;
    private completeTask;
    private isNotValidWalletAmount;
    private sitePaymentResultUrl;
    private _generateBusinessPartnerCode;
}
