import { Repository } from 'typeorm';
import { ErrorService } from '../../error/error.service';
import { CarService } from '../car/car.service';
import { SiteInfoService } from '../siteInfo/site-info.service';
import { GhabzinoService } from '../../thirdParty/ghabzino/ghabzino.service';
import { FreewayTollEntity } from './entities/freeway-toll.entity';
import { CreateFreewayTollRequestDto } from './dto/create-freeway-toll-request.dto';
import { PayFreewayTollInquiryDto } from './dto/pay-freeway-toll-inquiry.dto';
import { UserEntity } from '../user/entities/user.entity';
import { FreewayTollBillEntity } from './entities/freeway-toll-bill.entity';
import { PaymentService } from '../payment/payment.service';
import { UserService } from '../user/user.service';
export declare class FreewayTollService {
    private freewayTollRepository;
    private freewayTollBillRepository;
    private error;
    private carService;
    private ghabzinoService;
    private userService;
    private siteInfoService;
    private readonly paymentService;
    constructor(freewayTollRepository: Repository<FreewayTollEntity>, freewayTollBillRepository: Repository<FreewayTollBillEntity>, error: ErrorService, carService: CarService, ghabzinoService: GhabzinoService, userService: UserService, siteInfoService: SiteInfoService, paymentService: PaymentService);
    addRequest(dto: CreateFreewayTollRequestDto, user: UserEntity): Promise<{
        id: any;
    }>;
    payInquiry(dto: PayFreewayTollInquiryDto, user: UserEntity): Promise<{
        bankUrl: any;
        paid: boolean;
    }>;
    doInquiry(paymentId?: number, freewayTollId?: number, user?: UserEntity): Promise<FreewayTollEntity>;
    payBills(freewayTollId: number, user: UserEntity): Promise<{
        bankUrl: any;
    }>;
    payResultBills(freewayTollId: number, user: UserEntity): Promise<FreewayTollEntity>;
    getAll(page?: number, limit?: number, filters?: any, sorts?: any, userId?: any): Promise<{
        items: FreewayTollEntity[];
        pagination: {
            itemsPerPage: number;
            totalItems: number;
            currentPage: number;
            totalPages: number;
        };
    }>;
    getById(id: number, userId?: any): Promise<FreewayTollEntity>;
}
