import { APIService } from '../../services/api.service';
import { BuyProductDTO, ProductRequirementDTO } from '../product/products.dto';
import { TransactionEntity } from '../product/transaction.entity';
import { EProductPackage } from '../product/product.enum';
import { ATAirtimePurchaseDTO, ATInternetPurchaseDTO } from './africastalking.dto';
import { Repository } from 'typeorm';
import { AfricasTalkingTransactionEntity } from './africastalking.entity';
import { Observable } from 'rxjs';
import { EATProductPackage } from './africastalking.enum';
import { IATAirtimeResponse } from './africastalking.interface';
export declare class AfricasTalkingService {
    protected apiS: APIService;
    protected readonly repo: Repository<AfricasTalkingTransactionEntity>;
    AS: any;
    get username(): string;
    get password(): string;
    get headers(): {
        Authorization: string;
    };
    constructor(apiS: APIService, repo: Repository<AfricasTalkingTransactionEntity>);
    readonly packageMap: (ppackage: EProductPackage) => {
        atProductPackage: EATProductPackage;
        price: number;
        quantity: number;
        validity: import("./africastalking.enum").EATValidity;
        unit: import("../../enums/base.enum").EDataUnit;
        inactive?: boolean;
    };
    reInit(): void;
    protected createTransactionRecord(data: AfricasTalkingTransactionEntity): Observable<AfricasTalkingTransactionEntity>;
    protected updateTransactionRecord(transactionID: string, data: Partial<AfricasTalkingTransactionEntity>): Observable<boolean>;
    getTransactionRecordByID(transactionID: string): Promise<AfricasTalkingTransactionEntity>;
    getRecentTransactionRecords(): Promise<AfricasTalkingTransactionEntity[]>;
    protected handleResponse: (transID: string, obS: Observable<IATAirtimeResponse>) => Observable<Partial<TransactionEntity>>;
    airtimePurchase(data: ATAirtimePurchaseDTO, transE?: TransactionEntity, mTransID?: string): Observable<Partial<TransactionEntity>>;
    internetPurchase(data: ATInternetPurchaseDTO, transE?: TransactionEntity, mTransID?: string): Observable<Partial<TransactionEntity>>;
    buyPackage(transE: TransactionEntity, param: BuyProductDTO, requestInfo: ProductRequirementDTO): Observable<PartialTE>;
}
type PartialTE = Partial<TransactionEntity>;
export {};
