import { Environment, PaymentStatus, ProviderConfig, SupportedProvider, VokoErrorCode } from '../../core/types';
import { BaseAdapter } from '../base/base-adapter';
import { PaymentRequest, PaymentStatusRequest, PaymentStatusResponse } from '../../core/interfaces';
import { AzampayMnoPaymentRequest, AzampayBankPaymentRequest, AzampayPaymentResponse } from './azampay.types';
import { VokoPaymentResponse } from '../../core/models';
type AzampayConfig = ProviderConfig & {
    appName: string;
    clientId: string;
    clientSecret: string;
};
export declare class AzampayAdapter extends BaseAdapter {
    readonly provider = SupportedProvider.AZAMPAY;
    private readonly appName;
    private readonly clientId;
    private readonly clientSecret;
    private static tokenManager;
    constructor(config: AzampayConfig);
    protected getBaseUrl(environment: Environment): string;
    protected getPaymentEndpoint(): string;
    protected getStatusEndpoint(): string;
    protected getContentHeaders(): Record<string, string>;
    protected getStatusHttpMethod(): 'GET' | 'POST';
    initiatePayment(request: PaymentRequest): Promise<VokoPaymentResponse>;
    private getAuthToken;
    private makeAuthenticatedApiCall;
    protected transformRequest(request: PaymentRequest): AzampayMnoPaymentRequest | AzampayBankPaymentRequest;
    protected transformResponse(providerResponse: AzampayPaymentResponse, originalRequest: PaymentRequest): VokoPaymentResponse;
    protected getAuthHeaders(): Record<string, string>;
    checkPaymentStatus(request: PaymentStatusRequest): Promise<PaymentStatusResponse>;
    protected transformStatusResponse(_providerResponse: any): PaymentStatusResponse;
    protected getStatusRequestData(_request: PaymentStatusRequest): Record<string, any>;
    protected mapErrorCode(providerError: any): VokoErrorCode;
    protected verifyWebhookSignature(_payload: string, _signature?: string): boolean;
    private authenticate;
    protected mapAzampayStatus(status: string): PaymentStatus;
    private mapOperator;
}
export {};
