import { APIService } from '../../services/api.service';
import { EProductPackage } from '../product/product.enum';
import { Repository } from 'typeorm';
import { MobifinTransactionEntity } from './mobifin.entity';
import { MobifinAirtimePurchaseDTO, MobifinDataPurchaseDTO } from './mobifin.dto';
import { TransactionEntity } from '../product/transaction.entity';
import { BuyProductDTO, ProductRequirementDTO } from '../product/products.dto';
import { IMFResp } from './mobifin.interface';
import { Observable } from 'rxjs';
export declare class MobifinService {
    protected apiS: APIService;
    protected readonly repo: Repository<MobifinTransactionEntity>;
    protected wsdl: string;
    protected baseAPI: string;
    protected get username(): string;
    protected get password(): string;
    constructor(apiS: APIService, repo: Repository<MobifinTransactionEntity>);
    protected createTransactionRecord(data: MobifinTransactionEntity): Observable<MobifinTransactionEntity>;
    protected updateTransactionRecord(transactionID: string, data: Partial<MobifinTransactionEntity>): Observable<boolean>;
    getTransactionRecordByID(transactionID: string): Promise<MobifinTransactionEntity>;
    getRecentTransactionRecords(): Promise<MobifinTransactionEntity[]>;
    getInfo(): Promise<any>;
    echoCheck(): Promise<{
        xml: string;
        json: any;
    }>;
    resellerBalance(): Promise<{
        xml: string;
        json: any;
    }>;
    protected handleResponseSuccess: (mTransID: string) => (r: {
        xml: string;
        json: IMFResp;
    }) => PartialTE;
    protected handleResponseError: (mTransID: string) => (e: {
        message: {
            ResponseCode: string;
        };
    }) => PartialTE;
    airtimePurchase(data: MobifinAirtimePurchaseDTO, transE?: TransactionEntity, mTransID?: string): Observable<Partial<TransactionEntity>>;
    internetPurchase(data: MobifinDataPurchaseDTO, transE?: TransactionEntity, mTransID?: string): Observable<Partial<TransactionEntity>>;
    buyPackage(transE: TransactionEntity, param: BuyProductDTO, requestInfo: ProductRequirementDTO): Observable<PartialTE>;
    protected requestIDGenerator(): number;
    protected batchIDByProductPackage(product: EProductPackage): import("./mobifin.enum").EMFFixedPackage | import("./mobifin.enum").EMFFlexiPackage;
    protected enrich(request: any): void;
    protected xmlRequestFormatter: (resource: string, properties: {
        [x: string]: string | number;
    }) => {
        resource: string;
        xml: string;
    };
    protected generateChecksum: (properties: {
        [x: string]: string | number;
    }) => {
        md5: string;
        sha1: string;
        string1: string;
    };
}
type PartialTE = Partial<TransactionEntity>;
export {};
