import { ErrorInterceptor, HttpError, RecoveryErrorInterceptor, RequestInterceptor, ResponseInterceptor } from './http'; /** * Auth token getter function */ type TokenGetter = () => string | null | Promise; /** * Token refresh function */ type TokenRefresher = () => Promise; /** * Create authentication interceptor */ export declare function createAuthInterceptor(getToken: TokenGetter, headerName?: string, tokenPrefix?: string): RequestInterceptor; /** * Create request logging interceptor */ export declare function createRequestLoggerInterceptor(logger?: (message: string, data?: unknown) => void): RequestInterceptor; /** * Create response logging interceptor */ export declare function createResponseLoggerInterceptor(logger?: (message: string, data?: unknown) => void): ResponseInterceptor; /** * Create error logging interceptor */ export declare function createErrorLoggerInterceptor(logger?: (message: string, error?: unknown) => void): ErrorInterceptor; /** * Create retry interceptor * * @remarks * This interceptor returns a RecoveryErrorInterceptor that can return either * an HttpError (to continue error propagation) or an HttpResponse (when retry succeeds). */ export declare function createRetryInterceptor(maxRetries?: number, retryDelay?: number, retryCondition?: (error: HttpError) => boolean): RecoveryErrorInterceptor; /** * Create token refresh interceptor * * @remarks * This interceptor returns a RecoveryErrorInterceptor that can return either * an HttpError (to continue error propagation) or an HttpResponse (when token refresh and retry succeeds). */ export declare function createTokenRefreshInterceptor(refreshToken: TokenRefresher, onRefreshFailed: () => void): RecoveryErrorInterceptor; /** * Create CSRF token interceptor */ export declare function createCsrfInterceptor(getCsrfToken: () => string | null, headerName?: string): RequestInterceptor; /** * Create request ID interceptor */ export declare function createRequestIdInterceptor(headerName?: string): RequestInterceptor; /** * Create timing interceptor */ export declare function createTimingInterceptor(onTiming: (url: string, duration: number) => void): { request: RequestInterceptor; response: ResponseInterceptor; }; export {};