import { PaymentMethod, MobileOperator, SupportedProvider, ProviderConfig, Environment, VokoErrorCode } from '../../core/types'; import { PaymentAdapter, PaymentRequest, PaymentStatusRequest, PaymentStatusResponse, WebhookVerificationResult } from '../../core/interfaces'; import { VokoError } from '../../core/errors'; import { HttpClient } from '../../utils/http-client'; import { Logger } from '../../utils/logger'; import { VokoPaymentResponse } from '../../core/models'; export declare abstract class BaseAdapter implements PaymentAdapter { readonly config: ProviderConfig; readonly provider: SupportedProvider; protected readonly httpClient: HttpClient; protected readonly logger: Logger; protected readonly baseUrl: string; constructor(config: ProviderConfig); protected abstract getBaseUrl(environment: Environment): string; protected abstract getPaymentEndpoint(): string; protected abstract getStatusEndpoint(): string; protected abstract transformRequest(request: PaymentRequest): Record; protected abstract transformResponse(providerResponse: any, originalRequest: PaymentRequest): VokoPaymentResponse; protected abstract transformStatusResponse(providerResponse: any): PaymentStatusResponse; protected abstract getAuthHeaders(): Record; protected abstract mapErrorCode(providerError: any): VokoErrorCode; protected abstract verifyWebhookSignature(payload: string, signature?: string): boolean; protected abstract getStatusRequestData(request: PaymentStatusRequest): Record; protected getContentHeaders(): Record; protected getStatusHttpMethod(): 'GET' | 'POST'; initiatePayment(request: PaymentRequest): Promise; checkPaymentStatus(request: PaymentStatusRequest): Promise; verifyWebhook(payload: string, signature?: string): Promise; protected makeApiCall(endpoint: string, data: Record, method?: 'GET' | 'POST'): Promise; private buildUrl; private buildRequestHeaders; protected handleError(error: any): VokoError; protected generateTransactionId(): string; protected parseWebhookPayload(payload: string): any; getSupportedPaymentMethods(): PaymentMethod[]; getSupportedOperators(): MobileOperator[]; }