import { Request } from 'express';
import { TelcoApiResponseDTO, TelcoDataBundleRequestDTO, TelcoTopupRequestDTO, TelcoVoucherRequestDTO, TelcoVoiceBundleRequestDTO } from 'src/dtos/telco.dto';
import { RefDTO } from 'src/dtos/ref.dto';
import { IAuthParam } from 'src/modules/authentication/interfaces/authentication.interface';
import { ProductService } from './product.service';
import { ProductPlanService } from '../product-plan/product-plan.service';
export declare class ProductController {
    private readonly service;
    private readonly productPlanService;
    constructor(service: ProductService, productPlanService: ProductPlanService);
    topup(body: TelcoTopupRequestDTO, auth: IAuthParam, req: Request): Promise<TelcoApiResponseDTO>;
    data(body: TelcoDataBundleRequestDTO, auth: IAuthParam, req: Request): Promise<TelcoApiResponseDTO>;
    voice(body: TelcoVoiceBundleRequestDTO, auth: IAuthParam, req: Request): Promise<TelcoApiResponseDTO>;
    vot(body: TelcoVoucherRequestDTO, auth: IAuthParam, req: Request): Promise<TelcoApiResponseDTO>;
    vos(body: TelcoVoucherRequestDTO, auth: IAuthParam, req: Request): Promise<TelcoApiResponseDTO>;
    status(param: RefDTO, auth: IAuthParam): Promise<TelcoApiResponseDTO>;
    getCodes(): Promise<Record<import("./product.enum").EProductPurchaseResponseCode, string>>;
    list(): Promise<string | import("../product-plan/product-plan.entity").ProductPlanEntity[]>;
    getWalletBalance(auth: IAuthParam): Promise<any>;
}
