import WiPayAuth from '../auth';
export declare type WiPayGatewayConfig = {
    OrderID: number;
    Total: number;
    PhoneNumber: string;
    Email: string;
    Name: string;
    RedirectUrl: string;
    FeeStructure?: 1 | 2 | 3;
    Currency?: 'TTD' | 'USD';
};
export declare type WiPayGateWayResponse = {
    status: string;
    name: string;
    email: string;
    hash?: string;
    order_id: number;
    transaction_id: string;
    reasonCode: number;
    reasonDescription: string;
    responseCode: number;
    total: number;
    D: string;
    date: string;
};
/**
 * WiPay Gateway Class
 * This class handles the Credit Card Gateway Endpoint Operations.
 * @param {WiPayAuth} auth
 * @param {WiPayGatewayConfig} config
 * @return {WiPayGateway}
 */
declare class WiPayGateway {
    private _auth;
    private _config;
    /**
     * WiPay Gateway Constructor
     * Creates and initialises the WiPay Gateway object.
     * @param {WiPayAuth} auth
     * @param {WiPayGatewayConfig} config
     */
    constructor(auth: WiPayAuth, config: WiPayGatewayConfig);
    /**
     * Construct Payment Endpoint
     * This function returns the Payment Endpoint to be used. Note
     * that this endpoint is a wrapper around the Gateway endpoint
     * and requires less parameters to be passed, but changes the
     * user's experience.
     * @return {string}
     */
    private constructPaymentEndpoint;
    /**
     * Construct Gateway Endpoint
     * This function returns the Gateway Endpoint to be used. This is
     * the base Gateway Endpoint and takes many standard parameters.
     * @return {string}
     */
    private constructGatewayEndpoint;
    generateEndpoint: () => string;
}
export default WiPayGateway;
//# sourceMappingURL=index.d.ts.map