export type Environment = "UAT" | "PRODUCTION";
export interface AuthCredentials {
    username: string;
    password: string;
}
export interface AuthResponse {
    access_token: string;
}
export interface PortalTransactionRequest {
    orderId: string;
    orderDesc: string;
    amount: number;
    currency: string;
    transactionType: string;
    backRef: string;
    notifyUrl?: string;
}
export interface PortalTransactionResponse {
    success: boolean;
    code: number;
    status_code: number;
    data: {
        url: string;
        pSign: string;
        transactionParams: {
            TERMINAL: string;
            TRTYPE: string;
            AMOUNT: string;
            TIMESTAMP: string;
            NONCE: string;
            CURRENCY: string;
            ORDER: string;
            DESC: string;
            MERCH_NAME: string;
            MERCH_URL: string;
            EMAIL: string;
            COUNTRY: string;
            MERCH_GMT: string;
            BACKREF: string;
        };
    };
}
export interface CallbackResponse {
    terminal: string;
    actionCode: string;
    responseCode: string;
    statusMsg: string;
    card: string;
    amount: string;
    currency: string;
    tranDate: string;
    rrn: string;
    intRef: string;
    nonce: string;
    signature: string;
    orderId: string;
    timestamp: string;
}
export interface StatusCheckResponse {
    success: boolean;
    code: number;
    status_code: number;
    data: {
        terminal: string;
        actionCode: string;
        responseCode: string;
        statusMsg: string;
        card: string;
        amount: string;
        currency: string;
        tranDate: string;
        rrn: string;
        intRef: string;
        nonce: string;
        signature: string;
        timestamp: string;
    };
}
export interface DirectApiTransactionInitRequest {
    orderId: string;
    orderDesc: string;
    amount: number;
    currency: string;
    transactionType: string;
}
export interface DirectApiTransactionInitResponseData {
    url: string;
    pSign: string;
    transactionParams: {
        TERMINAL: string;
        TRTYPE: string;
        AMOUNT: string;
        TIMESTAMP: string;
        NONCE: string;
        CURRENCY: string;
        ORDER: string;
        DESC: string;
        MERCH_NAME: string;
        MERCH_URL: string;
        EMAIL: string;
        COUNTRY: string;
        MERCH_GMT: string;
        BACKREF: string;
    };
}
export interface DirectApiTransactionInitResponse {
    success: boolean;
    code: number;
    status_code: number;
    data: DirectApiTransactionInitResponseData;
}
export interface CardDetails {
    pan: string;
    expMonth: string;
    expYear: string;
    cvc2: string;
    cardholderName?: string;
    cvc2ReasonCode?: "0" | "1" | "2" | "9";
}
export interface DirectApiCardholderDataRequest {
    card: string;
    expMonth: string;
    expYear: string;
    currency: string;
    name?: string;
    trtype: string;
    terminal: string;
    desc: string;
    cvc2_rc?: "0" | "1" | "2" | "9";
    orderId: string;
    timestamp: string;
    nonce: string;
    p_sign: string;
    amount: string;
    cvc2: string;
    backRefUrl: string;
}
export interface TransactionError {
    responseCode: string;
    description: string;
}
export interface NassErrorResponse {
    message: string;
    code?: number;
    status?: number;
}
