export declare enum PaymentMethods {
    CARD = "CARD",
    CARD_INSTALLMENTS = "CARD_INSTALLMENTS",
    CARD_TOKEN = "CARD_TOKEN",
    CARD_TOKEN_INSTALLMENTS = "CARD_TOKEN_INSTALLMENTS",
    QR_PROMPT_PAY = "QR_PROMPT_PAY",
    ALIPAY = "ALIPAY",
    LINE_PAY = "LINE_PAY",
    MOBILE_BANKING = "MOBILE_BANKING",
    SHOPEE_PAY = "SHOPEE_PAY",
    TRUE_MONEY = "TRUE_MONEY",
    WECHAT_PAY = "WECHAT_PAY",
    BANGKOK_BANK_APP = "BANGKOK_BANK_APP",
    KPLUS = "KPLUS",
    KRUNGSRI_APP = "KRUNGSRI_APP",
    SCB_EASY = "SCB_EASY"
}
export declare enum BeamFeeType {
    TRANSACTION_FEE = "TRANSACTION_FEE",
    SERVICE_FEE = "SERVICE_FEE"
}
export declare enum BeamPaymentLinkStatus {
    ACTIVE = "ACTIVE",
    PAID = "PAID",
    EXPIRED = "EXPIRED",
    DISABLED = "DISABLED",
    VOIDED = "VOIDED",
    REFUNDED = "REFUNDED"
}
export declare enum CurrencyCode {
    THB = "THB"
}
export type CreatePaymentArgs = {
    collectDeliveryAddress?: boolean;
    collectPhoneNumber?: boolean;
    expiresAt?: string;
    feeType?: BeamFeeType;
    linkSettings: {
        buyNowPayLater?: {
            isEnabled?: boolean;
        };
        card?: {
            isEnabled?: boolean;
        };
        cardInstallments?: {
            installments3m?: {
                isEnabled?: boolean;
            };
            installments4m?: {
                isEnabled?: boolean;
            };
            installments6m?: {
                isEnabled?: boolean;
            };
            installments10m?: {
                isEnabled?: boolean;
            };
            isEnabled?: boolean;
        };
        eWallets?: {
            isEnabled?: boolean;
        };
        mobileBanking?: {
            isEnabled?: boolean;
        };
        qrPromptPay?: {
            isEnabled?: boolean;
        };
    };
    order: {
        currency: CurrencyCode;
        description?: string;
        internalNote?: string;
        netAmount: number;
        orderItems?: {
            description?: string;
            imageUrl?: string;
            itemName?: string;
            price: number;
            productId?: string;
            quantity?: number;
            sku?: string;
        }[];
        referenceId?: string;
    };
    redirectUrl?: string;
};
export type CreatePaymentResponse = {
    id: string;
    url: string;
};
export type GetPaymentResponse = {
    collectDeliveryAddress: boolean;
    collectPhoneNumber: boolean;
    expiresAt: string;
    feeType: BeamFeeType;
    linkSettings: {
        buyNowPayLater: {
            isEnabled: boolean;
        };
        card: {
            isEnabled: boolean;
        };
        cardInstallments: {
            installments3m: {
                isEnabled: boolean;
            };
            installments4m: {
                isEnabled: boolean;
            };
            installments6m: {
                isEnabled: boolean;
            };
            installments10m: {
                isEnabled: boolean;
            };
            isEnabled: boolean;
        };
        eWallets: {
            isEnabled: boolean;
        };
        mobileBanking: {
            isEnabled: boolean;
        };
        qrPromptPay: {
            isEnabled: boolean;
        };
    };
    merchantId: string;
    order: {
        currency: CurrencyCode;
        description: string;
        internalNote: string;
        netAmount: number;
        orderItems: {
            description: string;
            imageUrl: string;
            itemName: string;
            price: number;
            productId: string;
            quantity: number;
            sku: string;
        }[];
        referenceId: string;
    };
    paymentLinkId: string;
    redirectUrl: string;
    status: BeamPaymentLinkStatus;
    url: string;
};
export type DisablePaymentResponse = {
    code: number;
    error?: {
        errorCode: string;
        errorMessage: string;
    };
    message: string;
};
export declare enum BeamRefundStatus {
    PENDING = "PENDING",
    SUCCEEDED = "SUCCEEDED",
    FAILED = "FAILED",
    DISABLED = "DISABLED",
    VOIDED = "VOIDED",
    REFUNDED = "REFUNDED"
}
export type RefundPaymentResponse = {
    refundId: string;
};
export type GetRefundResponse = {
    amount: number;
    chargeId: string;
    createdAt: string;
    currency: CurrencyCode;
    failureCode: string;
    merchantId: string;
    referenceId: string;
    refundId: string;
    refundReason: string;
    status: BeamRefundStatus;
    transactionTime: string;
    updatedAt: string;
};
export declare enum ChargeSource {
    PAYMENT_LINK = "PAYMENT_LINK",
    STORE_LINK = "STORE_LINK",
    QR_PROMPT_PAY_LINK = "QR_PROMPT_PAY_LINK",
    API = "API",
    BOLT = "BOLT"
}
export declare enum feeStrategy {
    RATE = "RATE",
    MINIMUM_AMOUNT = "MINIMUM_AMOUNT"
}
export declare enum BeamTransactionsType {
    PENDING = "PENDING",
    SUCCEEDED = "SUCCEEDED",
    FAILED = "FAILED",
    DISABLED = "DISABLED",
    VOIDED = "VOIDED",
    REFUNDED = "REFUNDED"
}
export type ListTransactionsResponse = {
    data: {
        chargeSource: ChargeSource;
        createdAt: string;
        currency: CurrencyCode;
        feeAmount: number;
        feeStrategy: feeStrategy;
        grossAmount: number;
        merchantId: string;
        netAmount: number;
        referenceId: string;
        sourceId: string;
        transactionId: string;
        transactionTime: string;
        transactionType: BeamTransactionsType;
        vatAmount: number;
    }[];
    totalCount: number;
};
export type SuccessfulTransactionsResponse = {
    chargeSource: ChargeSource;
    createdAt: string;
    currency: CurrencyCode;
    feeAmount: number;
    feeStrategy: feeStrategy;
    grossAmount: number;
    merchantId: string;
    netAmount: number;
    referenceId: string;
    sourceId: string;
    transactionId: string;
    transactionTime: string;
    transactionType: BeamTransactionsType;
    vatAmount: number;
};
export type CreateChargePaymentArgs = {
    amount: number;
    currency: CurrencyCode;
    customer?: {
        deliveryAddress?: {
            address?: {
                city?: string;
                country?: string;
                postCode?: string;
                streetAddress?: string;
            };
            contactName?: string;
            phone?: {
                countryCode: string;
                number: string;
            };
        };
        email?: string;
        primaryPhoneNumber?: {
            countryCode: string;
            number: string;
        };
    };
    paymentMethod: {
        alipay?: {};
        bangkokBankApp?: {};
        card?: {
            cardHolderName: string;
            expiryMonth: number;
            expiryYear: number;
            pan: string;
            securityCode?: string;
        };
        cardInstallments?: {
            cardHolderName: string;
            expiryMonth: number;
            expiryYear: number;
            installmentPeriod: 3 | 4 | 6 | 10;
            pan: string;
            securityCode?: string;
        };
        cardToken?: {
            cardTokenId: string;
            securityCode: string;
        };
        cardTokenInstallments?: {
            cardTokenId: string;
            installmentPeriod: 3 | 4 | 6 | 10;
            securityCode: string;
        };
        kPlus?: {};
        krungsriApp?: {};
        linePay?: {};
        paymentMethodType: PaymentMethods;
        qrPromptPay?: {
            expiresAt?: string;
        };
        scbEasy?: {};
        shopeePay?: {};
        trueMoney?: {};
        weChatPay?: {};
    };
    referenceId?: string;
    returnUrl?: string;
    skip3dsFlow?: boolean;
};
export declare enum ActionRequired {
    NONE = "NONE",
    REDIRECT = "REDIRECT",
    'ENCODE_IMAGE' = "ENCODE_IMAGE"
}
export type CreateChargePaymentResponse = {
    actionRequired: ActionRequired;
    chargeId: string;
    encodedImage?: {
        expiry: string;
        imageBase64Encoded: string;
        rawData: string;
    };
    paymentMethodType: PaymentMethods;
    redirect?: {
        redirectUrl: string;
    };
};
export declare enum FailureCode {
    CH_PROCESSING_FAILED = "CH_PROCESSING_FAILED",
    CH_INSUFFICIENT_FUNDS = "CH_INSUFFICIENT_FUNDS",
    CH_AUTHENTICATION_FAILED = "CH_AUTHENTICATION_FAILED"
}
export declare enum BeamChargeStatus {
    PENDING = "PENDING",
    SUCCEEDED = "SUCCEEDED",
    FAILED = "FAILED"
}
export type GetChargePaymentResponse = {
    amount: number;
    chargeId: string;
    createdAt: string;
    currency: CurrencyCode;
    customer?: {
        deliveryAddress: {
            address: {
                city: string;
                country: string;
                postCode: string;
                streetAddress: string;
            };
            contactName: string;
            phone: {
                countryCode: string;
                number: string;
            };
        };
        email: string;
        primaryPhone: {
            countryCode: string;
            number: string;
        };
    };
    failureCode: FailureCode;
    merchantId: string;
    paymentMethod: {
        alipay?: {};
        bangkokBankApp?: {};
        card?: {
            brand: string;
            countryAlpha2: string;
            last4: string;
        };
        cardInstallments?: {
            brand: string;
            countryAlpha2: string;
            installmentPeriod: 3 | 4 | 6 | 10;
            last4: string;
        };
        kPlus?: {};
        krungsriApp?: {};
        krungthaiNext?: {};
        linePay?: {};
        make?: {};
        paymentMethodType: PaymentMethods;
        qrPromptPay?: {};
        scbEasy?: {};
        shopeePay?: {};
        trueMoney?: {};
        weChatPay?: {};
    };
    referenceId: string;
    source: ChargeSource;
    sourceId: string;
    status: BeamChargeStatus;
    transactionTime: string;
    updatedAt: string;
};
export type CreateBoltConnectionResponse = {
    createdAt: string;
    deviceId: string;
    id: string;
    merchantId: string;
};
export type DeleteBoltConnectionResponse = {
    code: number;
    message: string;
    error?: {
        errorCode: string;
        errorMessage: string;
    };
};
export type GetBoltConnectionResponse = {
    createdAt: string;
    deviceId: string;
    id: string;
    merchantId: string;
};
export declare enum BoltIssuerGroup {
    BangkokBank = "BangkokBank",
    CIMBThaiBank = "CIMBThaiBank",
    KasikornBank = "KasikornBank",
    KrungsriBank = "KrungsriBank",
    KrungsriFirstChoice = "KrungsriFirstChoice",
    KrungthaiBank = "KrungthaiBank",
    SiamCommercialBank = "SiamCommercialBank",
    TMBThanachartBank = "TMBThanachartBank",
    UnitedOverseasBank = "UnitedOverseasBank",
    Ungrouped = "Ungrouped",
    Unknown = "Unknown"
}
export declare enum BoltStatus {
    ACTIVE = "ACTIVE",
    CANCELED = "CANCELED",
    EXPIRED = "EXPIRED"
}
export type CreateBoltIntentArgs = {
    amount: number;
    boltConnectionId?: string;
    currency: CurrencyCode;
    expiryDurationInSec: number;
    internalNote?: string;
    paymentMethod: {
        alipay?: {};
        card?: {};
        cardInstallments?: {
            installmentPeriod: 3 | 4 | 6 | 10;
            issuerGroup: BoltIssuerGroup;
        };
        linePay?: {};
        paymentMethodType: PaymentMethods;
        qrPromptPay?: {};
        shopeePay?: {};
        trueMoney?: {};
        weChatPay?: {};
    };
    referenceId: string;
};
export type CreateBoltIntentResponse = {
    amount: number;
    boltConnectionId: string;
    createdAt: string;
    createdBy: string;
    currency: CurrencyCode;
    expiresAt: string;
    id: string;
    internalNote: string;
    merchant: {
        logoUrl: string;
        merchantId: string;
        name: string;
    };
    paymentMethod: {
        alipay: {};
        card: {};
        cardInstallments: {
            installmentPeriod: 3 | 4 | 6 | 10;
            issuerGroup: BoltIssuerGroup;
        };
        linePay: {};
        paymentMethodType: PaymentMethods;
        qrPromptPay: {};
        shopeePay: {};
        trueMoney: {};
        weChatPay: {};
    };
    referenceId: string;
    status: BoltStatus;
    updatedAt: string;
    updatedBy: string;
};
export type CancelBoltIntentResponse = {
    code: number;
    error?: {
        errorCode: string;
        errorMessage: string;
    };
    message: string;
};
export type ChargeSuccessWebhook = {
    chargeId: string;
    merchantId: string;
    referenceId: string;
    status: BeamTransactionsType;
    currency: CurrencyCode;
    amount: number;
    source: ChargeSource;
    sourceId: string;
    transactionTime: string;
    paymentMethod: {
        paymentMethodType: PaymentMethods;
        card: {
            last4: string;
            brand: string;
            countryAlpha2: string;
        };
        cardInstallments: string | null;
        cardNetworkToken: string | null;
        qrPromptPay: string | null;
        alipay: string | null;
        weChatPay: string | null;
        trueMoney: string | null;
        linePay: string | null;
        shopeePay: string | null;
        make: string | null;
        bangkokBankApp: string | null;
        kPlus: string | null;
        scbEasy: string | null;
        krungsriApp: string | null;
        krungthaiNext: string | null;
    };
    failureCode: FailureCode;
    customer: {
        primaryPhone: {
            countryCode: string;
            number: string;
        };
        email: string;
        deliveryAddress: {
            contactName: string;
            phone: {
                countryCode: string;
                number: string;
            };
            address: {
                streetAddress: string;
                city: string;
                country: string;
                postCode: string;
            };
        };
    };
    createdAt: string;
    updatedAt: string;
};
export type PaymentLinkPaidWebhook = {
    paymentLinkId: string;
    merchantId: string;
    url: string;
    status: 'PAID';
    order: {
        netAmount: number;
        currency: CurrencyCode;
        description: string;
        internalNote: string;
        referenceId: string;
        orderItems: {
            description: string;
            imageUrl: string;
            itemName: string;
            price: number;
            productId: string;
            quantity: number;
            sku: string;
        }[];
    };
    linkSettings: {
        buyNowPayLater: {
            isEnabled: boolean;
        };
        card: {
            isEnabled: boolean;
        };
        cardInstallments: {
            installments3m: {
                isEnabled: boolean;
            };
            installments4m: {
                isEnabled: boolean;
            };
            installments6m: {
                isEnabled: boolean;
            };
            installments10m: {
                isEnabled: boolean;
            };
        };
        qrPromptPay: {
            isEnabled: boolean;
        };
        eWallets: {
            isEnabled: boolean;
        };
        mobileBanking: {
            isEnabled: boolean;
        };
    };
    collectDeliveryAddress: boolean;
    collectPhoneNumber: boolean;
    redirectUrl: string;
    expiresAt: string;
    feeType: BeamFeeType;
};
