import { Repository } from 'typeorm';
import { ErrorService } from '../../error/error.service';
import { DrivingOffenseEntity } from './entities/driving-offense.entity';
import { DrivingOffenseBillEntity } from './entities/driving-offense-bill.entity';
import { CarService } from '../car/car.service';
import { SiteInfoService } from '../siteInfo/site-info.service';
import { VeneshService } from '../../thirdParty/venesh/venesh.service';
import { CreateDrivingOffenseRequestDto } from './dto/create-driving-offense-request.dto';
import { PayDrivingOffenseInquiryDto } from './dto/pay-driving-offense-inquiry.dto';
import { PaymentService } from '../payment/payment.service';
import { UserEntity } from '../user/entities/user.entity';
import { UserService } from '../user/user.service';
import { PayDrivingOffenseBillDto } from './dto/pay-driving-offense-bill.dto';
import { GhabzinoService } from '../../thirdParty/ghabzino/ghabzino.service';
export declare class DrivingOffenseService {
    private drivingOffenseRepository;
    private drivingOffenseBillRepository;
    private error;
    private veneshService;
    private ghabzinoService;
    private userService;
    private siteInfoService;
    private carService;
    private readonly paymentService;
    constructor(drivingOffenseRepository: Repository<DrivingOffenseEntity>, drivingOffenseBillRepository: Repository<DrivingOffenseBillEntity>, error: ErrorService, veneshService: VeneshService, ghabzinoService: GhabzinoService, userService: UserService, siteInfoService: SiteInfoService, carService: CarService, paymentService: PaymentService);
    addRequest(dto: CreateDrivingOffenseRequestDto, user: UserEntity): Promise<{
        id: any;
    }>;
    payInquiry(dto: PayDrivingOffenseInquiryDto, user: UserEntity): Promise<{
        bankUrl: any;
        paid: boolean;
    }>;
    doInquiry(paymentId?: number, drivingOffenseId?: number, user?: UserEntity): Promise<DrivingOffenseEntity>;
    getAll(page?: number, limit?: number, filters?: any, sorts?: any, userId?: any): Promise<{
        items: DrivingOffenseEntity[];
        pagination: {
            itemsPerPage: number;
            totalItems: number;
            currentPage: number;
            totalPages: number;
        };
    }>;
    getById(id: number, userId?: any): Promise<DrivingOffenseEntity>;
    getDrivingOffenseImages(drivingOffenseId: number, user: UserEntity): Promise<any[]>;
    getDrivingOffenseImage(drivingOffenseBillId: number, user: UserEntity): Promise<any>;
    payDrivingOffenseBill(dto: PayDrivingOffenseBillDto, user: UserEntity): Promise<{
        bankUrl: any;
    }>;
    resultDrivingOffenseBill(paymentKey: string): Promise<any[]>;
}
