import { InvoiceGateway } from '@rytass/invoice';
import { ECPayInvoiceAllowanceOptions, ECPayInvoiceGatewayOptions, ECPayInvoiceIssueOptions, ECPayInvoiceListQueryOptions, ECPayInvoiceQueryOptions, ECPayInvoiceVoidOptions, ECPayPaymentItem } from './typings';
import { ECPayInvoice } from './ecpay-invoice';
import { ECPayInvoiceAllowance } from './ecpay-allowance';
export declare class ECPayInvoiceGateway implements InvoiceGateway<ECPayPaymentItem, ECPayInvoice, ECPayInvoiceQueryOptions> {
    private readonly revision;
    private readonly aesIv;
    private readonly aesKey;
    private readonly merchantId;
    private readonly baseUrl;
    private readonly skipMobileBarcodeValidation;
    private readonly skipLoveCodeValidation;
    private encrypt;
    private decrypt;
    isValidGUI(gui: string): Promise<[false] | [true, string]>;
    isLoveCodeValid(loveCode: string): Promise<boolean>;
    isMobileBarcodeValid(barcode: string): Promise<boolean>;
    constructor(options?: ECPayInvoiceGatewayOptions);
    issue(options: ECPayInvoiceIssueOptions): Promise<ECPayInvoice>;
    void(invoice: ECPayInvoice, options: ECPayInvoiceVoidOptions): Promise<ECPayInvoice>;
    allowance(invoice: ECPayInvoice, allowanceItems: ECPayPaymentItem[], options?: ECPayInvoiceAllowanceOptions): Promise<ECPayInvoice>;
    invalidAllowance(allowance: ECPayInvoiceAllowance, reason?: string): Promise<ECPayInvoice>;
    query(options: ECPayInvoiceQueryOptions): Promise<ECPayInvoice>;
    private getInvoiceListInPage;
    list(options: ECPayInvoiceListQueryOptions): Promise<ECPayInvoice[]>;
}
