declare module 'paytr-node' { export interface PayTRConfig { merchantId: string; merchantKey: string; merchantSalt: string; testMode?: boolean; debug?: boolean; timeout?: number; baseUrl?: string; } export interface IframeParams { userIp: string; merchantOid: string; email: string; paymentAmount: string; userName: string; userAddress: string; userPhone: string; merchantOkUrl: string; merchantFailUrl: string; userBasket: string | Array>; paymentType?: string; installmentCount?: string; currencyCode?: string; testMode?: string; noInstallment?: string; maxInstallment?: string; noPayment?: string; lang?: string; timeoutLimit?: string; cardType?: string; debug?: string; } export interface DirectParams { userIp: string; merchantOid: string; email: string; paymentAmount: string; cardOwner: string; cardNumber: string; cardExpireMonth: string; cardExpireYear: string; cardCvc: string; userName: string; userAddress: string; userPhone: string; merchantOkUrl: string; merchantFailUrl: string; userBasket: string | Array>; paymentType?: string; installmentCount?: string; currencyCode?: string; testMode?: string; non3d?: string; lang?: string; cardType?: string; syncMode?: string; storeCard?: string; utoken?: string; debug?: string; } export interface LinkParams { name: string; price: string; currency: string; maxInstallment: string; linkType: 'product' | 'collection'; minCount?: string; maxCount?: string; email?: string; lang?: string; getQr?: string; pft?: string; expiryDate?: string; callbackLink?: string; callbackId?: string; debug?: string; } export interface CardStorageParams extends DirectParams { storeCard: '1'; } export interface SavedCardPaymentParams { userIp: string; merchantOid: string; email: string; paymentAmount: string; userName: string; userAddress: string; userPhone: string; merchantOkUrl: string; merchantFailUrl: string; userBasket: string | Array>; utoken: string; ctoken: string; cvv?: string; paymentType?: string; installmentCount?: string; currencyCode?: string; testMode?: string; non3d?: string; lang?: string; cardType?: string; syncMode?: string; debug?: string; } export interface RecurringPaymentParams extends SavedCardPaymentParams { } export interface PlatformTransferParams { merchantOid: string; transId: string; submerchantAmount: string; totalAmount: string; transferName: string; transferIban: string; } export interface RefundOptions { referenceNo?: string; } export interface InstallmentOptions { singleRatio?: string; abroadRatio?: string; } export default class PayTR { constructor(options: PayTRConfig); config: any; iframe: { createToken: (params: IframeParams) => Promise; validateHash: (params: any) => boolean; }; direct: { createPayment: (params: DirectParams) => Promise; validateHash: (params: any) => boolean; }; link: { create: (params: LinkParams) => Promise; delete: (id: string) => Promise; sendSms: (id: string, phoneNumber: string) => Promise; sendEmail: (id: string, email: string) => Promise; validateCallback: (params: any) => boolean; }; card: { store: (params: CardStorageParams) => Promise; list: (utoken: string) => Promise; delete: (utoken: string, ctoken: string) => Promise; payWithSavedCard: (params: SavedCardPaymentParams) => Promise; }; recurring: { createPayment: (params: RecurringPaymentParams) => Promise; }; bin: { query: (binNumber: string) => Promise; }; installment: { getRates: (options?: InstallmentOptions) => Promise; }; refund: { create: (merchantOid: string, amount: number, options?: RefundOptions) => Promise; }; status: { query: (merchantOid: string) => Promise; }; transaction: { list: (startDate: string, endDate: string) => Promise; }; report: { summary: (startDate: string, endDate: string) => Promise; detail: (date: string) => Promise; }; platform: { transfer: (params: PlatformTransferParams) => Promise; getReturnedPayments: (startDate: string, endDate: string) => Promise; sendReturnedPayment: (transId: string, transfers: Array) => Promise; validateCallback: (params: any) => boolean; }; } }