declare const ENVIRONMENT_API: {
    readonly LIVE: "https://merchant-api-live-v2.onepay.lk/api/ipg/gateway";
};

declare const Currency: {
    readonly USD: "USD";
    readonly LKR: "LKR";
};
type CurrencyType = keyof typeof Currency;

interface OnepayConfig {
    token: string;
    appId: string;
    salt: string;
}
interface BasicPaymentParams {
    amount: number;
    firstName: string;
    lastName: string;
    phone: string;
    email: string;
    currency?: CurrencyType;
    reference: string;
    transactionRedirectUrl: string;
    additionalData?: string;
}
interface OnepayPaymentParams {
    amount: number;
    app_id: string;
    reference: string;
    currency?: CurrencyType;
    customer_first_name: string;
    customer_last_name: string;
    customer_phone_number: string;
    customer_email: string;
    transaction_redirect_url: string;
    additional_data?: string;
}
interface PaymentResponse {
    status: number;
    message: string;
    data: {
        ipg_transaction_id: string;
        amount: {
            gross_amount: number;
            discount: number;
            handling_fee: number;
            net_amount: number;
            currency: string;
        };
        gateway: {
            redirect_url: string;
        };
    };
}

declare class Onepay {
    private appId;
    private token;
    private salt;
    private baseUrl;
    private paymentParams;
    constructor(onepayConfig: OnepayConfig);
    generatePaymentParams(basicParams: BasicPaymentParams): OnepayPaymentParams;
    createPaymentRequest(onepayPaymentParams: OnepayPaymentParams): Promise<PaymentResponse>;
}

export { Currency, type CurrencyType, ENVIRONMENT_API, Onepay, Onepay as default };
