import type { ITokenRefresher } from '@mcp-abap-adt/interfaces';
import { type AxiosResponse } from 'axios';
import type { SapConfig } from '../config/sapConfig.js';
import type { ILogger } from '../logger.js';
import type { AbapRequestOptions } from './AbapConnection.js';
import { AbstractAbapConnection } from './AbstractAbapConnection.js';
/**
 * JWT Authentication connection for SAP BTP Cloud systems
 *
 * Supports automatic token refresh via ITokenRefresher injection:
 * - If tokenRefresher is provided, 401/403 errors trigger automatic token refresh
 * - If tokenRefresher is not provided, 401/403 errors throw an error (legacy behavior)
 */
export declare class JwtAbapConnection extends AbstractAbapConnection {
    private tokenRefresher?;
    private currentToken;
    constructor(config: SapConfig, logger?: ILogger | null, sessionId?: string, tokenRefresher?: ITokenRefresher);
    protected buildAuthorizationHeader(): string;
    /**
     * Refresh the JWT token using the injected tokenRefresher
     * @returns true if token was refreshed, false if no refresher available
     */
    private tryRefreshToken;
    /**
     * Override connect to handle JWT token refresh on errors
     */
    connect(): Promise<void>;
    /**
     * Override makeAdtRequest to handle JWT auth errors with automatic token refresh
     */
    makeAdtRequest(options: AbapRequestOptions): Promise<AxiosResponse>;
    /**
     * Override fetchCsrfToken to handle JWT auth errors with automatic token refresh
     */
    protected fetchCsrfToken(url: string, retryCount?: number, retryDelay?: number): Promise<string>;
    private static validateConfig;
}
//# sourceMappingURL=JwtAbapConnection.d.ts.map